1 package net.pterodactylus.rhynodge.filters.webpages.savoy;
3 import net.pterodactylus.rhynodge.Filter;
4 import net.pterodactylus.rhynodge.State;
5 import net.pterodactylus.rhynodge.states.HtmlState;
6 import org.apache.log4j.Logger;
7 import org.jetbrains.annotations.NotNull;
9 import java.util.Collection;
11 import static com.google.common.base.Preconditions.checkArgument;
12 import static java.util.Collections.emptySet;
15 * {@link Filter} implementation that creates a list of movies running at the
16 * Savoy theatre in Hamburg.
18 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
20 public class SavoyTicketsFilter implements Filter {
22 private static final MovieExtractor movieExtractor = new MovieExtractor();
26 public State filter(@NotNull State state) {
27 checkArgument(state instanceof HtmlState, "state must be HTML");
29 HtmlState htmlState = (HtmlState) state;
30 Collection<Movie> movies = movieExtractor.getMovies(htmlState.document());
31 Logger.getLogger(SavoyTicketsFilter.class).debug("Parsed Movies: " + movies);
32 return new MovieState(movies, emptySet(), false);