Package org.apache.uima.flow

# Class FinalStep

java.lang.Object
org.apache.uima.flow.Step
org.apache.uima.flow.FinalStep

public class FinalStep extends Step
Indicates that a CAS has finished being processed by the aggregate. After returning a FinalStep, the `Flow.next()` method will not be called again for this CAS.

If the CAS was passed in as an input to the aggregate's process method, then the aggregate's processing is completed and ownership of this CAS is returned to the caller.

If the CAS was generated internally to this aggregate (by a CAS Multiplier that is part of this aggregate), then it will either be output from the aggregate or it will be dropped. A CAS can only be output if the aggregate's metadata includes declares the operational property outputsNewCASes == true. (see `OperationalProperties.getOutputsNewCASes()`).

By default, if the aggregate's metadata declares outputsNewCASes == true, then all CASes generated internal to the aggregate are output. However, by passing `true` to the `FinalStep(boolean)` constructor, the Flow Controller can force a particular CAS to be dropped. This allows the Flow Controller to output some CASes but not others.

It is not permitted to drop a CAS that was passed as input to the AnalysisEngine, and using `FinalStep(true)` for such a CAS is an error.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FinalStep()`
  Creates a new FinalStep.
  `FinalStep(boolean aForceCasToBeDropped)`
  Creates a new FinalStep, and may indicate that a CAS should be dropped.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `getForceCasToBeDropped()`
  Gets whether the CAS should be dropped.

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

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

- ## Constructor Details

  - ### FinalStep

    public FinalStep()
    Creates a new FinalStep.

  - ### FinalStep

    public FinalStep(boolean aForceCasToBeDropped)
    Creates a new FinalStep, and may indicate that a CAS should be dropped. This can only be used for CASes that are produced internally to the aggregate. It is an error to attempt to drop a CAS that was passed as input to the aggregate.
    Parameters:
      `aForceCasToBeDropped` - true forces this CAS to be dropped. false causes the default behavior, which is to output the CAS whenever appropriate.

- ## Method Details

  - ### getForceCasToBeDropped

    public boolean getForceCasToBeDropped()
    Gets whether the CAS should be dropped.
    Returns:
      true forces this CSA to be dropped. false causes the default behavior, which is to output the CAS whenever appropriate.