org.apache.uima.collection.base_cpm

## Interface CasProcessor

- All Known Subinterfaces:
    AnalysisEngine, CasConsumer, CasDataConsumer, CasDataProcessor, CasObjectProcessor, TextAnalysisEngine
  All Known Implementing Classes:
    AggregateAnalysisEngine_impl, AnalysisEngineImplBase, AnalysisEngineServiceAdapter, CasConsumer_ImplBase, CasDataConsumer_ImplBase, MultiprocessingAnalysisEngine_impl, PearAnalysisEngineWrapper, PrimitiveAnalysisEngine_impl, UimacppAnalysisEngineImpl

      public interface CasProcessor

  Base interface for a component that can process a CAS. This includes both components that modify the CAS (such as an `AnalysisEngine` as well as those that do not (such as a `CasConsumer`). Whether the CasProcessor modifies the CAS can be determined by calling its `isReadOnly()` method.

  `CasProcessor`s can be "plugged into" the `CollectionProcessingManager`.

  CAS Processors should not directly implement this interface; instead they should implement one of its subinterfaces:

  - `CasDataProcessor` - for CAS processors that want to interact directly with the `CasData`. This works best for simple processors that do not need the indexing or strong typing features provided by the CAS container.
  - `CasObjectProcessor` - for CAS processors that want to use the full `CAS` implementation.
  Analysis Engines and CAS Consumers implement `CasObjectProcessor`.

  All CAS processors must publish their metadata via the `getProcessingResourceMetaData()` method.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `batchProcessComplete(ProcessTrace aTrace)` Completes the processing of a batch.
    `void` | `collectionProcessComplete(ProcessTrace aTrace)` Completes the processing of an entire collection.
    `ProcessingResourceMetaData` | `getProcessingResourceMetaData()` Gets the metadata that describes this `CasProcesor`.
    `boolean` | `isReadOnly()` Gets whether this is a read-only CAS Processor, which does not modify the CAS.
    `boolean` | `isStateless()` Gets whether this is a stateless CAS Processor.

- - ### Method Detail

    - #### isStateless

          boolean isStateless()

      Gets whether this is a stateless CAS Processor. Stateless CAS Processors do not maintain any data between calls to their process methods.
      Returns:
        true if this CAS processor is stateless, false if it is stateful.

    - #### isReadOnly

          boolean isReadOnly()

      Gets whether this is a read-only CAS Processor, which does not modify the CAS.
      Returns:
        true if this CAS processor does not modify the CAS, false if it does.

    - #### getProcessingResourceMetaData

          ProcessingResourceMetaData getProcessingResourceMetaData()

      Gets the metadata that describes this `CasProcesor`.
      Returns:
        an object containing all metadata for this CasProcessor

    - #### batchProcessComplete

          void batchProcessComplete(ProcessTrace aTrace)
                             throws ResourceProcessException,
                                    IOException

      Completes the processing of a batch. A collection may be divided into one or more batches - it is up to the CollectionProcessingManager or the application to determine the number and size of batches.
      Parameters:
        `aTrace` - an object that records information, such as timing, about this method's execution.
      Throws:
        `ResourceProcessException` - if an exception occurs during processing
        `IOException` - if an I/O failure occurs

    - #### collectionProcessComplete

          void collectionProcessComplete(ProcessTrace aTrace)
                                  throws ResourceProcessException,
                                         IOException

      Completes the processing of an entire collection.
      Parameters:
        `aTrace` - an object that records information, such as timing, about this method's execution.
      Throws:
        `ResourceProcessException` - if an exception occurs during processing
        `IOException` - if an I/O failure occurs

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