package net.pterodactylus.rhynodge.filters.webpages.savoy;
-import static java.lang.String.format;
+import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
-import java.util.Comparator;
import java.util.List;
-import java.util.function.Predicate;
+import java.util.Objects;
import java.util.stream.Collectors;
+import static java.lang.String.format;
+
/**
* Information about a movie.
*
*/
public class Movie {
+ @JsonProperty
private final String name;
+
+ @JsonProperty
private final List<Performance> performances = new ArrayList<>();
- public static final Predicate<Movie> withPerformances = movie -> !movie.getPerformances().isEmpty();
- public static final Comparator<Movie> byName = (leftMovie, rightMovie) -> leftMovie.getName().compareToIgnoreCase(rightMovie.getName());
+ public Movie() {
+ this("");
+ }
public Movie(String name) {
this.name = name;
return format("%s (%s)", name, performances.stream().map(link -> String.format("%s: %s", link.getTime(), link.getLink())).collect(Collectors.joining(", ")));
}
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, performances);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Movie movie = (Movie) o;
+ return Objects.equals(name, movie.name) && Objects.equals(performances, movie.performances);
+ }
+
}