## org.apache.commons.configuration
Class DefaultConfigurationBuilder.ConfigurationProvider

    java.lang.Object
      org.apache.commons.configuration.beanutils.DefaultBeanFactory
          org.apache.commons.configuration.DefaultConfigurationBuilder.ConfigurationProvider

All Implemented Interfaces:
  BeanFactory

Direct Known Subclasses:
  DefaultConfigurationBuilder.FileConfigurationProvider

Enclosing class:
  DefaultConfigurationBuilder

    public static class DefaultConfigurationBuilder.ConfigurationProvider

extends DefaultBeanFactory

A base class for creating and initializing configuration sources.

Concrete sub classes of this base class are responsible for creating specific `Configuration` objects for the tags in the configuration definition file. The configuration factory will parse the definition file and try to find a matching `ConfigurationProvider` for each encountered tag. This provider is then asked to create a corresponding `Configuration` object. It is up to a concrete implementation how this object is created and initialized.

Note that at the moment only configuration classes derived from `AbstractConfiguration` are supported.

Field Summary

Fields inherited from class org.apache.commons.configuration.beanutils.DefaultBeanFactory
`INSTANCE`

Constructor Summary
`DefaultConfigurationBuilder.ConfigurationProvider()` Creates a new uninitialized instance of `ConfigurationProvider`.
`DefaultConfigurationBuilder.ConfigurationProvider(Class<?> configClass)` Creates a new instance of `ConfigurationProvider` and sets the class of the configuration created by this provider.
`DefaultConfigurationBuilder.ConfigurationProvider(String configClassName)` Creates a new instance of `ConfigurationProvider` and sets the name of the class of the configuration created by this provider.

Method Summary
`protected Class<?>` `fetchConfigurationClass()` Returns the configuration class supported by this provider.
`AbstractConfiguration` `getConfiguration(DefaultConfigurationBuilder.ConfigurationDeclaration decl)` Returns the configuration.
`Class<?>` `getConfigurationClass()` Returns the class of the configuration returned by this provider.
`String` `getConfigurationClassName()` Returns the name of the configuration class returned by this provider.
`AbstractConfiguration` `getEmptyConfiguration(DefaultConfigurationBuilder.ConfigurationDeclaration decl)` Returns an uninitialized configuration of the represented type.
`protected Class<?>` `loadClass(String className)` Loads the class with the specified name dynamically.
`void` `setConfigurationClass(Class<?> configurationClass)` Sets the class of the configuration returned by this provider.
`void` `setConfigurationClassName(String configurationClassName)` Sets the name of the configuration class returned by this provider.

Methods inherited from class org.apache.commons.configuration.beanutils.DefaultBeanFactory
`createBean, createBeanInstance, getDefaultBeanClass, initBeanInstance`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DefaultConfigurationBuilder.ConfigurationProvider

    public DefaultConfigurationBuilder.ConfigurationProvider()

  Creates a new uninitialized instance of `ConfigurationProvider`.

### DefaultConfigurationBuilder.ConfigurationProvider

    public DefaultConfigurationBuilder.ConfigurationProvider(Class<?> configClass)

  Creates a new instance of `ConfigurationProvider` and sets the class of the configuration created by this provider.

  Parameters:
    `configClass` - the configuration class

### DefaultConfigurationBuilder.ConfigurationProvider

    public DefaultConfigurationBuilder.ConfigurationProvider(String configClassName)

  Creates a new instance of `ConfigurationProvider` and sets the name of the class of the configuration created by this provider.

  Parameters:
    `configClassName` - the name of the configuration class
  Since:
    1.4

Method Detail

### getConfigurationClass

    public Class<?> getConfigurationClass()

  Returns the class of the configuration returned by this provider.

  Returns:
    the class of the provided configuration

### setConfigurationClass

    public void setConfigurationClass(Class<?> configurationClass)

  Sets the class of the configuration returned by this provider.

  Parameters:
    `configurationClass` - the configuration class

### getConfigurationClassName

    public String getConfigurationClassName()

  Returns the name of the configuration class returned by this provider.

  Returns:
    the configuration class name
  Since:
    1.4

### setConfigurationClassName

    public void setConfigurationClassName(String configurationClassName)

  Sets the name of the configuration class returned by this provider.

  Parameters:
    `configurationClassName` - the name of the configuration class
  Since:
    1.4

### getConfiguration

    public AbstractConfiguration getConfiguration(DefaultConfigurationBuilder.ConfigurationDeclaration decl)
                                           throws Exception

  Returns the configuration. This method is called to fetch the configuration from the provider. This implementation will call the inherited `createBean()` method to create a new instance of the configuration class.

  Parameters:
    `decl` - the bean declaration with initialization parameters for the configuration
  Returns:
    the new configuration object
  Throws:
    `Exception` - if an error occurs

### getEmptyConfiguration

    public AbstractConfiguration getEmptyConfiguration(DefaultConfigurationBuilder.ConfigurationDeclaration decl)
                                                throws Exception

  Returns an uninitialized configuration of the represented type. This method will be called for optional configurations when the `getConfiguration()` method caused an error and the `forceCreate` attribute is set. A concrete sub class can here try to create an uninitialized, empty configuration, which may be possible if the error was created during initialization. This base implementation just returns null.

  Parameters:
    `decl` - the bean declaration with initialization parameters for the configuration
  Returns:
    the new configuration object
  Throws:
    `Exception` - if an error occurs
  Since:
    1.4

### fetchConfigurationClass

    protected Class<?> fetchConfigurationClass()
                                        throws Exception

  Returns the configuration class supported by this provider. If a class object was set, it is returned. Otherwise the method tries to resolve the class name.

  Returns:
    the class of the configuration to be created
  Throws:
    `Exception`
  Since:
    1.4

### loadClass

    protected Class<?> loadClass(String className)
                          throws ClassNotFoundException

  Loads the class with the specified name dynamically. If the class's name is null, null will also be returned.

  Parameters:
    `className` - the name of the class to be loaded
  Returns:
    the class object
  Throws:
    `ClassNotFoundException` - if class loading fails
  Since:
    1.4

Copyright © 2001-2012 The Apache Software Foundation. All Rights Reserved.