Interface ResolverRegistrar<S extends CommandSource>

Type Parameters:
S - the type of source that this registrar handles
All Known Subinterfaces:
ImperatConfig<S>

public sealed interface ResolverRegistrar<S extends CommandSource> permits 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 Details

    • getResponseRegistry

      @NotNull @NotNull ResponseRegistry getResponseRegistry()
      Retrieves the ResponseRegistry associated with this registrar.
      Returns:
      the ResponseRegistry instance
    • 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)
      Type Parameters:
      T - the valueType of value being resolved from context
      Parameters:
      type - the class-valueType of value being resolved from context
      resolver - the resolver for this value
    • registerArgType

      <T> void registerArgType(Type type, @NotNull @NotNull ArgumentType<S,T> resolver)
      Registers ArgumentType
      Type Parameters:
      T - the valueType of value being resolved from context
      Parameters:
      type - the class-valueType of value being resolved from context
      resolver - the resolver for this value
    • registerArgTypeHandler

      void registerArgTypeHandler(@NotNull @NotNull ArgumentTypeHandler<S> handler)
      Registers a custom ArgumentTypeHandler.

      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 the ArgumentTypeRegistry associated with this registrar.
      Returns:
      the ArgumentTypeRegistry instance
    • getDefaultSuggestionResolver

      SuggestionProvider<S> getDefaultSuggestionResolver()
      Retrieves the default suggestion resolver associated with this registrar.
      Returns:
      the SuggestionProvider instance used as the default resolver
    • setDefaultSuggestionProvider

      void setDefaultSuggestionProvider(SuggestionProvider<S> defaultSuggestionProvider)
      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 - the SuggestionProvider to 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 SuggestionProvider instance for that valueType
    • getSuggestionProviderForType

      @Nullable @Nullable SuggestionProvider<S> getSuggestionProviderForType(Type type)
      Fetches the suggestion provider/resolver for a specific valueType of argument or parameter.
      Parameters:
      type - the valueType
      Returns:
      the SuggestionProvider instance for that valueType
    • getSourceProviderFor

      @Nullable <R> @Nullable SourceProvider<S,R> getSourceProviderFor(Type type)
      Fetches the SourceProvider from an internal registry.
      Type Parameters:
      R - the new source valueType parameter
      Parameters:
      type - the target source valueType
      Returns:
      the SourceProvider for specific valueType
    • registerSourceProvider

      default <R> void registerSourceProvider(TypeWrap<R> type, SourceProvider<S,R> sourceProvider)
      Registers the SourceProvider into an internal registry
      Type Parameters:
      R - the new source valueType parameter
      Parameters:
      type - the target source valueType
      sourceProvider - the source resolver to register
    • registerSourceProvider

      <R> void registerSourceProvider(Type type, SourceProvider<S,R> sourceProvider)
      Registers the SourceProvider into an internal registry
      Type Parameters:
      R - the new source valueType parameter
      Parameters:
      type - the target source valueType
      sourceProvider - the source resolver to register
    • getReturnResolver

      @Nullable <T> @Nullable ReturnResolver<S,T> getReturnResolver(MethodElement method)
      Fetches the ReturnResolver from an internal registry.
      Parameters:
      method -
      Returns:
      the ReturnResolver for specific type
    • registerReturnResolver

      default <T> void registerReturnResolver(TypeWrap<T> type, ReturnResolver<S,T> returnResolver)
      Registers the ReturnResolver into an internal registry
      Parameters:
      type - the target type
      returnResolver - the return resolver to register
    • registerReturnResolver

      <T> void registerReturnResolver(Type type, ReturnResolver<S,T> returnResolver)
      Registers the ReturnResolver into an internal registry
      Parameters:
      type - the target type
      returnResolver - the return resolver to register
    • registerPlaceholder

      void registerPlaceholder(Placeholder placeholder)
      Registers a placeholder
      Parameters:
      placeholder - to register