Package org.incendo.cloud.suggestion
Interface FilteringSuggestionProcessor.Filter<C>
- Type Parameters:
C- command sender type
- All Known Subinterfaces:
FilteringSuggestionProcessor.Filter.Simple<C>
- Enclosing class:
FilteringSuggestionProcessor<C>
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@API(status=STABLE)
@FunctionalInterface
public static interface FilteringSuggestionProcessor.Filter<C>
Filter function that tests (and potentially changes) each suggestion against the input and context.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceSimple version ofFilteringSuggestionProcessor.Filterwhich doesn't modify suggestions. -
Method Summary
Modifier and TypeMethodDescriptiondefault @NonNull FilteringSuggestionProcessor.Filter<C> Returns a newFilteringSuggestionProcessor.Filterwhich tests this filter, and if the result is non-null, then filters withand.static <C> @NonNull FilteringSuggestionProcessor.Filter.Simple<C> contains(boolean ignoreCase) Create a filter usingString.contains(CharSequence)that can optionally ignore case.static <C> @NonNull FilteringSuggestionProcessor.Filter<C> contextFree(@NonNull BiFunction<String, String, @Nullable String> function) Create a new context-freeFilteringSuggestionProcessor.Filter.filter(@NonNull CommandPreprocessingContext<C> context, @NonNull String suggestion, @NonNull String input) Filters a potential suggestion against the input and context.static <C> @NonNull FilteringSuggestionProcessor.Filter.Simple<C> partialTokenMatches(boolean ignoreCase) Filter that requires every token of input to be a partial or full match for a single corresponding token in the suggestion.static <C> @NonNull FilteringSuggestionProcessor.Filter.Simple<C> simple(FilteringSuggestionProcessor.Filter.Simple<C> filter) Create a newFilteringSuggestionProcessor.Filter.Simple.static <C> @NonNull FilteringSuggestionProcessor.Filter.Simple<C> startsWith(boolean ignoreCase) Create a filter usingString.startsWith(String)that can optionally ignore case.
-
Method Details
-
filter
@API(status=STABLE) @Nullable String filter(@NonNull CommandPreprocessingContext<C> context, @NonNull String suggestion, @NonNull String input) Filters a potential suggestion against the input and context.- Parameters:
context- contextsuggestion- potential suggestioninput- remaining unconsumed input- Returns:
- possibly modified suggestion or null to deny
-
and
@API(status=STABLE) default @NonNull FilteringSuggestionProcessor.Filter<C> and(@NonNull FilteringSuggestionProcessor.Filter<C> and) Returns a newFilteringSuggestionProcessor.Filterwhich tests this filter, and if the result is non-null, then filters withand.- Parameters:
and- next filter- Returns:
- combined filter
-
startsWith
@API(status=STABLE) static <C> @NonNull FilteringSuggestionProcessor.Filter.Simple<C> startsWith(boolean ignoreCase) Create a filter usingString.startsWith(String)that can optionally ignore case.- Type Parameters:
C- sender type- Parameters:
ignoreCase- whether to ignore case- Returns:
- new filter
-
contains
@API(status=STABLE) static <C> @NonNull FilteringSuggestionProcessor.Filter.Simple<C> contains(boolean ignoreCase) Create a filter usingString.contains(CharSequence)that can optionally ignore case.- Type Parameters:
C- sender type- Parameters:
ignoreCase- whether to ignore case- Returns:
- new filter
-
partialTokenMatches
@API(status=STABLE) static <C> @NonNull FilteringSuggestionProcessor.Filter.Simple<C> partialTokenMatches(boolean ignoreCase) Filter that requires every token of input to be a partial or full match for a single corresponding token in the suggestion.- Type Parameters:
C- command sender type- Parameters:
ignoreCase- whether to ignore case- Returns:
- new filter
-
contextFree
@API(status=STABLE) static <C> @NonNull FilteringSuggestionProcessor.Filter<C> contextFree(@NonNull BiFunction<String, String, @Nullable String> function) Create a new context-freeFilteringSuggestionProcessor.Filter.- Type Parameters:
C- sender type- Parameters:
function- function- Returns:
- filter
-
simple
@API(status=STABLE) static <C> @NonNull FilteringSuggestionProcessor.Filter.Simple<C> simple(FilteringSuggestionProcessor.Filter.Simple<C> filter) Create a newFilteringSuggestionProcessor.Filter.Simple. This is a convenience method to allow for more easily implementingFilteringSuggestionProcessor.Filter.Simpleusing a lambda without casting, for methods which acceptFilteringSuggestionProcessor.Filter.- Type Parameters:
C- sender type- Parameters:
filter- filter lambda- Returns:
- new simple filter
-