Package org.apache.commons.configuration2.builder.combined

# Class MultiFileConfigurationBuilderProvider

java.lang.Object
org.apache.commons.configuration2.builder.combined.BaseConfigurationBuilderProvider
org.apache.commons.configuration2.builder.combined.MultiFileConfigurationBuilderProvider

All Implemented Interfaces:
  `ConfigurationBuilderProvider`

public class MultiFileConfigurationBuilderProvider extends BaseConfigurationBuilderProvider

A specialized `ConfigurationBuilderProvider` implementation for integrating `MultiFileConfigurationBuilder` with `CombinedConfigurationBuilder`.

When using a configuration source managed by `MultiFileConfigurationBuilder` it is not sufficient to store the configuration once obtained from the builder in the resulting combined configuration. Rather, it has to be ensured that each access to this configuration queries the builder anew so that it can evaluate its file pattern and return a different configuration if necessary. Therefore, this class returns a specialized wrapper over a `MultiFileConfigurationBuilder` which returns a configuration wrapping the builder; so accessing the configuration's properties actually calls back to the builder. This constellation is compatible with the way `DynamicCombinedConfiguration` manages its data.

Since:
  2.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MultiFileConfigurationBuilderProvider(String configCls, String paramCls)`
  Creates a new instance of `MultiFileConfigurationBuilderProvider` and sets the name of the configuration class to be returned by `MultiFileConfigurationBuilder`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ConfigurationBuilder<? extends Configuration>`
  `getConfigurationBuilder(ConfigurationDeclaration decl)`
  Gets the builder for the configuration source managed by this provider.

  ### Methods inherited from class org.apache.commons.configuration2.builder.combined.BaseConfigurationBuilderProvider

  `configureBuilder, createBuilder, createParameterObjects, determineBuilderClass, determineConfigurationClass, getBuilderClass, getConfigurationClass, getParameterClasses, getReloadingBuilderClass, inheritParentBuilderProperties, initializeParameterObjects, isAllowFailOnInit`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MultiFileConfigurationBuilderProvider

    public MultiFileConfigurationBuilderProvider(String configCls, String paramCls)
    Creates a new instance of `MultiFileConfigurationBuilderProvider` and sets the name of the configuration class to be returned by `MultiFileConfigurationBuilder`.
    Parameters:
      `configCls` - the name of the managed configuration class
      `paramCls` - the name of the class of the parameters object to configure the managed configuration

- ## Method Details

  - ### getConfigurationBuilder

    public ConfigurationBuilder<? extends Configuration> getConfigurationBuilder(ConfigurationDeclaration decl) throws ConfigurationException
    Gets the builder for the configuration source managed by this provider. This method is called during processing of the combined configuration definition file. This implementation delegates to some protected methods to create a new builder instance using reflection and to configure it with parameter values defined by the passed in `BeanDeclaration`. This implementation lets the super class create a fully configured builder. Then it returns a special wrapper around it.
    Specified by:
      `getConfigurationBuilder` in interface `ConfigurationBuilderProvider`
    Overrides:
      `getConfigurationBuilder` in class `BaseConfigurationBuilderProvider`
    Parameters:
      `decl` - the bean declaration with initialization parameters for the configuration builder
    Returns:
      the `ConfigurationBuilder` object created by this provider
    Throws:
      `ConfigurationException` - if an error occurs