org.apache.uima.analysis_engine.impl.compatibility
Class CasConsumerAdapter

java.lang.Object
  extended by org.apache.uima.analysis_engine.impl.compatibility.CasConsumerAdapter
All Implemented Interfaces:
AnalysisComponent

public class CasConsumerAdapter
extends java.lang.Object
implements AnalysisComponent

Adapter that allows CasConsumers to implement the AnalysisComponent interface.


Constructor Summary
CasConsumerAdapter(CasConsumer aCasConsumer, AnalysisEngineMetaData aMetaData)
          Create a new annotator adapter.
 
Method Summary
 void batchProcessComplete()
          Completes the processing of a batch of CASes.
 void checkTypeSystemChange(AbstractCas aCAS)
           
 void collectionProcessComplete()
          Notifies this AnalysisComponent that processing of an entire collection has been completed.
 void destroy()
          Frees all resources held by this AnalysisComponent.
 int getCasInstancesRequired()
          Returns the maximum number of CAS instances that this AnalysisComponent expects to use at the same time.
 java.lang.Class<CAS> getRequiredCasInterface()
          Get the CAS interface required by this CasConsumer.
 boolean hasNext()
          Asks if this AnalysisComponent has another CAS to output.
 void initialize(UimaContext aContext)
          Performs any startup tasks required by this component.
 AbstractCas next()
          Gets the next output CAS.
 void process(AbstractCas aCAS)
          Inputs a CAS to the AnalysisComponent.
 void reconfigure()
          Alerts this AnalysisComponent that the values of its configuration parameters or external resources have changed.
 void setResultSpecification(ResultSpecification aResultSpec)
          Sets the ResultSpecification that this AnalysisComponent should use.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CasConsumerAdapter

public CasConsumerAdapter(CasConsumer aCasConsumer,
                          AnalysisEngineMetaData aMetaData)
Create a new annotator adapter.

Parameters:
aAnnotator - the annotator instance
aMetaData - metadata for the annotator. Needed to compute ResultSpecification.
Method Detail

initialize

public void initialize(UimaContext aContext)
                throws ResourceInitializationException
Description copied from interface: AnalysisComponent
Performs any startup tasks required by this component. The framework calls this method only once, just after the AnalysisComponent has been instantiated.

The framework supplies this AnalysisComponent with a reference to the UimaContext that it will use, for example to access configuration settings or resources. This AnalysisComponent should store a reference to its the UimaContext for later use.

Specified by:
initialize in interface AnalysisComponent
Parameters:
aContext - Provides access to services and resources managed by the framework. This includes configuration parameters, logging, and access to external resources.
Throws:
ResourceInitializationException - if this AnalysisComponent cannot initialize successfully.

process

public void process(AbstractCas aCAS)
             throws AnalysisEngineProcessException
Description copied from interface: AnalysisComponent
Inputs a CAS to the AnalysisComponent. The AnalysisComponent "owns" this CAS until such time as AnalysisComponent.hasNext() is called and returns false or until process is called again (see class description).

Specified by:
process in interface AnalysisComponent
Parameters:
aCAS - A CAS that this AnalysisComponent should process. The framework will ensure that aCAS implements the specific CAS interface specified by the AnalysisComponent.getRequiredCasInterface() method.
Throws:
AnalysisEngineProcessException - if a problem occurs during processing

checkTypeSystemChange

public void checkTypeSystemChange(AbstractCas aCAS)
                           throws AnalysisEngineProcessException
Throws:
AnalysisEngineProcessException

batchProcessComplete

public void batchProcessComplete()
                          throws AnalysisEngineProcessException
Description copied from interface: AnalysisComponent
Completes the processing of a batch of CASes. The size of a batch is determined based on configuration provided by the application that is using this component. The purpose of batchProcessComplete is to give this AnalysisComponent the change to flush information from memory to persistent storage. In the event of an error, this allows the processing to be restarted from the end of the last completed batch.

If this component's descriptor declares that it is recoverable, then this component is required to be restartable from the end of the last completed batch.

