Package org.apache.uima.resource

# Interface ConfigurableResource

All Superinterfaces:
  `Resource`

All Known Subinterfaces:
  `AnalysisEngine`, `CasConsumer`, `CasDataConsumer`, `CasDataInitializer`, `CasInitializer`, `CollectionReader`, `TextAnalysisEngine`

All Known Implementing Classes:
  `AggregateAnalysisEngine_impl`, `AnalysisEngineImplBase`, `AnalysisEngineProcessorAdapter`, `AnalysisEngineServiceAdapter`, `CasConsumer_ImplBase`, `CasDataCollectionReader_ImplBase`, `CasDataConsumer_ImplBase`, `CasDataInitializer_ImplBase`, `CasInitializer_ImplBase`, `CasProcessorAnnotator`, `CollectionReader_ImplBase`, `ConfigurableResource_ImplBase`, `FlowControllerContainer`, `JCasProcessorAnnotator`, `MultiprocessingAnalysisEngine_impl`, `PearAnalysisEngineWrapper`, `PrimitiveAnalysisEngine_impl`, `UimacppAnalysisEngineImpl`

public interface ConfigurableResource extends Resource
A `Resource` that has configuration parameters that can be changed after the Resource has been instantiated.

To set configuration parameters, call the `setConfigParameterValue(String,String,Object)` method for each parameter that is to be set, and then call the `reconfigure()` method to cause the Resource to re-read its configuration settings.

Note that if the Resource attempts to access its configuration settings between the call to `setConfigParameterValue` and the call to `reconfigure`, it may retrieve either the old value or the new value. This decision is left to the framework's `ConfigurationManager` implementation.

- ## Field Summary

  ### Fields inherited from interface org.apache.uima.resource.Resource

  `PARAM_AGGREGATE_SOFA_MAPPINGS, PARAM_CONFIG_MANAGER, PARAM_CONFIG_PARAM_SETTINGS, PARAM_EXTERNAL_OVERRIDE_SETTINGS, PARAM_PERFORMANCE_TUNING_SETTINGS, PARAM_RESOURCE_MANAGER, PARAM_UIMA_CONTEXT`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getConfigParameterValue(String aParamName)`
  Looks up the value of a configuration parameter.
  `Object`
  `getConfigParameterValue(String aGroupName, String aParamName)`
  Looks up the value of a configuration parameter in a group.
  `void`
  `reconfigure()`
  Instructs this Resource to re-read its configuration parameter settings.
  `void`
  `setConfigParameterValue(String aParamName, Object aValue)`
  Sets the value of a configuration parameter.
  `void`
  `setConfigParameterValue(String aGroupName, String aParamName, Object aValue)`
  Sets the value of a configuration parameter in a group.

  ### Methods inherited from interface org.apache.uima.resource.Resource

  `destroy, getLogger, getMetaData, getResourceManager, getUimaContext, getUimaContextAdmin, initialize, setLogger`

- ## Method Details

  - ### getConfigParameterValue

    Object getConfigParameterValue(String aParamName)
    Looks up the value of a configuration parameter. This method will only return the value of a parameter that is not defined in any group.

    This method returns `null` if the parameter is optional and has not been assigned a value. (For mandatory parameters, an exception is thrown during initialization if no value has been assigned.) This method also returns `null` if there is no declared configuration parameter with the specified name.

    Parameters:
      `aParamName` - the name of a parameter that is not in any group
    Returns:
      the value of the parameter with name `aParamName`, `null` is either the parameter does not exist or it has not been assigned a value.

  - ### getConfigParameterValue

    Object getConfigParameterValue(String aGroupName, String aParamName)
    Looks up the value of a configuration parameter in a group. If the parameter has no value assigned within the group, fallback strategies will be followed.

    This method returns `null` if the parameter is optional and has not been assigned a value. (For mandatory parameters, an exception is thrown during initialization if no value has been assigned.) This method also returns `null` if there is no declared configuration parameter with the specified name.

    Parameters:
      `aGroupName` - the name of a configuration group. If the group name is `null`, this method will return the same value as `getParameterValue(String)`.
      `aParamName` - the name of a parameter in the group
    Returns:
      the value of the parameter in group `aGroupName` with name `aParamName`,,`null` is either the parameter does not exist or it has not been assigned a value.

  - ### setConfigParameterValue

    void setConfigParameterValue(String aParamName, Object aValue)
    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 `reconfigure()` is called.
    Parameters:
      `aParamName` - the name of a parameter that is not in any group
      `aValue` - the value to assign to the parameter

  - ### setConfigParameterValue

    void setConfigParameterValue(String aGroupName, String aParamName, Object aValue)
    Sets the value of a configuration parameter in a group. Note that there is no guarantee that the change will take effect until `reconfigure()` is called.
    Parameters:
      `aGroupName` - the name of a configuration group. If this parameter is `null`, this method will have the same effect as `setParameterValue(String,Object)`.
      `aParamName` - the name of a parameter in the group
      `aValue` - the value to assign to the parameter.

  - ### reconfigure

    void reconfigure() throws ResourceConfigurationException
    Instructs this Resource to re-read its configuration parameter settings.
    Throws:
      `ResourceConfigurationException` - if the configuration is not valid