org.codehaus.cargo.generic.configuration
Class DefaultConfigurationFactory

java.lang.Object
  extended by org.codehaus.cargo.util.log.LoggedObject
      extended by org.codehaus.cargo.generic.spi.AbstractGenericHintFactory
          extended by org.codehaus.cargo.generic.spi.AbstractIntrospectionGenericHintFactory
              extended by org.codehaus.cargo.generic.configuration.DefaultConfigurationFactory
All Implemented Interfaces:
ConfigurationFactory, Loggable

public class DefaultConfigurationFactory
extends AbstractIntrospectionGenericHintFactory
implements ConfigurationFactory

Default ConfigurationFactory implementation that has all the known container configurations registered against their containers. It also supports registering new configurations against any container.

Version:
$Id: DefaultConfigurationFactory.java 1233 2006-11-22 09:15:56Z vmassol $

Nested Class Summary
 
Nested classes/interfaces inherited from class org.codehaus.cargo.generic.spi.AbstractGenericHintFactory
AbstractGenericHintFactory.GenericParameters
 
Constructor Summary
DefaultConfigurationFactory()
          Register default configurations.
 
Method Summary
 Configuration createConfiguration(java.lang.String containerId, ContainerType containerType, ConfigurationType configurationType)
          Create a configuration instance matching the specified container and type.
 Configuration createConfiguration(java.lang.String containerId, ContainerType containerType, ConfigurationType configurationType, java.lang.String home)
          Create a configuration instance matching the specified container and type.
protected  java.lang.Object createInstance(java.lang.reflect.Constructor constructor, java.lang.String hint, AbstractGenericHintFactory.GenericParameters parameters)
          Create an implementation class instance.
 java.lang.Class getConfigurationClass(java.lang.String containerId, ContainerType containerType, ConfigurationType configurationType)
          
protected  java.lang.reflect.Constructor getConstructor(java.lang.Class configurationClass, java.lang.String hint, AbstractGenericHintFactory.GenericParameters parameters)
          Create a constructor.
 boolean isConfigurationRegistered(java.lang.String containerId, ContainerType containerType, ConfigurationType configurationType)
          
 void registerConfiguration(java.lang.String containerId, ContainerType containerType, ConfigurationType configurationType, java.lang.Class configurationClass)
          Registers a configuration implementation.
 void registerConfiguration(java.lang.String containerId, ContainerType containerType, ConfigurationType configurationType, java.lang.String configurationClassName)
          Registers a configuration using a class specified as a String.
 
Methods inherited from class org.codehaus.cargo.generic.spi.AbstractIntrospectionGenericHintFactory
createImplementation, registerImplementation
 
Methods inherited from class org.codehaus.cargo.generic.spi.AbstractGenericHintFactory
getMapping, getMappings, hasMapping, registerImplementation
 
Methods inherited from class org.codehaus.cargo.util.log.LoggedObject
getLogger, setLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultConfigurationFactory

public DefaultConfigurationFactory()
Register default configurations.

Method Detail

isConfigurationRegistered

public boolean isConfigurationRegistered(java.lang.String containerId,
                                         ContainerType containerType,
                                         ConfigurationType configurationType)

Specified by:
isConfigurationRegistered in interface ConfigurationFactory
Parameters:
containerId - the container id attached to this configuration class
containerType - the container type attached to this configuration class
configurationType - the type to differentiate this configuration from others for the specified container
Returns:
true if the specified configuration is already registered or false otherwise
See Also:
ConfigurationFactory.isConfigurationRegistered(java.lang.String, org.codehaus.cargo.container.ContainerType, org.codehaus.cargo.container.configuration.ConfigurationType)

registerConfiguration

public void registerConfiguration(java.lang.String containerId,
                                  ContainerType containerType,
                                  ConfigurationType configurationType,
                                  java.lang.Class configurationClass)
Registers a configuration implementation.

Specified by:
registerConfiguration in interface ConfigurationFactory
Parameters:
containerId - the container id attached to this configuration class
containerType - the container type attached to this configuration class
configurationType - the type to differentiate this configuration from others for the specified container
configurationClass - the configuration implementation class to register
See Also:
ConfigurationFactory.registerConfiguration(java.lang.String, org.codehaus.cargo.container.ContainerType, org.codehaus.cargo.container.configuration.ConfigurationType, java.lang.Class)

