org.apache.commons.configuration
Class DefaultConfigurationBuilder.ConfigurationProvider

java.lang.Object
  extended by org.apache.commons.configuration.beanutils.DefaultBeanFactory
      extended by 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-2007 The Apache Software Foundation. All Rights Reserved.