Specified by:
batchProcessComplete in interface AnalysisComponent
Throws:
AnalysisEngineProcessException - if this component encounters a problem in flushing its state to persistent storage

collectionProcessComplete

public void collectionProcessComplete()
                               throws AnalysisEngineProcessException
Description copied from interface: AnalysisComponent
Notifies this AnalysisComponent that processing of an entire collection has been completed. In this method, this component should finish writing any output relating to the current collection.

Specified by:
collectionProcessComplete in interface AnalysisComponent
Throws:
AnalysisEngineProcessException - if this component encounters a problem in its end-of-collection processing

destroy

public void destroy()
Description copied from interface: AnalysisComponent
Frees all resources held by this AnalysisComponent. The framework calls this method only once, when it is finished using this component.

Specified by:
destroy in interface AnalysisComponent

reconfigure

public void reconfigure()
                 throws ResourceConfigurationException,
                        ResourceInitializationException
Description copied from interface: AnalysisComponent
Alerts this AnalysisComponent that the values of its configuration parameters or external resources have changed. This AnalysisComponent should re-read its configuration from the UimaContext and take appropriate action to reconfigure itself.

In the abstract base classes provided by the framework, this is generally implemented by calling destroy followed by initialize and typeSystemChanged. If a more efficient implementation is needed, you can override that implementation.

Specified by:
reconfigure in interface AnalysisComponent
Throws:
ResourceConfigurationException - if the configuration specified for this component is invalid.
ResourceInitializationException - if this component fails to reinitialize itself based on the new configuration.

hasNext

public boolean hasNext()
                throws AnalysisEngineProcessException
Description copied from interface: AnalysisComponent
Asks if this AnalysisComponent has another CAS to output. If this method returns true, then a call to AnalysisComponent.next() should retrieve the next output CAS. When this method returns false, the AnalysisComponent gives up control of the initial CAS that was passed to its AnalysisComponent.process(AbstractCas) method.

Specified by:
hasNext in interface AnalysisComponent
Returns:
true if this AnalysisComponent has another CAS to output, false if not.
Throws:
AnalysisEngineProcessException - if a problem occurs during processing

next

public AbstractCas next()
                 throws AnalysisEngineProcessException
Description copied from interface: AnalysisComponent
Gets the next output CAS. The framework will only call this method after first calling AnalysisComponent.hasNext() and checking that it returns true.

The AnalysisComponent can obtain a new CAS by calling UimaContext.getEmptyCas(Class) (or instead, one of the helper methods in the ImplBase class that it extended).

Specified by:
next in interface AnalysisComponent
Returns:
the next output CAS.
Throws:
AnalysisEngineProcessException - if a problem occurs during processing

getRequiredCasInterface

public java.lang.Class<CAS> getRequiredCasInterface()
Get the CAS interface required by this CasConsumer. Currently always returns CAS.class.

Specified by:
getRequiredCasInterface in interface AnalysisComponent
Returns:
the CAS interface required by this CasConsumer

getCasInstancesRequired

public int getCasInstancesRequired()
Description copied from interface: AnalysisComponent
Returns the maximum number of CAS instances that this AnalysisComponent expects to use at the same time. This only applies to CasMultipliers. Most CasMultipliers will only need one CAS at a time. Only if there is a clear need should this be overridden to return something greater than 1.

Specified by:
getCasInstancesRequired in interface AnalysisComponent
Returns:
the number of CAS instances required by this AnalysisComponent.

setResultSpecification

public void setResultSpecification(ResultSpecification aResultSpec)
Description copied from interface: AnalysisComponent
Sets the ResultSpecification that this AnalysisComponent should use. The ResultSpecification is a set of types and features that this AnalysisComponent is asked to produce. An Analysis Component may (but is not required to) optimize its processing by omitting the generation of any types or features that are not part of the ResultSpecification.

Specified by:
setResultSpecification in interface AnalysisComponent
Parameters:
aResultSpec - the ResultSpecification for this Analysis Component to use.


Copyright © 2011. All Rights Reserved.