♻️ Convert Performace to Kotlin data class
[rhynodge.git] / src / main / java / net / pterodactylus / rhynodge / filters / webpages / savoy / SavoyTicketsFilter.java
1 package net.pterodactylus.rhynodge.filters.webpages.savoy;
2
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;
8
9 import java.util.Collection;
10
11 import static com.google.common.base.Preconditions.checkArgument;
12 import static java.util.Collections.emptySet;
13
14 /**
15  * {@link Filter} implementation that creates a list of movies running at the
16  * Savoy theatre in Hamburg.
17  *
18  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
19  */
20 public class SavoyTicketsFilter implements Filter {
21
22         private static final MovieExtractor movieExtractor = new MovieExtractor();
23
24         @NotNull
25         @Override
26         public State filter(@NotNull State state) {
27                 checkArgument(state instanceof HtmlState, "state must be HTML");
28
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);
33         }
34
35 }