org.apache.uima.resource.impl
Class ConfigurationManagerImplBase

java.lang.Object
  extended by org.apache.uima.resource.impl.ConfigurationManagerImplBase
All Implemented Interfaces:
ConfigurationManager
Direct Known Subclasses:
ConfigurationManager_impl

public abstract class ConfigurationManagerImplBase
extends java.lang.Object
implements ConfigurationManager

Convenience base class for Configuration Manager implementations. Subclasses just need to implement the abstract methods declareParameters(String, ConfigurationParameter[], ConfigurationParameterSettings, String, String) and lookupSharedParamNoLinks(String).


Field Summary
protected static char GROUP_SEPARATOR
          Character that separates parameter name from group name in the parameter map.
protected static java.lang.String SESSION_CONFIGURATION_KEY
          Key under which to store configuration information in the Session object.
 
Constructor Summary
ConfigurationManagerImplBase()
           
 
Method Summary
 void createContext(java.lang.String aContextName, ResourceMetaData aResourceMetaData)
          Creates and sets up a new configuration parameter context.
protected  void declareParameters(java.lang.String aGroupName, ConfigurationParameter[] aParams, ConfigurationParameterSettings aSettings, java.lang.String aContextName, java.lang.String aParentContextName)
          Called during creation of a new context.
 ConfigurationParameterDeclarations getConfigParameterDeclarations(java.lang.String aContextName)
          Gets the ConfigurationParameterDeclarations for the given context.
 java.lang.Object getConfigParameterValue(java.lang.String aQualifiedParameterName)
          Retrieves the value for a configuration parameter.
 java.lang.Object getConfigParameterValue(java.lang.String aQualifiedParameterName, java.lang.String aGroupName)
          Retrieves the value for a configuration parameter in a group.
 ConfigurationParameterSettings getCurrentConfigParameterSettings(java.lang.String aContextName)
          Gets an object containing the current settings for all configuration parameters within the given context.
protected  java.lang.String getLink(java.lang.String aCompleteName)
          Gets the name of the parameter to which a given parameter is linked.
protected  java.lang.Class<?> getParameterExpectedValueClass(ConfigurationParameter aParam)
          Get the Java class of the expected value of the specified parameter.
protected  java.lang.Object lookup(java.lang.String aCompleteName)
          Does a direct lookup of a complete name, including the group.
protected abstract  java.lang.Object lookupSharedParamNoLinks(java.lang.String aCompleteName)
          Looks up the value of a shared parameter, but does NOT follow links.
protected  java.lang.String makeQualifiedName(java.lang.String aContextName, java.lang.String aParamName, java.lang.String aGroupName)
          Creates a qualified parameter name.
 void reconfigure(java.lang.String aContextName)
          Completes the reconfiguration of parameters within the specified context.
 void setConfigParameterValue(java.lang.String aQualifiedParamName, java.lang.Object aValue)
          Sets the value of a configuration parameter.
 void setConfigParameterValue(java.lang.String aQualifiedParamName, java.lang.String aGroupName, java.lang.Object aValue)
          Sets the value of a configuration parameter in a group.
 void setSession(Session aSession)
          Sets the current Session.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GROUP_SEPARATOR

protected static final char GROUP_SEPARATOR
Character that separates parameter name from group name in the parameter map.

See Also:
Constant Field Values

SESSION_CONFIGURATION_KEY

protected static final java.lang.String SESSION_CONFIGURATION_KEY
Key under which to store configuration information in the Session object.

See Also:
Constant Field Values
Constructor Detail

ConfigurationManagerImplBase

public ConfigurationManagerImplBase()
Method Detail

setSession

public void setSession(Session aSession)
Description copied from interface: ConfigurationManager
Sets the current Session. The Configuration Manager uses the Session object to store changes to configuration settings made by calling the setConfigParameterValue methods. This ensures that in a multi-client deployment those settings only apply to the same client that set them.

Code that uses this class must be sure to call setSession before using the other methods (except createContext) on this class.

Specified by:
setSession in interface ConfigurationManager
Parameters:
aSession - the session object used to store configuration parameter overrides made by a particular client.

createContext

public void createContext(java.lang.String aContextName,
                          ResourceMetaData aResourceMetaData)
                   throws ResourceConfigurationException
Description copied from interface: ConfigurationManager
Creates and sets up a new configuration parameter context. This method is called during the initialization of each Resource that uses this Configuration Manager. Validation will be performed on the configuration parameters declared in this context; if an error is found an exception will be thrown.

Specified by:
createContext in interface ConfigurationManager
Parameters:
aContextName - the name of the context in which the configuration parameter is being accessed. This corresponds to the path through the aggregate resource, e.g /subAE1/annotator1.
aResourceMetaData - metadata object containing the configuration parameter declarations and settings.
Throws:
ResourceConfigurationException - if the configuration settings are invalid

getConfigParameterValue

public java.lang.Object getConfigParameterValue(java.lang.String aQualifiedParameterName)
Description copied from interface: ConfigurationManager
Retrieves the value for a configuration parameter.

Specified by:
getConfigParameterValue in interface ConfigurationManager
Parameters:
aQualifiedParameterName - the fully-qualified configuration parameter name. This is of the form ContextName + / + ParameterName.
Returns:
the value of the parameter with the given name. The caller is expected to know the data type of the parameter. If the parameter does not exist,null is returned.

getConfigParameterValue

