Interface SchemaProvider<T extends SchemaProviderCfg>

Type Parameters:
T - The type of provider configuration.
All Known Implementing Classes:
CoreSchemaProvider, JsonEqualityMatchingRuleProvider, JsonOrderingMatchingRuleProvider, JsonQueryEqualityMatchingRuleProvider, NameAndJsonQueryEqualityMatchingRuleProvider

public interface SchemaProvider<T extends SchemaProviderCfg>
Provides some schema elements to load at startup.

A schema provider must be able to update the provided SchemaBuilder at initialization and to use the provided SchemaUpdater to update the schema on further configuration changes.

  • Method Details

    • initialize

      void initialize(ServerContext serverContext, T configuration, SchemaBuilder initialSchemaBuilder) throws ConfigException, InitializationException
      Initialize the schema provider from provided configuration and schema builder.
      Parameters:
      serverContext - The server context.
      configuration - Configuration of the provider.
      initialSchemaBuilder - Schema builder to update during initialization phase.
      Throws:
      ConfigException - If a configuration problem arises in the process of performing the initialization.
      InitializationException - If a problem that is not configuration-related occurs during initialization.
    • finalizeProvider

      void finalizeProvider()
      Finalize the provider.
    • isConfigurationAcceptable

      boolean isConfigurationAcceptable(T configuration, List<LocalizableMessage> unacceptableReasons)
      Indicates whether the provided configuration is acceptable for this provider.
      Parameters:
      configuration - The provider configuration for which to make the determination.
      unacceptableReasons - A list that may be used to hold the reasons that the provided configuration is not acceptable.
      Returns:
      true if the provided configuration is acceptable for this provider, or false if not.