Package org.apache.commons.configuration2.builder

## Interface ConfigurationBuilder<T extends ImmutableConfiguration>

- Type Parameters:
    `T` - the concrete type of the `ImmutableConfiguration` class produced by this builder
  All Superinterfaces:
    `EventSource`
  All Known Implementing Classes:
    `BasicConfigurationBuilder`, `CombinedConfigurationBuilder`, `FileBasedConfigurationBuilder`, `MultiFileConfigurationBuilder`, `ReloadingCombinedConfigurationBuilder`, `ReloadingFileBasedConfigurationBuilder`, `ReloadingMultiFileConfigurationBuilder`

      public interface ConfigurationBuilder<T extends ImmutableConfiguration>
      extends EventSource

  Definition of an interface for objects that can create `ImmutableConfiguration` or `Configuration` objects of a specific type.

  This interface defines an abstract way of creating a `ImmutableConfiguration` object. It does not assume any specific way of how this is done; this is completely in the responsibility of an implementation class. There is just a single method that returns the configuration constructed by this builder.

  Note: `ImmutableConfiguration` is just the base interface for all configuration objects. So that the return type of the `getConfiguration()` method is `ImmutableConfiguration` does not mean that only immutable configurations can be created.

  Since:
    2.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `T` | `getConfiguration()` | Gets the configuration provided by this builder.

    - ### Methods inherited from interface org.apache.commons.configuration2.event.EventSource

      `addEventListener, removeEventListener`

- - ### Method Detail

    - #### getConfiguration

          T getConfiguration()
                      throws ConfigurationException

      Gets the configuration provided by this builder. An implementation has to perform all necessary steps for creating and initializing a `ImmutableConfiguration` object.
      Returns:
        the configuration
      Throws:
        `ConfigurationException` - if an error occurs