diff options
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/SearchArgument.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/SearchArgument.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/impl/SearchArgument.java b/src/main/java/me/shedaniel/rei/impl/SearchArgument.java new file mode 100644 index 000000000..7c53c4fa9 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/impl/SearchArgument.java @@ -0,0 +1,58 @@ +/* + * Roughly Enough Items by Danielshe. + * Licensed under the MIT License. + */ + +package me.shedaniel.rei.impl; + +import java.util.Locale; +import java.util.function.Function; + +public class SearchArgument { + + public static final SearchArgument ALWAYS = new SearchArgument(ArgumentType.ALWAYS, "", true); + private ArgumentType argumentType; + private String text; + public final Function<String, Boolean> INCLUDE = s -> s.contains(text); + public final Function<String, Boolean> NOT_INCLUDE = s -> !s.contains(text); + private boolean include; + + public SearchArgument(ArgumentType argumentType, String text, boolean include) { + this(argumentType, text, include, true); + } + + public SearchArgument(ArgumentType argumentType, String text, boolean include, boolean autoLowerCase) { + this.argumentType = argumentType; + this.text = autoLowerCase ? text.toLowerCase(Locale.ROOT) : text; + this.include = include; + } + + public Function<String, Boolean> getFunction(boolean include) { + return include ? INCLUDE : NOT_INCLUDE; + } + + public ArgumentType getArgumentType() { + return argumentType; + } + + public String getText() { + return text; + } + + public boolean isInclude() { + return include; + } + + @Override + public String toString() { + return String.format("Argument[%s]: name = %s, include = %b", argumentType.name(), text, include); + } + + public enum ArgumentType { + TEXT, + MOD, + TOOLTIP, + ALWAYS + } + +} |
