org.apache.uima.resource.impl
Class CasManager_impl

java.lang.Object
  extended by org.apache.uima.resource.impl.CasManager_impl
All Implemented Interfaces:
CasOwner, CasManager

public class CasManager_impl
extends java.lang.Object
implements CasManager

Simple CAS Manager Implementation used in the AnalysisEngine framework. Maintains a pool of 1 CAS for each requestor.


Constructor Summary
CasManager_impl(ResourceManager aResourceManager)
           
 
Method Summary
 void addMetaData(ProcessingResourceMetaData aMetaData)
          Called by components when they initialize.
 CAS createNewCas(java.util.Properties aPerformanceTuningSettings)
          Create a new CAS using the CasDefinition stored in this CAS Manager.
 void defineCasPool(java.lang.String aRequestorContextName, int aMinimumSize, java.util.Properties aPerformanceTuningSettings)
          Defines a CAS pool within this CAS Manager.
 void defineCasPool(UimaContextAdmin aRequestorContext, int aMinimumSize, java.util.Properties aPerformanceTuningSettings)
          Defines the CAS pool required by a particular AnalysisEngine.
protected  void finalize()
           
 CAS getCas(java.lang.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, java.lang.Class<? extends AbstractCas> requiredInterface)
          Gets a specified interface to a CAS.
protected  int getCasPoolSize(java.lang.String aRequestorContextName, int aMinimumSize)
          Determines the size to use for a particular CAS Pool.
protected  java.util.Map<CAS,CasPool> getCasToCasPoolMap()
           
protected  void populateCasToCasPoolAndUimaContextMaps(CasPool aCasPool, UimaContext aUimaContext)
           
protected  void populateCasToCasPoolMap(CasPool aCasPool)
           
protected  void registerCasPoolMBean(java.lang.String aRequestorContextName, CasPool pool)
          Registers an MBean for the given CasPool.
 void releaseCas(AbstractCas aCAS)
          Releases a CAS back to its owner.
 void setJmxInfo(java.lang.Object aMBeanServer, java.lang.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(java.lang.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(java.lang.String aRequestorContextName,
                          int aMinimumSize,
                          java.util.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,
                          java.util.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(java.util.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,
                                   java.lang.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.

setJmxInfo

public void setJmxInfo(java.lang.Object aMBeanServer,
                       java.lang.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 java.util.Map<CAS,CasPool> getCasToCasPoolMap()

populateCasToCasPoolMap

protected void populateCasToCasPoolMap(CasPool aCasPool)

populateCasToCasPoolAndUimaContextMaps

protected void populateCasToCasPoolAndUimaContextMaps(CasPool aCasPool,
                                                      UimaContext aUimaContext)

registerCasPoolMBean

protected void registerCasPoolMBean(java.lang.String aRequestorContextName,
                                    CasPool pool)
Registers an MBean for the given CasPool.

Parameters:
aRequestorContextName - context name that identifies this CasPool
pool - the CasPool

getCasPoolSize

protected int getCasPoolSize(java.lang.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 java.lang.Throwable
Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable


Copyright © 2011. All Rights Reserved.