public java.lang.Object getConfigParameterValue(java.lang.String aQualifiedParameterName,
                                                java.lang.String aGroupName)
Description copied from interface: ConfigurationManager
Retrieves the value for a configuration parameter in a group.

Specified by:
getConfigParameterValue in interface ConfigurationManager
Parameters:
aQualifiedParameterName - the fully-qualified configuration parameter name. This is of the form ContextName + / + ParameterName.
Returns:
the value of the parameter with the given name. The caller is expected to know the data type of the parameter. If the parameter does not exist,null is returned.

setConfigParameterValue

public void setConfigParameterValue(java.lang.String aQualifiedParamName,
                                    java.lang.Object aValue)
Description copied from interface: ConfigurationManager
Sets the value of a configuration parameter. This only works for a parameter that is not defined in any group. Note that there is no guarantee that the change will take effect until ConfigurationManager.reconfigure(String) is called.

Specified by:
setConfigParameterValue in interface ConfigurationManager
Parameters:
aQualifiedParamName - the fully-qualified configuration parameter name. This is of the form ContextName + / + ParameterName.
aValue - the value to assign to the parameter

setConfigParameterValue

public void setConfigParameterValue(java.lang.String aQualifiedParamName,
                                    java.lang.String aGroupName,
                                    java.lang.Object aValue)
Description copied from interface: ConfigurationManager
Sets the value of a configuration parameter in a group. Note that there is no guarantee that the change will take effect until ConfigurationManager.reconfigure(String) is called.

Specified by:
setConfigParameterValue in interface ConfigurationManager
Parameters:
aQualifiedParamName - the fully-qualified configuration parameter name. This is of the form ContextName + / + ParameterName.
aGroupName - the name of a configuration group. If this parameter is null, this method will have the same effet as setParameterValue(String,Object).
aValue - the value to assign to the parameter

reconfigure

public void reconfigure(java.lang.String aContextName)
                 throws ResourceConfigurationException
Description copied from interface: ConfigurationManager
Completes the reconfiguration of parameters within the specified context. Also validates the parameter settings.

Specified by:
reconfigure in interface ConfigurationManager
Parameters:
aContextName - the name of the context being reconfigured
Throws:
ResourceConfigurationException - if the new configuration is invalid

getConfigParameterDeclarations

public ConfigurationParameterDeclarations getConfigParameterDeclarations(java.lang.String aContextName)
Description copied from interface: ConfigurationManager
Gets the ConfigurationParameterDeclarations for the given context.

Specified by:
getConfigParameterDeclarations in interface ConfigurationManager
Parameters:
aContextName - the name for which to get the parameter declarations
Returns:
parameter declarations for the context

getCurrentConfigParameterSettings

public ConfigurationParameterSettings getCurrentConfigParameterSettings(java.lang.String aContextName)
Description copied from interface: ConfigurationManager
Gets an object containing the current settings for all configuration parameters within the given context.

Specified by:
getCurrentConfigParameterSettings in interface ConfigurationManager
Parameters:
aContextName - name of context for which to retrieve parameter settings
Returns:
an object containing the current configuration parameter settings

lookup

protected java.lang.Object lookup(java.lang.String aCompleteName)
Does a direct lookup of a complete name, including the group. Follows links but does not do any fallback processing.

Parameters:
aCompleteName - complete name, of the form context/parameter$group
Returns:
value of parameter, null if none

declareParameters

protected void declareParameters(java.lang.String aGroupName,
                                 ConfigurationParameter[] aParams,
                                 ConfigurationParameterSettings aSettings,
                                 java.lang.String aContextName,
                                 java.lang.String aParentContextName)
Called during creation of a new context. Declares parameters, optionally in a group. Concrete subclasses will likely want to override this to set up any necessary data structures.

Parameters:
aGroupName - name of parameter group, null if none
aParams - parameter declarations
aSettings - settings for parameters
aContextName - name of context containing this parameter
aParentContextName - name of parent context, null if none

getLink

protected java.lang.String getLink(java.lang.String aCompleteName)
Gets the name of the parameter to which a given parameter is linked.

Parameters:
aCompleteName - complete name, of the form context/parameter$group
Returns:
if the parameter with name aCompleteName is linked to another parameter, the complete name of that parameter is returned. Otherwise, null is returned.

lookupSharedParamNoLinks

protected abstract java.lang.Object lookupSharedParamNoLinks(java.lang.String aCompleteName)
Looks up the value of a shared parameter, but does NOT follow links. Concrete subclasses must implement this to do the actual retrieval of configuration parameter values.

Parameters:
aCompleteName - complete name, of the form context/parameter$group
Returns:
value of parameter, or ParameterLink object, or null if no value assigned

makeQualifiedName

protected java.lang.String makeQualifiedName(java.lang.String aContextName,
                                             java.lang.String aParamName,
                                             java.lang.String aGroupName)
Creates a qualified parameter name. This consists of the context name followed by the param name (separate by a slash), followed by a $ character and the group name (if a group is specified).

Parameters:
aContextName - the name of the context containing this parameter
aParamName - the configuration parameter name
aGroupName - the name of the group containining the parameter, null if none
Returns:
the qualified parameter name

getParameterExpectedValueClass

protected java.lang.Class<?> getParameterExpectedValueClass(ConfigurationParameter aParam)
Get the Java class of the expected value of the specified parameter.

Parameters:
aParam - configuration parameter declaration information
Returns:
the expected value class


Copyright © 2012. All Rights Reserved.