org.apache.uima.flow.impl

## Class FixedFlowController

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

- All Implemented Interfaces:
    FlowController

      public class FixedFlowController
      extends CasFlowController_ImplBase

  Simple FlowController that invokes components in a fixed sequence.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `PARAM_ACTION_AFTER_CAS_MULTIPLIER` Key for the configuration parameter that determines what should happen to a CAS after it has been input to a CAS Multiplier.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FixedFlowController()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAnalysisEngines(Collection<String> aKeys)` Does nothing by default.
    `Flow` | `computeFlow(CAS aCAS)` This method must be overriden by subclasses.
    `static FlowControllerDescription` | `getDescription()`
    `void` | `initialize(FlowControllerContext aContext)` Performs any startup tasks required by this component.
    `static FlowControllerDescription` | `makeDefaultDescription()`
    `void` | `removeAnalysisEngines(Collection<String> aKeys)` Throws an AnalysisEngineProcessException by default.

    - ### Methods inherited from class org.apache.uima.flow.CasFlowController_ImplBase

      `computeFlow, getRequiredCasInterface, typeSystemInit`

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

      `batchProcessComplete, collectionProcessComplete, destroy, getContext, reconfigure`

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

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

- - ### Field Detail

    - #### PARAM_ACTION_AFTER_CAS_MULTIPLIER

          public static final String PARAM_ACTION_AFTER_CAS_MULTIPLIER

      Key for the configuration parameter that determines what should happen to a CAS after it has been input to a CAS Multiplier. Possible values are: continue: the CAS continues on to the next element in the flow stop: the CAS will no longer continue in the flow, and will be returned from the aggregate if possible. drop: the CAS will no longer continue in the flow, and will be dropped (not returned from the aggregate) if possible. dropIfNewCasProduced (the default): if the CAS multiplier produced a new CAS as a result of processing this CAS, then this CAS will be dropped. If not, then this CAS will continue.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### FixedFlowController

          public FixedFlowController()

  - ### Method Detail

    - #### initialize

          public void initialize(FlowControllerContext aContext)
                          throws ResourceInitializationException

      Description copied from interface: `FlowController`
      Performs any startup tasks required by this component. The framework calls this method only once, just after the FlowController has been instantiated.

      The framework supplies this FlowController with a reference to the `FlowControllerContext` that it will use, for example to access configuration settings or resources. This FlowController should store a reference to this Context for later use.

      Specified by:
        `initialize` in interface `FlowController`
      Overrides:
        `initialize` in class `FlowController_ImplBase`
      Parameters:
        `aContext` - Provides access to services and resources managed by the framework. This includes configuration parameters, logging, and access to external resources. Also provides the FlowController with the metadata of all of the AnalysisEngines that are possible targets for routing CASes.
      Throws:
        `ResourceInitializationException` - if the FlowController cannot initialize successfully.

    - #### computeFlow

          public Flow computeFlow(CAS aCAS)
                           throws AnalysisEngineProcessException

      Description copied from class: `CasFlowController_ImplBase`
      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.

      Specified by:
        `computeFlow` in class `CasFlowController_ImplBase`
      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)`

    - #### addAnalysisEngines

          public void addAnalysisEngines(Collection<String> aKeys)

      Description copied from class: `FlowController_ImplBase`
      Does nothing by default. Subclasses may override this to support adding new AnalysisEngines to the flow.
      Specified by:
        `addAnalysisEngines` in interface `FlowController`
      Overrides:
        `addAnalysisEngines` in class `FlowController_ImplBase`
      Parameters:
        `aKeys` - a Collection of Strings, each of which is the key of an Analysis Engine to which CASes can be routed. These are the same keys as used in `FlowControllerContext.getAnalysisEngineMetaDataMap()`.
      See Also:
        `FlowController.addAnalysisEngines(java.util.Collection)`

    - #### removeAnalysisEngines

          public void removeAnalysisEngines(Collection<String> aKeys)
                                     throws AnalysisEngineProcessException

      Description copied from class: `FlowController_ImplBase`
      Throws an AnalysisEngineProcessException by default. Subclasses may override this to support removing AnalysisEngines from the flow.
      Specified by:
        `removeAnalysisEngines` in interface `FlowController`
      Overrides:
        `removeAnalysisEngines` in class `FlowController_ImplBase`
      Parameters:
        `aKeys` - a Collection of Strings, each of which is the key of an Analysis Engine to which CASes may no longer be routed.
      Throws:
        `AnalysisEngineProcessException` - if the FlowController cannot continue with these Analysis Engines removed, or doesn't support removing Analysis Engines at all.
      See Also:
        `FlowController.removeAnalysisEngines(java.util.Collection)`

    - #### getDescription

          public static FlowControllerDescription getDescription()

    - #### makeDefaultDescription

          public static FlowControllerDescription makeDefaultDescription()

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