♻️ Duplicate Guava’s preconditions and remove Guava from dependencies
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 8 Oct 2025 17:14:27 +0000 (19:14 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 5 Dec 2025 15:41:24 +0000 (16:41 +0100)
12 files changed:
build.gradle
src/main/java/net/pterodactylus/rhynodge/filters/BlacklistFilter.java
src/main/java/net/pterodactylus/rhynodge/filters/ComicSiteFilter.java
src/main/java/net/pterodactylus/rhynodge/filters/EpisodeFilter.java
src/main/java/net/pterodactylus/rhynodge/filters/ExtractUrlFilter.java
src/main/java/net/pterodactylus/rhynodge/filters/HtmlFilter.java
src/main/java/net/pterodactylus/rhynodge/filters/HttpQueryFilter.java
src/main/java/net/pterodactylus/rhynodge/filters/TorrentSiteFilter.java
src/main/java/net/pterodactylus/rhynodge/mergers/ComicMerger.java
src/main/java/net/pterodactylus/rhynodge/mergers/EpisodeMerger.java
src/main/java/net/pterodactylus/rhynodge/mergers/TorrentMerger.java
src/main/kotlin/net/pterodactylus/rhynodge/utils/Preconditions.kt [new file with mode: 0644]

index cc1705f..73e9b31 100644 (file)
@@ -45,7 +45,6 @@ repositories {
 }
 
 dependencies {
-    implementation group: "com.google.guava", name: "guava", version: "14.0-rc1"
     implementation group: "log4j", name: "log4j", version: "1.2.17"
     implementation group: "org.apache.httpcomponents", name: "httpclient", version: "4.4"
     implementation group: "org.jsoup", name: "jsoup", version: "1.16.1"
index 9d82f35..538e259 100644 (file)
@@ -17,8 +17,8 @@
 
 package net.pterodactylus.rhynodge.filters;
 
-import static com.google.common.base.Preconditions.checkState;
 import static java.util.Arrays.asList;
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkState;
 
 import java.util.List;
 
index 0ccd913..726f6b8 100644 (file)
@@ -17,8 +17,6 @@
 
 package net.pterodactylus.rhynodge.filters;
 
-import static com.google.common.base.Preconditions.checkArgument;
-
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Collections;
@@ -36,6 +34,8 @@ import net.pterodactylus.rhynodge.states.HtmlState;
 import org.jsoup.nodes.Document;
 import org.jspecify.annotations.NonNull;
 
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkArgument;
+
 /**
  * {@link Filter} implementation that can extract {@link ComicState}s from
  * {@link HtmlState}s.
index c74444c..e97307e 100644 (file)
@@ -17,8 +17,6 @@
 
 package net.pterodactylus.rhynodge.filters;
 
-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;
@@ -45,6 +43,8 @@ import net.pterodactylus.rhynodge.states.TorrentState.TorrentFile;
 import org.apache.log4j.Logger;
 import org.jspecify.annotations.NonNull;
 
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkState;
+
 /**
  * {@link Filter} implementation that extracts {@link Episode} information from
  * the {@link TorrentFile}s contained in a {@link TorrentState}.
index a39364a..5b9a5f2 100644 (file)
@@ -17,8 +17,6 @@
 
 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;
@@ -29,6 +27,8 @@ import net.pterodactylus.rhynodge.states.StringState;
 import org.jsoup.nodes.Document;
 import org.jspecify.annotations.NonNull;
 
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkArgument;
+
 /**
  * {@link Filter} implementation that extracts a URL from an {@link HtmlState}.
  *
index 4e4d02f..9a9dc5d 100644 (file)
@@ -17,8 +17,6 @@
 
 package net.pterodactylus.rhynodge.filters;
 
-import static com.google.common.base.Preconditions.checkState;
-
 import net.pterodactylus.rhynodge.Filter;
 import net.pterodactylus.rhynodge.State;
 import net.pterodactylus.rhynodge.states.FailedState;
@@ -30,6 +28,8 @@ import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jspecify.annotations.NonNull;
 
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkState;
+
 /**
  * {@link Filter} that converts a {@link HttpState} into an {@link HtmlState}.
  *
index 2ba004e..ce54ce3 100644 (file)
@@ -17,8 +17,6 @@
 
 package net.pterodactylus.rhynodge.filters;
 
-import static com.google.common.base.Preconditions.*;
-
 import net.pterodactylus.rhynodge.Filter;
 import net.pterodactylus.rhynodge.State;
 import net.pterodactylus.rhynodge.queries.HttpQuery;
@@ -27,6 +25,8 @@ import net.pterodactylus.rhynodge.states.StringState;
 
 import org.jspecify.annotations.NonNull;
 
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkArgument;
+
 /**
  * {@link Filter} implementation that uses the {@link StringState#value() value}
  * of a {@link StringState} as a URL for {@link HttpQuery}, turning it into an
index 21f3fd6..6afa407 100644 (file)
@@ -17,8 +17,6 @@
 
 package net.pterodactylus.rhynodge.filters;
 
-import static com.google.common.base.Preconditions.checkState;
-
 import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -37,6 +35,8 @@ import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
 import org.jspecify.annotations.NonNull;
 
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkState;
+
 /**
  * {@link Filter} implementation that parses a {@link TorrentState} from an
  * {@link HtmlState} which was generated by a {@link HttpQuery} to
index 68c7122..00b7e1d 100644 (file)
@@ -28,7 +28,7 @@ import net.pterodactylus.rhynodge.states.ComicState;
 import net.pterodactylus.rhynodge.states.ComicState.Comic;
 import org.jspecify.annotations.NonNull;
 
-import static com.google.common.base.Preconditions.checkArgument;
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkArgument;
 
 /**
  * {@link Merger} implementation that merger two {@link ComicState}s.
index 97712f6..6d90c8f 100644 (file)
@@ -29,7 +29,7 @@ import net.pterodactylus.rhynodge.states.EpisodeState.Episode;
 import net.pterodactylus.rhynodge.states.TorrentState.TorrentFile;
 import org.jspecify.annotations.NonNull;
 
-import static com.google.common.base.Preconditions.checkState;
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkState;
 import static java.util.function.Function.identity;
 import static java.util.stream.Collectors.toMap;
 
index fcfbd81..2a4e418 100644 (file)
@@ -26,7 +26,7 @@ import net.pterodactylus.rhynodge.states.TorrentState;
 import net.pterodactylus.rhynodge.states.TorrentState.TorrentFile;
 import org.jspecify.annotations.NonNull;
 
-import static com.google.common.base.Preconditions.checkState;
+import static net.pterodactylus.rhynodge.utils.Preconditions.checkState;
 
 /**
  * {@link Merger} implementation that merges two {@link TorrentState}s, taking
diff --git a/src/main/kotlin/net/pterodactylus/rhynodge/utils/Preconditions.kt b/src/main/kotlin/net/pterodactylus/rhynodge/utils/Preconditions.kt
new file mode 100644 (file)
index 0000000..bfc68a5
--- /dev/null
@@ -0,0 +1,35 @@
+@file:JvmName("Preconditions")
+
+package net.pterodactylus.rhynodge.utils
+
+import java.lang.String.format
+
+/**
+ * Checks that the given [state] is `true` and throws an
+ * [IllegalStateException] if it is `false`.
+ *
+ * @param[state] The state to check
+ * @param[message] The message for the thrown exception; [String.format]
+ * with the given [parameters] will be used as message for the exception
+ * @param[parameters] The parameters for the exception
+ */
+fun checkState(state: Boolean, message: String, vararg parameters: Any?) {
+       if (!state) {
+               throw IllegalStateException(format(message, *parameters))
+       }
+}
+
+/**
+ * Checks that the given [state] is `true` and throws an
+ * [IllegalArgumentException] if it is `false`.
+ *
+ * @param[state] The state to check
+ * @param[message] The message for the thrown exception; [String.format]
+ * with the given [parameters] will be used as message for the exception
+ * @param[parameters] The parameters for the exception
+ */
+fun checkArgument(state: Boolean, message: String, vararg parameters: Any?) {
+       if (!state) {
+               throw IllegalArgumentException(format(message, *parameters))
+       }
+}