From: David ‘Bombe’ Roden Date: Wed, 8 Oct 2025 17:14:27 +0000 (+0200) Subject: ♻️ Duplicate Guava’s preconditions and remove Guava from dependencies X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=7207404b4747d2b05adf9b6274a13c957b6067d9;p=rhynodge.git ♻️ Duplicate Guava’s preconditions and remove Guava from dependencies --- diff --git a/build.gradle b/build.gradle index cc1705f..73e9b31 100644 --- a/build.gradle +++ b/build.gradle @@ -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" diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/BlacklistFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/BlacklistFilter.java index 9d82f35..538e259 100644 --- a/src/main/java/net/pterodactylus/rhynodge/filters/BlacklistFilter.java +++ b/src/main/java/net/pterodactylus/rhynodge/filters/BlacklistFilter.java @@ -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; diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/ComicSiteFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/ComicSiteFilter.java index 0ccd913..726f6b8 100644 --- a/src/main/java/net/pterodactylus/rhynodge/filters/ComicSiteFilter.java +++ b/src/main/java/net/pterodactylus/rhynodge/filters/ComicSiteFilter.java @@ -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. diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/EpisodeFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/EpisodeFilter.java index c74444c..e97307e 100644 --- a/src/main/java/net/pterodactylus/rhynodge/filters/EpisodeFilter.java +++ b/src/main/java/net/pterodactylus/rhynodge/filters/EpisodeFilter.java @@ -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}. diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/ExtractUrlFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/ExtractUrlFilter.java index a39364a..5b9a5f2 100644 --- a/src/main/java/net/pterodactylus/rhynodge/filters/ExtractUrlFilter.java +++ b/src/main/java/net/pterodactylus/rhynodge/filters/ExtractUrlFilter.java @@ -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}. * diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/HtmlFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/HtmlFilter.java index 4e4d02f..9a9dc5d 100644 --- a/src/main/java/net/pterodactylus/rhynodge/filters/HtmlFilter.java +++ b/src/main/java/net/pterodactylus/rhynodge/filters/HtmlFilter.java @@ -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}. * diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/HttpQueryFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/HttpQueryFilter.java index 2ba004e..ce54ce3 100644 --- a/src/main/java/net/pterodactylus/rhynodge/filters/HttpQueryFilter.java +++ b/src/main/java/net/pterodactylus/rhynodge/filters/HttpQueryFilter.java @@ -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 diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/TorrentSiteFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/TorrentSiteFilter.java index 21f3fd6..6afa407 100644 --- a/src/main/java/net/pterodactylus/rhynodge/filters/TorrentSiteFilter.java +++ b/src/main/java/net/pterodactylus/rhynodge/filters/TorrentSiteFilter.java @@ -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 diff --git a/src/main/java/net/pterodactylus/rhynodge/mergers/ComicMerger.java b/src/main/java/net/pterodactylus/rhynodge/mergers/ComicMerger.java index 68c7122..00b7e1d 100644 --- a/src/main/java/net/pterodactylus/rhynodge/mergers/ComicMerger.java +++ b/src/main/java/net/pterodactylus/rhynodge/mergers/ComicMerger.java @@ -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. diff --git a/src/main/java/net/pterodactylus/rhynodge/mergers/EpisodeMerger.java b/src/main/java/net/pterodactylus/rhynodge/mergers/EpisodeMerger.java index 97712f6..6d90c8f 100644 --- a/src/main/java/net/pterodactylus/rhynodge/mergers/EpisodeMerger.java +++ b/src/main/java/net/pterodactylus/rhynodge/mergers/EpisodeMerger.java @@ -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; diff --git a/src/main/java/net/pterodactylus/rhynodge/mergers/TorrentMerger.java b/src/main/java/net/pterodactylus/rhynodge/mergers/TorrentMerger.java index fcfbd81..2a4e418 100644 --- a/src/main/java/net/pterodactylus/rhynodge/mergers/TorrentMerger.java +++ b/src/main/java/net/pterodactylus/rhynodge/mergers/TorrentMerger.java @@ -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 index 0000000..bfc68a5 --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/rhynodge/utils/Preconditions.kt @@ -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)) + } +}