+++ /dev/null
-package net.pterodactylus.rhynodge.filters.webpages.savoy;
-
-import net.pterodactylus.rhynodge.Filter;
-import net.pterodactylus.rhynodge.State;
-import net.pterodactylus.rhynodge.states.HtmlState;
-import org.apache.log4j.Logger;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Collection;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static java.util.Collections.emptySet;
-
-/**
- * {@link Filter} implementation that creates a list of movies running at the
- * Savoy theatre in Hamburg.
- *
- * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
- */
-public class SavoyTicketsFilter implements Filter {
-
- private static final MovieExtractor movieExtractor = new MovieExtractor();
-
- @NotNull
- @Override
- public State filter(@NotNull State state) {
- checkArgument(state instanceof HtmlState, "state must be HTML");
-
- HtmlState htmlState = (HtmlState) state;
- Collection<Movie> movies = movieExtractor.getMovies(htmlState.document());
- Logger.getLogger(SavoyTicketsFilter.class).debug("Parsed Movies: " + movies);
- return new MovieState(movies, emptySet(), false);
- }
-
-}
--- /dev/null
+package net.pterodactylus.rhynodge.filters.webpages.savoy
+
+import net.pterodactylus.rhynodge.Filter
+import net.pterodactylus.rhynodge.State
+import net.pterodactylus.rhynodge.states.HtmlState
+import org.apache.log4j.Logger
+
+/**
+ * [Filter] implementation that creates a list of movies running at the
+ * Savoy theatre in Hamburg.
+ */
+class SavoyTicketsFilter : Filter {
+
+ override fun filter(state: State) =
+ requireNotNull(state as? HtmlState) { "state must be HTML" }
+ .document()
+ .let(movieExtractor::getMovies)
+ .also { logger.debug("Parsed Movies: $it") }
+ .let { MovieState(it, emptySet(), false) }
+
+}
+
+private val logger = Logger.getLogger(SavoyTicketsFilter::class.java)
+private val movieExtractor = MovieExtractor()