Package studio.mevera.imperat
Interface ResolverRegistrar<S extends CommandSource>
- Type Parameters:
S- the type of source that this registrar handles
- All Known Subinterfaces:
ImperatConfig<S>
The ResolverRegistrar interface provides mechanisms for registering and retrieving various
types of resolvers, factories, and initializers that are contextually linked to specific
source types and value types. It is a sealed interface, which limits its implementation
to specific permitted types.
-
Method Summary
Modifier and TypeMethodDescriptionRetrieves theArgumentTypeRegistryassociated with this registrar.Retrieves the default suggestion resolver associated with this registrar.default @NotNull SuggestionProvider<S>getParameterSuggestionResolver(Argument<S> parameter) Fetches the suggestion provider/resolver for a specific valueType of argument or parameter.@NotNull ResponseRegistryRetrieves theResponseRegistryassociated with this registrar.<T> @Nullable ReturnResolver<S,T> getReturnResolver(MethodElement method) Fetches theReturnResolverfrom an internal registry.<R> @Nullable SourceProvider<S,R> getSourceProviderFor(Type type) Fetches theSourceProviderfrom an internal registry.@Nullable SuggestionProvider<S>Fetches the suggestion provider/resolver for a specific valueType of argument or parameter.<T> voidregisterArgType(Type type, @NotNull ArgumentType<S, T> resolver) RegistersArgumentTypevoidregisterArgTypeHandler(@NotNull ArgumentTypeHandler<S> handler) Registers a customArgumentTypeHandler.<T> voidregisterContextArgumentProvider(Type type, @NotNull ContextArgumentProvider<S, T> resolver) RegistersContextArgumentProvider<T> voidregisterContextArgumentProviderFactory(Type type, ContextArgumentProviderFactory<S, T> factory) Registers a context resolver factoryvoidregisterPlaceholder(Placeholder placeholder) Registers a placeholder<T> voidregisterReturnResolver(Type type, ReturnResolver<S, T> returnResolver) Registers theReturnResolverinto an internal registrydefault <T> voidregisterReturnResolver(TypeWrap<T> type, ReturnResolver<S, T> returnResolver) Registers theReturnResolverinto an internal registry<R> voidregisterSourceProvider(Type type, SourceProvider<S, R> sourceProvider) Registers theSourceProviderinto an internal registrydefault <R> voidregisterSourceProvider(TypeWrap<R> type, SourceProvider<S, R> sourceProvider) Registers theSourceProviderinto an internal registryvoidsetDefaultSuggestionProvider(SuggestionProvider<S> defaultSuggestionProvider) Sets the default suggestion resolver to be used when no specific suggestion resolver is provided.
-
Method Details
-
getResponseRegistry
Retrieves theResponseRegistryassociated with this registrar.- Returns:
- the
ResponseRegistryinstance
-
registerContextArgumentProviderFactory
<T> void registerContextArgumentProviderFactory(Type type, ContextArgumentProviderFactory<S, T> factory) Registers a context resolver factory- Parameters:
factory- the factory to register
-
registerContextArgumentProvider
<T> void registerContextArgumentProvider(Type type, @NotNull @NotNull ContextArgumentProvider<S, T> resolver) RegistersContextArgumentProvider- Type Parameters:
T- the valueType of value being resolved from context- Parameters:
type- the class-valueType of value being resolved from contextresolver- the resolver for this value
-
registerArgType
RegistersArgumentType- Type Parameters:
T- the valueType of value being resolved from context- Parameters:
type- the class-valueType of value being resolved from contextresolver- the resolver for this value
-
registerArgTypeHandler
Registers a customArgumentTypeHandler.The handler will be added to the priority list and checked during type resolution based on its priority.
- Parameters:
handler- the handler to register
-
getArgumentTypeRegistry
ArgumentTypeRegistry<S> getArgumentTypeRegistry()Retrieves theArgumentTypeRegistryassociated with this registrar.- Returns:
- the
ArgumentTypeRegistryinstance
-
getDefaultSuggestionResolver
SuggestionProvider<S> getDefaultSuggestionResolver()Retrieves the default suggestion resolver associated with this registrar.- Returns:
- the
SuggestionProviderinstance used as the default resolver
-
setDefaultSuggestionProvider
Sets the default suggestion resolver to be used when no specific suggestion resolver is provided. The default suggestion resolver handles the auto-completion of arguments/parameters for commands.- Parameters:
defaultSuggestionProvider- theSuggestionProviderto be set as default
-
getParameterSuggestionResolver
@NotNull default @NotNull SuggestionProvider<S> getParameterSuggestionResolver(Argument<S> parameter) Fetches the suggestion provider/resolver for a specific valueType of argument or parameter.- Parameters:
parameter- the parameter symbolizing the valueType and argument name- Returns:
- the
SuggestionProviderinstance for that valueType
-
getSuggestionProviderForType
Fetches the suggestion provider/resolver for a specific valueType of argument or parameter.- Parameters:
type- the valueType- Returns:
- the
SuggestionProviderinstance for that valueType
-
getSourceProviderFor
Fetches theSourceProviderfrom an internal registry.- Type Parameters:
R- the new source valueType parameter- Parameters:
type- the target source valueType- Returns:
- the
SourceProviderfor specific valueType
-
registerSourceProvider
Registers theSourceProviderinto an internal registry- Type Parameters:
R- the new source valueType parameter- Parameters:
type- the target source valueTypesourceProvider- the source resolver to register
-
registerSourceProvider
Registers theSourceProviderinto an internal registry- Type Parameters:
R- the new source valueType parameter- Parameters:
type- the target source valueTypesourceProvider- the source resolver to register
-
getReturnResolver
Fetches theReturnResolverfrom an internal registry.- Parameters:
method-- Returns:
- the
ReturnResolverfor specific type
-
registerReturnResolver
Registers theReturnResolverinto an internal registry- Parameters:
type- the target typereturnResolver- the return resolver to register
-
registerReturnResolver
Registers theReturnResolverinto an internal registry- Parameters:
type- the target typereturnResolver- the return resolver to register
-
registerPlaceholder
Registers a placeholder- Parameters:
placeholder- to register
-