aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/impl/search/MatchStatus.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-06-06 16:29:32 +0800
committershedaniel <daniel@shedaniel.me>2020-06-06 16:29:32 +0800
commit3802055673e7877d66614791eba6ea0599488c7a (patch)
tree8a26efa9c9cea0c0ee1d00234c04eace52771dae /src/main/java/me/shedaniel/rei/impl/search/MatchStatus.java
parentf7be9668e3b9508497e21ff74cc0f2f2e1b5d931 (diff)
downloadRoughlyEnoughItems-3802055673e7877d66614791eba6ea0599488c7a.tar.gz
RoughlyEnoughItems-3802055673e7877d66614791eba6ea0599488c7a.tar.bz2
RoughlyEnoughItems-3802055673e7877d66614791eba6ea0599488c7a.zip
Improved Search
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/search/MatchStatus.java')
-rw-r--r--src/main/java/me/shedaniel/rei/impl/search/MatchStatus.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/impl/search/MatchStatus.java b/src/main/java/me/shedaniel/rei/impl/search/MatchStatus.java
new file mode 100644
index 000000000..a2ed9a9de
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/impl/search/MatchStatus.java
@@ -0,0 +1,63 @@
+package me.shedaniel.rei.impl.search;
+
+import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.Objects;
+
+@ApiStatus.Internal
+public final class MatchStatus {
+ private static final MatchStatus UNMATCHED = new MatchStatus(MatchType.UNMATCHED, null, false);
+ private final MatchType type;
+ @Nullable
+ private final String text;
+ private final boolean preserveCasing;
+
+ private MatchStatus(MatchType type, @Nullable String text, boolean preserveCasing) {
+ this.type = type;
+ this.text = text;
+ this.preserveCasing = preserveCasing;
+ }
+
+ public static MatchStatus unmatched() {
+ return UNMATCHED;
+ }
+
+ public static MatchStatus invertMatched(@NotNull String text) {
+ return invertMatched(text, false);
+ }
+
+ public static MatchStatus invertMatched(@NotNull String text, boolean preserveCasing) {
+ return new MatchStatus(MatchType.INVERT_MATCHED, Objects.requireNonNull(text), preserveCasing);
+ }
+
+ public static MatchStatus matched(@NotNull String text) {
+ return matched(text, false);
+ }
+
+ public static MatchStatus matched(@NotNull String text, boolean preserveCasing) {
+ return new MatchStatus(MatchType.MATCHED, Objects.requireNonNull(text), preserveCasing);
+ }
+
+ public boolean isMatched() {
+ return type != MatchType.UNMATCHED;
+ }
+
+ public boolean isInverted() {
+ return type == MatchType.INVERT_MATCHED;
+ }
+
+ public boolean shouldPreserveCasing() {
+ return preserveCasing;
+ }
+
+ @Nullable
+ public String getText() {
+ return text;
+ }
+
+ public MatchType getType() {
+ return type;
+ }
+}