org.apache.uima.flow
Class CasFlowController_ImplBase

java.lang.Object
  extended by org.apache.uima.flow.FlowController_ImplBase
      extended by org.apache.uima.flow.CasFlowController_ImplBase
All Implemented Interfaces:
FlowController

public abstract class CasFlowController_ImplBase
extends FlowController_ImplBase

Base class to be extended by FlowControllers that use the CAS interface.


Constructor Summary
CasFlowController_ImplBase()
           
 
Method Summary
 Flow computeFlow(AbstractCas aCAS)
          Overriden to check that aCAS is an instanceof CAS.
abstract  Flow computeFlow(CAS aCAS)
          This method must be overriden by subclasses.
 Class<CAS> getRequiredCasInterface()
          Returns the specific CAS interface that this FlowController requires the framework to pass to its FlowController.computeFlow(AbstractCas) method.
 void typeSystemInit(TypeSystem aTypeSystem)
          This method may be overriden by subclasses.
 
Methods inherited from class org.apache.uima.flow.FlowController_ImplBase
addAnalysisEngines, batchProcessComplete, collectionProcessComplete, destroy, getContext, initialize, reconfigure, removeAnalysisEngines
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CasFlowController_ImplBase

public CasFlowController_ImplBase()
Method Detail

getRequiredCasInterface

public Class<CAS> getRequiredCasInterface()
Description copied from interface: FlowController
Returns the specific CAS interface that this FlowController requires the framework to pass to its FlowController.computeFlow(AbstractCas) method.

Returns:
the required CAS interface. This must specify a subtype of AbstractCas.

computeFlow

public final Flow computeFlow(AbstractCas aCAS)
                       throws AnalysisEngineProcessException
Overriden to check that aCAS is an instanceof CAS. If it is, then computeFlow(CAS) is called. If not, an exception is thrown.

Parameters:
aCAS - A CAS that this FlowController should process. The framework will ensure that aCAS implements the specific CAS interface declared in the <casInterface> element of this FlowController's descriptor.
Returns:
a Flow object that has responsibility for routing aCAS through the Aggregate Analysis Engine.
Throws:
AnalysisEngineProcessException
See Also:
FlowController.computeFlow(AbstractCas)

computeFlow

public abstract Flow computeFlow(CAS aCAS)
                          throws AnalysisEngineProcessException
This method must be overriden by subclasses. It takes a CAS and returns a Flow object that is responsible for routing this particular CAS through the components of this Aggregate. The Flow object should be given a handle to the CAS, so that it can use information in the CAS to make routing decisions.

FlowController implementations will typically define their own class that implements Flow by extending from the base class CasFlow_ImplBase. This method would then just instantiate the flow object, call its setCas method to provide a handle to the CAS, and return the flow object.

Parameters:
aCAS - the CAS to be routed
Returns:
a Flow object that will be used to route aCAS
Throws:
AnalysisEngineProcessException - if a problem occurs during processing
See Also:
FlowController.computeFlow(AbstractCas)

typeSystemInit

public void typeSystemInit(TypeSystem aTypeSystem)
                    throws AnalysisEngineProcessException
This method may be overriden by subclasses. It is called whenever th TypeSystem of the CAS changes. This method will be called immediately prior to the first call to computeFlow(CAS), and will be called again whenever the CAS TypeSystem changes.

In this method, the FlowController can use the TypeSystem to resolve the names of Type and Features to the actual Type and Feature objects, which can then be used to access information from the CAS during routing.

Parameters:
aTypeSystem - the typesystem
Throws:
CasProcessorComponentException - if a problem occurs during processing
AnalysisEngineProcessException


Copyright © 2010 The Apache Software Foundation. All Rights Reserved.