mirror of
https://github.com/mitb-archive/filebot
synced 2024-08-13 17:03:45 -04:00
45 lines
995 B
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());
|
|
}
|
|
|
|
}
|