filebot/source/net/filebot/web/Crew.java

45 lines
995 B
Java

package net.filebot.web;
import static java.util.stream.Collectors.*;
import java.util.List;
import java.util.function.Predicate;
public interface Crew {
List<Person> getCrew();
default List<Person> getCast() {
return getCrew().stream().filter(Person::isActor).collect(toList());
}
default List<String> getActors() {
return getCrewNames(Person::isActor);
}
default List<String> getDirectors() {
return getCrewNames(Person::isDirector);
}
default List<String> getWriters() {
return getCrewNames(Person::isWriter);
}
default String getDirector() {
return getCrewName(Person::isDirector);
}
default String getWriter() {
return getCrewName(Person::isWriter);
}
default String getCrewName(Predicate<Person> filter) {
return getCrew().stream().filter(filter).map(Person::getName).findFirst().orElse(null);
}
default List<String> getCrewNames(Predicate<Person> filter) {
return getCrew().stream().filter(filter).map(Person::getName).collect(toList());
}
}