Processes a CAS, possibly producing multiple CASes as a result. The application uses the {@link CasIterator} interface to step through the output CASes.
If this Analysis Engine does not produce output CASes, then the CasIterator
will return no elements. You can check if an AnalysisEngine is capable of producing output CASes by checking the {@link org.apache.uima.resource.metadata.OperationalProperties#getOutputsNewCASes()}operational property (getAnalysisEngineMetaData().getOperationalProperties().getOutputsNewCASes()
).
Once this method is called, the AnalysisEngine "owns" aCAS
until such time as the {@link CasIterator#hasNext()} method returns false. That is, the caller should not attemptto modify or access the input CAS until it has read all of the elements from the CasIterator. If the caller wants to abort the processing before having read all of the output CASes, it may call {@link CasIterator#release()}, which will stop further processing from occurring, and ownership of aCAS
will revert to the caller.
@param aCAS the CAS to be processed
@return an object for iterating through any output CASes
@throws AnalysisEngineProcessException if a failure occurs during processing