# Package org.apache.commons.configuration2.builder

This package contains the implementations of configuration builder classes used to create new `Configuration` objects.

In Commons Configuration, configuration builders are responsible for the creation and initialization of `Configuration` objects. The typical use case is that a builder is created and configured with initialization parameters defining specific settings for the configuration to be created. The builder can then be stored centrally. Each component requiring access to configuration information queries the builder for its managed `Configuration` and can read or write properties as its pleasure.

### Important note

This package contains a number of interfaces that reflect the initialization parameters available for supported configuration implementations. These interfaces are not intended to be implemented by client code! When new features are added to the represented configuration classes corresponding new methods will be added to them. This can happen even in minor releases.

- Interface Summary
  Interface | Description
  --- | ---
  BasicBuilderProperties<T> | Definition of a properties interface for basic parameters which are supported by all `ConfigurationBuilder` implementations derived from `BasicConfigurationBuilder`.
  BuilderParameters | An interface to be implemented by objects which can be used to parameterize a `ConfigurationBuilder`.
  ConfigurationBuilder<T extends ImmutableConfiguration> | Definition of an interface for objects that can create `ImmutableConfiguration` or `Configuration` objects of a specific type.
  DatabaseBuilderProperties<T> | Definition of a properties interface for parameters of a database configuration.
  DefaultParametersHandler<T> | Definition of an interface for setting default values for specific configuration parameter objects.
  EventListenerProvider | Definition of an interface that is evaluated by a `ConfigurationBuilder` to initialize event listeners.
  FileBasedBuilderProperties<T> | Definition of a properties interface for parameters of file-based configurations.
  HierarchicalBuilderProperties<T> | Definition of a parameters interface for hierarchical configurations.
  INIBuilderProperties<T> | Definition of a parameters interface for INI configurations.
  JndiBuilderProperties<T> | Definition of a properties interface for parameters of a JNDI configuration.
  PropertiesBuilderProperties<T> | Definition of a parameters interface for properties configurations.
  ReloadingDetectorFactory | Definition of an interface for objects which can create a `ReloadingDetector`.
  XMLBuilderProperties<T> | Definition of a parameters interface for XML configurations.

- Class Summary
  Class | Description
  --- | ---
  BasicBuilderParameters | An implementation of `BuilderParameters` which handles the parameters of a `ConfigurationBuilder` common to all concrete `Configuration` implementations.
  BasicConfigurationBuilder<T extends ImmutableConfiguration> | An implementation of the `ConfigurationBuilder` interface which is able to create different concrete `ImmutableConfiguration` implementations based on reflection.
  BuilderConfigurationWrapperFactory | A class that allows the creation of configuration objects wrapping a `ConfigurationBuilder`.
  ConfigurationBuilderEvent | A base event class for events generated by a `ConfigurationBuilder`.
  ConfigurationBuilderResultCreatedEvent | A specialized event class which is generated by a `ConfigurationBuilder` when a result configuration has been created.
  CopyObjectDefaultHandler | A specialized implementation of `DefaultParametersHandler` that copies the properties of a `BuilderParameters` object (passed at construction time) onto the object to be initialized.
  DatabaseBuilderParametersImpl | A specialized parameters object for database configurations.
  DefaultParametersManager | A class for managing a set of `DefaultParametersHandler` objects.
  DefaultReloadingDetectorFactory | A default implementation of the `ReloadingDetectorFactory` interface.
  EventListenerParameters | A specialized parameters implementation for `BasicConfigurationBuilder` which allows for a convenient event listener initialization.
  FileBasedBuilderParametersImpl | An implementation of `BuilderParameters` which contains parameters related to `Configuration` implementations that are loaded from files.
  FileBasedConfigurationBuilder<T extends FileBasedConfiguration> | A specialized `ConfigurationBuilder` implementation which can handle configurations read from a `FileHandler`.
  HierarchicalBuilderParametersImpl | A specialized parameters object for hierarchical configurations.
  INIBuilderParametersImpl | A specialized parameters class for INI configuration.
  JndiBuilderParametersImpl | A specialized parameters object for JNDI configurations.
  PropertiesBuilderParametersImpl | A specialized parameter class for configuring `PropertiesConfiguration` instances.
  ReloadingFileBasedConfigurationBuilder<T extends FileBasedConfiguration> | A specialized `ConfigurationBuilder` implementation which can handle configurations read from a `FileHandler` and supports reloading.
  XMLBuilderParametersImpl | A specialized parameters class for XML configuration.

- Enum Summary
  Enum | Description
  --- | ---
  BuilderConfigurationWrapperFactory.EventSourceSupport | An enumeration class with different options for supporting the `EventSource` interface in generated `ImmutableConfiguration` proxies.