♻️ Remove last remnants of Guava’s Optional
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Mon, 6 Oct 2025 17:32:54 +0000 (19:32 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 8 Oct 2025 13:08:10 +0000 (15:08 +0200)
src/main/java/net/pterodactylus/rhynodge/filters/EpisodeFilter.java
src/main/java/net/pterodactylus/rhynodge/filters/ExtractUrlFilter.java
src/main/java/net/pterodactylus/rhynodge/watchers/LeastICouldDoWatcher.java

index e5fd09e..c74444c 100644 (file)
 
 package net.pterodactylus.rhynodge.filters;
 
-import static com.google.common.base.Optional.absent;
 import static com.google.common.base.Preconditions.checkState;
 
 import static java.util.Arrays.asList;
+import static java.util.Optional.empty;
+import static java.util.Optional.of;
 import static java.util.stream.Collectors.toSet;
 
 import java.util.ArrayList;
@@ -28,6 +29,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.function.Function;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -40,7 +42,6 @@ import net.pterodactylus.rhynodge.states.FailedState;
 import net.pterodactylus.rhynodge.states.TorrentState;
 import net.pterodactylus.rhynodge.states.TorrentState.TorrentFile;
 
-import com.google.common.base.Optional;
 import org.apache.log4j.Logger;
 import org.jspecify.annotations.NonNull;
 
@@ -75,7 +76,7 @@ public class EpisodeFilter implements Filter {
                TorrentState torrentState = (TorrentState) state;
                Map<Episode, List<TorrentFile>> episodes = new HashMap<>();
                for (TorrentFile torrentFile : torrentState) {
-                       Optional<Episode> episode = extractEpisode(torrentFile);
+                       var episode = extractEpisode(torrentFile);
                        if (!episode.isPresent()) {
                                continue;
                        }
@@ -112,7 +113,7 @@ public class EpisodeFilter implements Filter {
         *
         * @param torrentFile
         *              The torrent file to extract the episode information from
-        * @return The extracted episode information, or {@link Optional#absent()} if
+        * @return The extracted episode information, or {@link Optional#empty()} if
         *         no episode information could be found
         */
        private static Optional<Episode> extractEpisode(TorrentFile torrentFile) {
@@ -127,9 +128,9 @@ public class EpisodeFilter implements Filter {
                        logger.debug(String.format("Parsing %s and %s as season and episode...", seasonString, episodeString));
                        int season = Integer.valueOf(seasonString);
                        int episode = Integer.valueOf(episodeString);
-                       return Optional.of(new Episode(season, episode));
+                       return of(new Episode(season, episode));
                }
-               return absent();
+               return empty();
        }
 
 }
index 38add86..a39364a 100644 (file)
@@ -19,13 +19,13 @@ package net.pterodactylus.rhynodge.filters;
 
 import static com.google.common.base.Preconditions.*;
 
+import java.util.Optional;
 import net.pterodactylus.rhynodge.Filter;
 import net.pterodactylus.rhynodge.State;
 import net.pterodactylus.rhynodge.states.FailedState;
 import net.pterodactylus.rhynodge.states.HtmlState;
 import net.pterodactylus.rhynodge.states.StringState;
 
-import com.google.common.base.Optional;
 import org.jsoup.nodes.Document;
 import org.jspecify.annotations.NonNull;
 
@@ -44,7 +44,7 @@ public abstract class ExtractUrlFilter implements Filter {
                HtmlState htmlState = (HtmlState) state;
                Optional<String> newUrl = extractUrl(htmlState.document());
 
-               if (!newUrl.isPresent()) {
+               if (newUrl.isEmpty()) {
                        return new FailedState();
                }
 
@@ -57,12 +57,12 @@ public abstract class ExtractUrlFilter implements Filter {
 
        /**
         * Extracts the URL from the given document. If the returned value is {@link
-        * Optional#absent()}, {@link #filter(State)} will return a {@link
+        * Optional#empty()}, {@link #filter(State)} will return a {@link
         * FailedState}.
         *
         * @param document
         *              The document to extract the URL from
-        * @return The extracted URL, or {@link Optional#absent()}
+        * @return The extracted URL, or {@link Optional#empty()}
         */
        protected abstract Optional<String> extractUrl(Document document);
 
index d7adfc9..81c1774 100644 (file)
@@ -20,6 +20,7 @@ package net.pterodactylus.rhynodge.watchers;
 import java.util.ArrayList;
 import java.util.List;
 
+import java.util.Optional;
 import net.pterodactylus.rhynodge.Filter;
 import net.pterodactylus.rhynodge.Watcher;
 import net.pterodactylus.rhynodge.filters.ExtractUrlFilter;
@@ -29,10 +30,12 @@ import net.pterodactylus.rhynodge.filters.comics.LeastICouldDoComicFilter;
 import net.pterodactylus.rhynodge.mergers.ComicMerger;
 import net.pterodactylus.rhynodge.queries.HttpQuery;
 
-import com.google.common.base.Optional;
 import org.jsoup.nodes.Document;
 import org.jsoup.select.Elements;
 
+import static java.util.Optional.empty;
+import static java.util.Optional.of;
+
 /**
  * {@link Watcher} implementation that watched “Least I Could Do” for new
  * comics.
@@ -67,7 +70,7 @@ public class LeastICouldDoWatcher extends DefaultWatcher {
                        @Override
                        protected Optional<String> extractUrl(Document document) {
                                Elements linkTag = document.select("a#latest-comic");
-                               return linkTag.hasAttr("href") ? Optional.of(linkTag.attr("href")) : Optional.<String>absent();
+                               return linkTag.hasAttr("href") ? of(linkTag.attr("href")) : empty();
                        }
                });
                filters.add(new HttpQueryFilter());