Package studio.mevera.imperat
Interface ResolverRegistrar<S extends Source>
- 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 the default suggestion resolver associated with this registrar.@Nullable SuggestionResolver<S>Fetches the suggestion provider/resolver registered by its unique namedefault @NotNull SuggestionResolver<S>getParameterSuggestionResolver(CommandParameter<S> parameter) Fetches the suggestion provider/resolver for a specific valueType of argument or parameter.<T> @Nullable ReturnResolver<S,T> getReturnResolver(Type type) Fetches theReturnResolverfrom an internal registry.<R> @Nullable SourceResolver<S,R> getSourceResolver(Type type) Fetches theSourceResolverfrom an internal registry.@Nullable SuggestionResolver<S>Fetches the suggestion provider/resolver for a specific valueType of argument or parameter.<C extends Collection<?>>
voidregisterCollectionInitializer(Class<C> collectionType, Supplier<C> newInstanceSupplier) Registers a supplier function that provides new instances of a specific Collection type.<T> voidregisterContextResolver(Type type, @NotNull ContextResolver<S, T> resolver) RegistersContextResolver<T> voidregisterContextResolverFactory(Type type, ContextResolverFactory<S, T> factory) Registers a context resolver factory<M extends Map<?,?>>
voidregisterMapInitializer(Class<M> mapType, Supplier<M> newInstanceSupplier) Registers a supplier function that provides new instances of a specific Map type.voidregisterNamedSuggestionResolver(String name, SuggestionResolver<S> suggestionResolver) Registers a suggestion resolver<T> voidregisterParamType(Type type, @NotNull ParameterType<S, T> resolver) RegistersParameterTypevoidregisterPlaceholder(Placeholder<S> 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> voidregisterSourceResolver(Type type, SourceResolver<S, R> sourceResolver) Registers theSourceResolverinto an internal registrydefault <R> voidregisterSourceResolver(TypeWrap<R> type, SourceResolver<S, R> sourceResolver) Registers theSourceResolverinto an internal registryvoidsetDefaultSuggestionResolver(SuggestionResolver<S> defaultSuggestionResolver) Sets the default suggestion resolver to be used when no specific suggestion resolver is provided.
-
Method Details
-
registerContextResolverFactory
Registers a context resolver factory- Parameters:
factory- the factory to register
-
registerContextResolver
RegistersContextResolver- 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
-
registerParamType
RegistersParameterType- 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
-
registerCollectionInitializer
<C extends Collection<?>> void registerCollectionInitializer(Class<C> collectionType, Supplier<C> newInstanceSupplier) Registers a supplier function that provides new instances of a specific Collection type. This allows the framework to create appropriate collection instances during deserialization or initialization processes.- Type Parameters:
C- the type of Collection to be initialized- Parameters:
collectionType- the Class object representing the collection typenewInstanceSupplier- a Supplier that creates new instances of the collection type- Throws:
NullPointerException- if collectionType or newInstanceSupplier is null
-
registerMapInitializer
<M extends Map<?,?>> void registerMapInitializer(Class<M> mapType, Supplier<M> newInstanceSupplier) Registers a supplier function that provides new instances of a specific Map type. This allows the framework to create appropriate map instances during deserialization or initialization processes.- Type Parameters:
M- the type of Map to be initialized- Parameters:
mapType- the Class object representing the map typenewInstanceSupplier- a Supplier that creates new instances of the map type- Throws:
NullPointerException- if mapType or newInstanceSupplier is null
-
getDefaultSuggestionResolver
SuggestionResolver<S> getDefaultSuggestionResolver()Retrieves the default suggestion resolver associated with this registrar.- Returns:
- the
SuggestionResolverinstance used as the default resolver
-
setDefaultSuggestionResolver
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:
defaultSuggestionResolver- theSuggestionResolverto be set as default
-
getParameterSuggestionResolver
@NotNull default @NotNull SuggestionResolver<S> getParameterSuggestionResolver(CommandParameter<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
SuggestionResolverinstance for that valueType
-
getSuggestionResolverByType
Fetches the suggestion provider/resolver for a specific valueType of argument or parameter.- Parameters:
type- the valueType- Returns:
- the
SuggestionResolverinstance for that valueType
-
getNamedSuggestionResolver
Fetches the suggestion provider/resolver registered by its unique name- Parameters:
name- the name of the argument- Returns:
- the
SuggestionResolverinstance for that argument
-
registerNamedSuggestionResolver
Registers a suggestion resolver- Parameters:
name- the name of the suggestion resolversuggestionResolver- the suggestion resolver to register
-
getSourceResolver
Fetches theSourceResolverfrom an internal registry.- Type Parameters:
R- the new source valueType parameter- Parameters:
type- the target source valueType- Returns:
- the
SourceResolverfor specific valueType
-
registerSourceResolver
Registers theSourceResolverinto an internal registry- Type Parameters:
R- the new source valueType parameter- Parameters:
type- the target source valueTypesourceResolver- the source resolver to register
-
registerSourceResolver
Registers theSourceResolverinto an internal registry- Type Parameters:
R- the new source valueType parameter- Parameters:
type- the target source valueTypesourceResolver- the source resolver to register
-
getReturnResolver
Fetches theReturnResolverfrom an internal registry.- Parameters:
type- the target type- 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
-