registerConfiguration

public void registerConfiguration(java.lang.String containerId,
                                  ContainerType containerType,
                                  ConfigurationType configurationType,
                                  java.lang.String configurationClassName)
Registers a configuration using a class specified as a String.

Parameters:
containerId -
containerType -
configurationType -
configurationClassName - the configuration implementation class to register as a String
See Also:
registerConfiguration(String, org.codehaus.cargo.container.ContainerType, org.codehaus.cargo.container.configuration.ConfigurationType, Class)

getConfigurationClass

public java.lang.Class getConfigurationClass(java.lang.String containerId,
                                             ContainerType containerType,
                                             ConfigurationType configurationType)

Specified by:
getConfigurationClass in interface ConfigurationFactory
Parameters:
containerId - the container id attached to this configuration class
containerType - the container type attached to this configuration class
configurationType - the configuration's type
Returns:
the configuration implementation class
See Also:
ConfigurationFactory.getConfigurationClass(java.lang.String, org.codehaus.cargo.container.ContainerType, org.codehaus.cargo.container.configuration.ConfigurationType)

createConfiguration

public Configuration createConfiguration(java.lang.String containerId,
                                         ContainerType containerType,
                                         ConfigurationType configurationType)
Create a configuration instance matching the specified container and type.

Specified by:
createConfiguration in interface ConfigurationFactory
Parameters:
containerId - the id of the container for which to create a configuration
containerType - the type of the container for which to create a configuration
configurationType - the type that differentiates the configuration we wish to create from other configurations for this container
Returns:
the configuation instance
See Also:
ConfigurationFactory.createConfiguration(String, org.codehaus.cargo.container.ContainerType, org.codehaus.cargo.container.configuration.ConfigurationType)

createConfiguration

public Configuration createConfiguration(java.lang.String containerId,
                                         ContainerType containerType,
                                         ConfigurationType configurationType,
                                         java.lang.String home)
Create a configuration instance matching the specified container and type.

Specified by:
createConfiguration in interface ConfigurationFactory
Parameters:
containerId - the id of the container for which to create a configuration
containerType - the type of the container for which to create a configuration
configurationType - the type that differentiates the configuration we wish to create from other configurations for this container
home - the configuration home
Returns:
the configuation instance
See Also:
ConfigurationFactory.createConfiguration(String, org.codehaus.cargo.container.ContainerType, org.codehaus.cargo.container.configuration.ConfigurationType, String)

getConstructor

protected java.lang.reflect.Constructor getConstructor(java.lang.Class configurationClass,
                                                       java.lang.String hint,
                                                       AbstractGenericHintFactory.GenericParameters parameters)
                                                throws java.lang.NoSuchMethodException
Create a constructor.

Specified by:
getConstructor in class AbstractGenericHintFactory
Parameters:
configurationClass - implementation class for which to create the constructor
hint - the hint to differentiate this implementation class from others
parameters - additional parameters necessary to create the constructor object
Returns:
the constructor to use for creating an instance
Throws:
java.lang.NoSuchMethodException - in case of error
See Also:
AbstractGenericHintFactory.getConstructor(Class, String, GenericParameters)

createInstance

protected java.lang.Object createInstance(java.lang.reflect.Constructor constructor,
                                          java.lang.String hint,
                                          AbstractGenericHintFactory.GenericParameters parameters)
                                   throws java.lang.Exception
Create an implementation class instance.

Specified by:
createInstance in class AbstractGenericHintFactory
Parameters:
constructor - the constructor to use for creating the instance
hint - the hint to differentiate this implementation class from others
parameters - additional parameters necessary to create the instance
Returns:
the created instance
Throws:
java.lang.Exception - in case of error
See Also:
AbstractGenericHintFactory.createInstance(java.lang.reflect.Constructor, java.lang.String, org.codehaus.cargo.generic.spi.AbstractGenericHintFactory.GenericParameters)


Copyright © 2004-2011 Codehaus. All Rights Reserved.