org.apache.uima.flow

## Class CasFlowController_ImplBase

- java.lang.Object
- - org.apache.uima.flow.FlowController_ImplBase
  - - org.apache.uima.flow.CasFlowController_ImplBase

- All Implemented Interfaces:
    FlowController
  Direct Known Subclasses:
    CapabilityLanguageFlowController, FixedFlowController

      public abstract class CasFlowController_ImplBase
      extends FlowController_ImplBase

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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CasFlowController_ImplBase()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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` - if this FlowController encounters a problem computing the flow for the CAS
      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:
        `AnalysisEngineProcessException` - if a problem occurs during processing

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