Interface Flow
- All Known Implementing Classes:
CapabilityLanguageFlowObject
,CasFlow_ImplBase
,JCasFlow_ImplBase
Typically, developers extend CasFlow_ImplBase
or
JCasFlow_ImplBase
depending on which CAS interface they wish to use.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
aborted()
Called by the framework if processing has been aborted for the CAS that was being routed by this Flow object.boolean
continueOnFailure
(String failedAeKey, Exception failure) May be called by the framework to ask the FlowController if processing of the CAS can continue after a failure occurred while executing the last Step that the Flow Controller returned.newCasProduced
(AbstractCas newCas, String producedBy) Called by the framework if the CAS that is being routed by this Flow has been sent to a CAS Multiplier which has then created a new CAS derived from that original CAS.next()
Gets the next destination for the CAS.
-
Method Details
-
next
Gets the next destination for the CAS. This is defined by aStep
object. There may be different kinds of Step objects to indicate different kinds of routing actions.- Returns:
- the next destination for the CAS
- Throws:
AnalysisEngineProcessException
- if a failure occurs while determining the next destination
-
newCasProduced
Called by the framework if the CAS that is being routed by this Flow has been sent to a CAS Multiplier which has then created a new CAS derived from that original CAS.It is not required for a Flow implementation to support the production of new CASes in the middle of the flow, in which case this method may throw an exception.
If implemented, this method should construct a new
Flow
object that will be used to route the new CAS. The new Flow object then takes over all responsibility for that CAS.- Parameters:
newCas
- the new CASproducedBy
- key of the AnalysisEngine (CAS Multiplier) that produced the new CAS- Returns:
- a new Flow object that has responsibility for routing
aCAS
through the Aggregate Analysis Engine. - Throws:
AnalysisEngineProcessException
- passthru
-
continueOnFailure
May be called by the framework to ask the FlowController if processing of the CAS can continue after a failure occurred while executing the last Step that the Flow Controller returned.If this method returns true, then the framework may continue to call the
next()
method to continue routing the CAS. If this method returns false, the framework will not make any more calls to thenext()
method, and will call theaborted()
method.In the case where the last Step was a
ParallelStep
, if at least one of the destinations resulted in a failure, this method will be called to report one of the failures. If this method returns true, but one of the other destinations in the ParallelStep resulted in a failure, this method will be called again to report the next failure. This continues until either this method returns false or there are no more failures.Note that it is possible for processing of a CAS to be aborted without this method being called. This method is only called when an attempt is being made to continue processing of the CAS following an error, which may be an application configuration decision.
- Parameters:
failedAeKey
- The key of the analysis engine that failed.failure
- the Exception that occurred- Returns:
- true if the FlowController decides that processing of the CAS can continue; false if processing of the CAS should be aborted.
-
aborted
void aborted()Called by the framework if processing has been aborted for the CAS that was being routed by this Flow object. No further processing will take place on the CAS after this method is called, so the framework will not call thenext()
method again.This method provides the Flow object with an opportunity to clean up any resources. Also, it could be used to allow the FlowController to reuse a Flow object if desired.
-