Class BuilderConfigurationWrapperFactory

java.lang.Object
org.apache.commons.configuration2.builder.BuilderConfigurationWrapperFactory

public class BuilderConfigurationWrapperFactory extends Object

A class that allows the creation of configuration objects wrapping a ConfigurationBuilder.

Using this class special ImmutableConfiguration proxies can be created that delegate all method invocations to another ImmutableConfiguration obtained from a ConfigurationBuilder. For instance, if there is a configuration c wrapping the builder builder, the call c.getString(myKey) is transformed to builder.getConfiguration().getString(myKey).

There are multiple use cases for such a constellation. One example is that client code can continue working with ImmutableConfiguration objects while under the hood builders are used. Another example is that dynamic configurations can be realized in a transparent way: a client holds a single configuration (proxy) object, but the underlying builder may return a different data object on each call.

Since:
2.0
  • Constructor Details

    • BuilderConfigurationWrapperFactory

      public BuilderConfigurationWrapperFactory(BuilderConfigurationWrapperFactory.EventSourceSupport evSrcSupport)
      Creates a new instance of BuilderConfigurationWrapperFactory and sets the property for supporting the EventSource interface.
      Parameters:
      evSrcSupport - the level of EventSource support
    • BuilderConfigurationWrapperFactory

      public BuilderConfigurationWrapperFactory()
      Creates a new instance of BuilderConfigurationWrapperFactory setting the default EventSourceSupport NONE.
  • Method Details

    • createBuilderConfigurationWrapper

      public <T extends ImmutableConfiguration> T createBuilderConfigurationWrapper(Class<T> ifcClass, ConfigurationBuilder<? extends T> builder)
      Creates a wrapper ImmutableConfiguration on top of the specified ConfigurationBuilder. This implementation delegates to createBuilderConfigurationWrapper(Class, ConfigurationBuilder, EventSourceSupport) .
      Type Parameters:
      T - the type of the configuration objects returned by this method
      Parameters:
      ifcClass - the class of the configuration objects returned by this method; this must be an interface class and must not be null
      builder - the wrapped ConfigurationBuilder (must not be null)
      Returns:
      the wrapper configuration
      Throws:
      IllegalArgumentException - if a required parameter is missing
      ConfigurationRuntimeException - if an error occurs when creating the result ImmutableConfiguration
    • getEventSourceSupport

      Gets the level of EventSource support used when generating ImmutableConfiguration objects.
      Returns:
      the level of EventSource support
    • createBuilderConfigurationWrapper

      public static <T extends ImmutableConfiguration> T createBuilderConfigurationWrapper(Class<T> ifcClass, ConfigurationBuilder<? extends T> builder, BuilderConfigurationWrapperFactory.EventSourceSupport evSrcSupport)
      Creates a ImmutableConfiguration object which wraps the specified ConfigurationBuilder. Each access of the configuration is delegated to a corresponding call on the ImmutableConfiguration object managed by the builder. This is a convenience method which allows creating wrapper configurations without having to instantiate this class.
      Type Parameters:
      T - the type of the configuration objects returned by this method
      Parameters:
      ifcClass - the class of the configuration objects returned by this method; this must be an interface class and must not be null
      builder - the wrapped ConfigurationBuilder (must not be null)
      evSrcSupport - the level of EventSource support
      Returns:
      the wrapper configuration
      Throws:
      IllegalArgumentException - if a required parameter is missing
      ConfigurationRuntimeException - if an error occurs when creating the result ImmutableConfiguration