org.apache.uima.resource.impl

## Class CasManager_impl

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

- All Implemented Interfaces:
    CasOwner, CasManager

      public class CasManager_impl
      extends Object
      implements CasManager

  Simple CAS Manager Implementation used in the AnalysisEngine framework. Maintains a pool of 1 CAS for each requestor. The ResourceManager points to one instantiation of this class. An instance of this class might be accessed in parallel on different threads.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CasManager_impl(ResourceManager aResourceManager)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addMetaData(ProcessingResourceMetaData aMetaData)` Called by components when they initialize.
    `CAS` | `createNewCas(Properties aPerformanceTuningSettings)` Create a new CAS using the CasDefinition stored in this CAS Manager.
    `void` | `defineCasPool(String aRequestorContextName, int aMinimumSize, Properties aPerformanceTuningSettings)` Defines a CAS pool within this CAS Manager.
    `void` | `defineCasPool(UimaContextAdmin aRequestorContext, int aMinimumSize, Properties aPerformanceTuningSettings)` Defines the CAS pool required by a particular AnalysisEngine.
    `protected void` | `finalize()`
    `CAS` | `getCas(String aRequestorContextName)` Gets an empty CAS.
    `CasDefinition` | `getCasDefinition()` Gets the CasDefinition, as defined by merging all of the metadata supplied by calls `CasManager.addMetaData(ProcessingResourceMetaData)`.
    `AbstractCas` | `getCasInterface(CAS cas, Class<? extends AbstractCas> requiredInterface)` Gets a specified interface to a CAS.
    `static <T extends AbstractCas> T` | `getCasInterfaceStatic(CAS cas, Class<T> requiredInterface)` Gets a specified interface to a CAS.
    `protected int` | `getCasPoolSize(String aRequestorContextName, int aMinimumSize)` Determines the size to use for a particular CAS Pool.
    `protected Map<CAS,CasPool>` | `getCasToCasPoolMap()`
    `protected void` | `populateCasToCasPoolAndUimaContextMaps(CasPool aCasPool, UimaContext aUimaContext)`
    `protected void` | `populateCasToCasPoolMap(CasPool aCasPool)`
    `protected void` | `registerCasPoolMBean(String aRequestorContextName, CasPool pool)` Registers an MBean for the given CasPool.
    `void` | `releaseCas(AbstractCas aCAS)` Releases a CAS back to its owner.
    `void` | `setJmxInfo(Object aMBeanServer, String aRootMBeanName)` Configures this CAS Manager so it can register an MBean for each of its CAS pools.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CasManager_impl

          public CasManager_impl(ResourceManager aResourceManager)

  - ### Method Detail

    - #### addMetaData

          public void addMetaData(ProcessingResourceMetaData aMetaData)

      Description copied from interface: `CasManager`
      Called by components when they initialize.
      Specified by:
        `addMetaData` in interface `CasManager`
      Parameters:
        `aMetaData` - an object containing metadata for the component, including Type System, Type Priorities, and Index Definitions needed to create the CAS.

    - #### getCasDefinition

          public CasDefinition getCasDefinition()
                                         throws ResourceInitializationException

      Description copied from interface: `CasManager`
      Gets the CasDefinition, as defined by merging all of the metadata supplied by calls `CasManager.addMetaData(ProcessingResourceMetaData)`.
      Specified by:
        `getCasDefinition` in interface `CasManager`
      Returns:
        the merged CasDefinition
      Throws:
        `ResourceInitializationException` - if metadata could not be merged

    - #### getCas

          public CAS getCas(String aRequestorContextName)

      Description copied from interface: `CasManager`
      Gets an empty CAS. An AnalysisEngine may only call this method after it has first called `CasManager.defineCasPool(String, int, Properties)` and established a CAS Pool of size > 0. The CAS Manager maintains a separate pool for each AnalysisEngine. This method may block if the CAS pool does not contain any free instances.
      Specified by:
        `getCas` in interface `CasManager`
      Parameters:
        `aRequestorContextName` - the context name of the AE requesting the CAS (AnalysisEngine.getUimaContextAdmin().getQualifiedContextName()).
      Returns:
        an empty CAS

    - #### releaseCas

          public void releaseCas(AbstractCas aCAS)

      Description copied from interface: `CasOwner`
      Releases a CAS back to its owner. After calling this method, the caller should no longer access `aCAS`.
      Specified by:
        `releaseCas` in interface `CasOwner`
      Parameters:
        `aCAS` - the CAS to release

    - #### defineCasPool

          public void defineCasPool(String aRequestorContextName,
                                    int aMinimumSize,
                                    Properties aPerformanceTuningSettings)
                             throws ResourceInitializationException

      Description copied from interface: `CasManager`
      Defines a CAS pool within this CAS Manager. (Note that if this CAS pool is to be used by a CAS Multiplier, then `CasManager.defineCasPool(UimaContextAdmin, int, Properties)` should be used instead.
      Specified by:
        `defineCasPool` in interface `CasManager`
      Parameters:
        `aRequestorContextName` - name to give to the pool. Must be unique among all pool names in this CAS manager, and care should be taken to assure that this does not match the qualified name of UIMA Contexts passed to `CasManager.defineCasPool(UimaContextAdmin, int, Properties)`. This name is later passed to the `CasManager.getCas(String)` method, to check out CASes from the pool.
        `aMinimumSize` - the minimum CAS pool size required
        `aPerformanceTuningSettings` - settings, including initial CAS heap size, for the AE
      Throws:
        `ResourceInitializationException` - if a CAS could not be created.

    - #### defineCasPool

          public void defineCasPool(UimaContextAdmin aRequestorContext,
                                    int aMinimumSize,
                                    Properties aPerformanceTuningSettings)
                             throws ResourceInitializationException

      Description copied from interface: `CasManager`
      Defines the CAS pool required by a particular AnalysisEngine. (The AnalysisEngine must contain a CAS Multiplier if it requires a CAS pool.)
      Specified by:
        `defineCasPool` in interface `CasManager`
      Parameters:
        `aRequestorContext` - the UimaContext of the AE that will request the CASes (AnalysisEngine.getUimaContextAdmin()).
        `aMinimumSize` - the minimum CAS pool size required
        `aPerformanceTuningSettings` - settings, including initial CAS heap size, for the AE
      Throws:
        `ResourceInitializationException` - if a CAS could not be created.

    - #### createNewCas

          public CAS createNewCas(Properties aPerformanceTuningSettings)
                           throws ResourceInitializationException

      Description copied from interface: `CasManager`
      Create a new CAS using the CasDefinition stored in this CAS Manager. Note that this new CAS will not belong to any pool managed by this CAS Manager. If this method is called multiple times while the CasDefinition is constant, each new CAS will share an identical TypeSystem object.
      Specified by:
        `createNewCas` in interface `CasManager`
      Parameters:
        `aPerformanceTuningSettings` - settings, including initial CAS heap size, for the AE
      Returns:
        a new CAS
      Throws:
        `ResourceInitializationException` - if the CAS could not be created

    - #### getCasInterface

          public AbstractCas getCasInterface(CAS cas,
                                             Class<? extends AbstractCas> requiredInterface)

      Gets a specified interface to a CAS.
      Specified by:
        `getCasInterface` in interface `CasManager`
      Parameters:
        `cas` - The CAS
        `requiredInterface` - interface to get. Currently must be one of CAS or JCas.
      Returns:
        the CAS Interface

    - #### getCasInterfaceStatic

          public static <T extends AbstractCas> T getCasInterfaceStatic(CAS cas,
                                                                        Class<T> requiredInterface)

      Gets a specified interface to a CAS.
      Type Parameters:
        `T` - the particular interface
      Parameters:
        `cas` - The CAS
        `requiredInterface` - interface to get. Currently must be one of CAS or JCas.
      Returns:
        -

    - #### setJmxInfo

          public void setJmxInfo(Object aMBeanServer,
                                 String aRootMBeanName)

      Description copied from interface: `CasManager`
      Configures this CAS Manager so it can register an MBean for each of its CAS pools.
      Specified by:
        `setJmxInfo` in interface `CasManager`
      Parameters:
        `aMBeanServer` - the JMX MBean Server to register MBeans with. If null, the platform MBeanServer (Java 1.5+ only) will be used.
        `aRootMBeanName` - unique MBean name for the root component that owns this CAS Manager. The names of the CAS Pool MBeans will be formed by appending `,casPoolContextName=[contextName]` to the root component name, where [contextName] is the requestorContextName for the CasPool.

    - #### getCasToCasPoolMap

          protected Map<CAS,CasPool> getCasToCasPoolMap()

    - #### populateCasToCasPoolMap

          protected void populateCasToCasPoolMap(CasPool aCasPool)

    - #### populateCasToCasPoolAndUimaContextMaps

          protected void populateCasToCasPoolAndUimaContextMaps(CasPool aCasPool,
                                                                UimaContext aUimaContext)

    - #### registerCasPoolMBean

          protected void registerCasPoolMBean(String aRequestorContextName,
                                              CasPool pool)

      Registers an MBean for the given CasPool. Never called unless pool is new
      Parameters:
        `aRequestorContextName` - context name that identifies this CasPool
        `pool` - the CasPool

    - #### getCasPoolSize

          protected int getCasPoolSize(String aRequestorContextName,
                                       int aMinimumSize)

      Determines the size to use for a particular CAS Pool. This can be overridden by subclasses to specify custom pool sizes.
      Parameters:
        `aRequestorContextName` - the context name of the AE that will request the CASes (AnalysisEngine.getUimaContextAdmin().getQualifiedContextName()).
        `aMinimumSize` - the minimum CAS pool size required
      Returns:
        the size of the CAS pool to create for the specified AE

    - #### finalize

          protected void finalize()
                           throws Throwable

      Overrides:
        `finalize` in class `Object`
      Throws:
        `Throwable`

Copyright © 2006–2022 The Apache Software Foundation. All rights reserved.