org.apache.uima.resource.impl

## Class ConfigurationManagerImplBase

- java.lang.Object
- - org.apache.uima.resource.impl.ConfigurationManagerImplBase

- All Implemented Interfaces:
    ConfigurationManager
  Direct Known Subclasses:
    ConfigurationManager_impl

      public abstract class ConfigurationManagerImplBase
      extends Object
      implements ConfigurationManager

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static char` | `GROUP_SEPARATOR` Character that separates parameter name from group name in the parameter map.
    `protected Map<String,String>` | `mLinkMap` Map the fully-qualified name of a parameter to the fully-qualified name of the parameter it is linked to (from which it takes its value).
    `protected static String` | `SESSION_CONFIGURATION_KEY` Key under which to store configuration information in the Session object.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConfigurationManagerImplBase()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `createContext(String aContextName, ResourceMetaData aResourceMetaData, Settings externalOverrides)` Creates and sets up a new configuration parameter context.
    `protected void` | `declareParameters(String aGroupName, ConfigurationParameter[] aParams, ConfigurationParameterSettings aSettings, String aContextName, Settings aExternalOverrides)` Called during creation of a new context.
    `ConfigurationParameterDeclarations` | `getConfigParameterDeclarations(String aContextName)` Gets the ConfigurationParameterDeclarations for the given context.
    `Object` | `getConfigParameterValue(String aQualifiedParameterName)` Retrieves the value for a configuration parameter.
    `Object` | `getConfigParameterValue(String aQualifiedParameterName, String aGroupName)` Retrieves the value for a configuration parameter in a group.
    `ConfigurationParameterSettings` | `getCurrentConfigParameterSettings(String aContextName)` Gets an object containing the current settings for all configuration parameters within the given context.
    `protected String` | `getLink(String aCompleteName)` Gets the name of the parameter to which a given parameter is linked.
    `protected Class<?>` | `getParameterExpectedValueClass(ConfigurationParameter aParam)` Get the Java class of the expected value of the specified parameter.
    `Session` | `getSession()`
    `protected Object` | `lookup(String aCompleteName)` Does a direct lookup of a complete name, including the group.
    `protected abstract Object` | `lookupSharedParamNoLinks(String aCompleteName)` Looks up the value of a shared parameter, but does NOT follow links.
    `protected String` | `makeQualifiedName(String aContextName, String aParamName, String aGroupName)` Creates a qualified parameter name.
    `void` | `reconfigure(String aContextName)` Completes the reconfiguration of parameters within the specified context.
    `void` | `setConfigParameterValue(String aQualifiedParamName, Object aValue)` Sets the value of a configuration parameter.
    `void` | `setConfigParameterValue(String aQualifiedParamName, String aGroupName, 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 String SESSION_CONFIGURATION_KEY

      Key under which to store configuration information in the Session object.
      See Also:
        Constant Field Values

    - #### mLinkMap

          protected final Map<String,String> mLinkMap

      Map the fully-qualified name of a parameter to the fully-qualified name of the parameter it is linked to (from which it takes its value). Not sync'd based on belief: setup of values must be complete before any reference occurs, even in multi-threaded context. The setup is done under a sync'd control to insure only one setup is done

  - ### 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.

    - #### getSession

          public Session getSession()

    - #### createContext

          public void createContext(String aContextName,
                                    ResourceMetaData aResourceMetaData,
                                    Settings externalOverrides)
                             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. Multi-threading: This may be called with the same parameters on multiple threads. Implementations should check for repeated calls to create the same context and just return in that case
      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.
        `externalOverrides` - the external overrides
      Throws:
        `ResourceConfigurationException` - if the configuration settings are invalid

    - #### getConfigParameterValue

          public Object getConfigParameterValue(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 Object getConfigParameterValue(String aQualifiedParameterName,
                                                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`.
        `aGroupName` - the name of the parameter group
      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(String aQualifiedParamName,
                                              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(String aQualifiedParamName,
                                              String aGroupName,
                                              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 effect as `setParameterValue(String,Object)`.
        `aValue` - the value to assign to the parameter

    - #### reconfigure

          public void reconfigure(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(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 or `null` if there are no declarations.

    - #### getCurrentConfigParameterSettings

          public ConfigurationParameterSettings getCurrentConfigParameterSettings(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 Object lookup(String aCompleteName)

      Does a direct lookup of a complete name, including the group. Follows links but does not do any fallback processing. An external name definition overrides all
      Parameters:
        `aCompleteName` - complete name, of the form context/parameter$group
      Returns:
        value of parameter, null if none

    - #### declareParameters

          protected void declareParameters(String aGroupName,
                                           ConfigurationParameter[] aParams,
                                           ConfigurationParameterSettings aSettings,
                                           String aContextName,
                                           Settings aExternalOverrides)
                                    throws ResourceConfigurationException

      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
        `aExternalOverrides` - settings for parameters with external overrides
      Throws:
        `ResourceConfigurationException` - passthru

    - #### getLink

          protected String getLink(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 Object lookupSharedParamNoLinks(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 null if no value assigned

    - #### makeQualifiedName

          protected String makeQualifiedName(String aContextName,
                                             String aParamName,
                                             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 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 © 2006–2022 The Apache Software Foundation. All rights reserved.