Package cloud.commandframework.execution
Interface FilteringCommandSuggestionProcessor.Filter<C>
- Type Parameters:
C- sender type
- All Known Subinterfaces:
FilteringCommandSuggestionProcessor.Filter.Simple<C>
- Enclosing class:
- FilteringCommandSuggestionProcessor<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,
since="1.8.0")
@FunctionalInterface
public static interface FilteringCommandSuggestionProcessor.Filter<C>
Filter function that tests (and potentially changes) each suggestion against the input and context.
- Since:
- 1.8.0
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceSimple version ofFilteringCommandSuggestionProcessor.Filterwhich doesn't modify suggestions. -
Method Summary
Modifier and TypeMethodDescriptiondefault @NonNull FilteringCommandSuggestionProcessor.Filter<C>and(@NonNull FilteringCommandSuggestionProcessor.Filter<C> and) Returns a newFilteringCommandSuggestionProcessor.Filterwhich tests this filter, and if the result is non-null, then filters withand.Returns a newFilteringCommandSuggestionProcessor.Filterthat tests this filter, and then usestrimBeforeLastSpace()if the result is non-null.static <C> @NonNull FilteringCommandSuggestionProcessor.Filter.Simple<C>contains(boolean ignoreCase) Create a filter usingString.contains(CharSequence)that can optionally ignore case.static <C> @NonNull FilteringCommandSuggestionProcessor.Filter<C>contextFree(@NonNull BiFunction<String, String, @Nullable String> function) Create a new context-freeFilteringCommandSuggestionProcessor.Filter.@Nullable Stringfilter(@NonNull CommandPreprocessingContext<C> context, @NonNull String suggestion, @NonNull String input) Filters a potential suggestion against the input and context.static <C> @NonNull FilteringCommandSuggestionProcessor.Filter.Simple<C>Create a newFilteringCommandSuggestionProcessor.Filter.Simple.static <C> @NonNull FilteringCommandSuggestionProcessor.Filter.Simple<C>startsWith(boolean ignoreCase) Create a filter usingString.startsWith(String)that can optionally ignore case.static <C> @NonNull FilteringCommandSuggestionProcessor.Filter<C>Create a filter which does extra processing when the input contains spaces.
-
Method Details
-
filter
@API(status=STABLE, since="1.8.0") @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
- Since:
- 1.8.0
-
and
@API(status=STABLE, since="1.8.0") default @NonNull FilteringCommandSuggestionProcessor.Filter<C> and(@NonNull FilteringCommandSuggestionProcessor.Filter<C> and) Returns a newFilteringCommandSuggestionProcessor.Filterwhich tests this filter, and if the result is non-null, then filters withand.- Parameters:
and- next filter- Returns:
- combined filter
- Since:
- 1.8.0
-
andTrimBeforeLastSpace
@API(status=STABLE, since="1.8.0") default FilteringCommandSuggestionProcessor.Filter<C> andTrimBeforeLastSpace()Returns a newFilteringCommandSuggestionProcessor.Filterthat tests this filter, and then usestrimBeforeLastSpace()if the result is non-null.- Returns:
- combined filter
- Since:
- 1.8.0
-
startsWith
@API(status=STABLE, since="1.8.0") static <C> @NonNull FilteringCommandSuggestionProcessor.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
- Since:
- 1.8.0
-
contains
@API(status=STABLE, since="1.8.0") static <C> @NonNull FilteringCommandSuggestionProcessor.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
- Since:
- 1.8.0
-
trimBeforeLastSpace
@API(status=STABLE, since="1.8.0") static <C> @NonNull FilteringCommandSuggestionProcessor.Filter<C> trimBeforeLastSpace()Create a filter which does extra processing when the input contains spaces.Will return the portion of the suggestion which is after the last space in the input.
- Type Parameters:
C- sender type- Returns:
- new filter
- Since:
- 1.8.0
-
contextFree
@API(status=STABLE, since="1.8.0") static <C> @NonNull FilteringCommandSuggestionProcessor.Filter<C> contextFree(@NonNull BiFunction<String, String, @Nullable String> function) Create a new context-freeFilteringCommandSuggestionProcessor.Filter.- Type Parameters:
C- sender type- Parameters:
function- function- Returns:
- filter
- Since:
- 1.8.0
-
simple
@API(status=STABLE, since="1.8.0") static <C> @NonNull FilteringCommandSuggestionProcessor.Filter.Simple<C> simple(FilteringCommandSuggestionProcessor.Filter.Simple<C> filter) Create a newFilteringCommandSuggestionProcessor.Filter.Simple. This is a convenience method to allow for more easily implementingFilteringCommandSuggestionProcessor.Filter.Simpleusing a lambda without casting, for methods which acceptFilteringCommandSuggestionProcessor.Filter.- Type Parameters:
C- sender type- Parameters:
filter- filter lambda- Returns:
- new simple filter
- Since:
- 1.8.0
-