Package org.apache.uima.flow

# Class JCasFlowController_ImplBase

java.lang.Object
org.apache.uima.flow.FlowController_ImplBase
org.apache.uima.flow.JCasFlowController_ImplBase

All Implemented Interfaces:
  `FlowController`

public abstract class JCasFlowController_ImplBase extends FlowController_ImplBase
Base class to be extended by FlowControllers that use the `JCas` interface.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JCasFlowController_ImplBase()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final Flow`
  `computeFlow(AbstractCas aCAS)`
  Overriden to check that `aCAS` is an instanceof `JCas`.
  `abstract Flow`
  `computeFlow(JCas aJCas)`
  This method must be overriden by subclasses.
  `Class<JCas>`
  `getRequiredCasInterface()`
  Returns the specific CAS interface that this FlowController requires the framework to pass to its `FlowController.computeFlow(AbstractCas)` method.

  ### Methods inherited from class org.apache.uima.flow.FlowController_ImplBase

  `addAnalysisEngines, batchProcessComplete, collectionProcessComplete, destroy, getContext, getLogger, initialize, reconfigure, removeAnalysisEngines`

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

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

- ## Constructor Details

  - ### JCasFlowController_ImplBase

    public JCasFlowController_ImplBase()

- ## Method Details

  - ### getRequiredCasInterface

    public Class<JCas> 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 `JCas`. If it is, then `computeFlow(JCas)` 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` - if this FlowController encounters a problem computing the flow for the CAS

  - ### computeFlow

    public abstract Flow computeFlow(JCas aJCas) throws AnalysisEngineProcessException
    This method must be overriden by subclasses. It takes a `JCas` and returns a `Flow` object that is responsible for routing this particular JCas through the components of this Aggregate. The `Flow` object should be given a handle to the JCas, 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 `JCasFlow_ImplBase`. This method would then just instantiate the flow object, call its `setCas` method to provide a handle to the JCas, and return the flow object.

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