org.apache.uima.collection.impl.cpm.engine
Class NonThreadedProcessingUnit

java.lang.Object
  extended by org.apache.uima.collection.impl.cpm.engine.NonThreadedProcessingUnit

public class NonThreadedProcessingUnit
extends java.lang.Object


Field Summary
protected  java.lang.Object[] artifact
           
protected  CAS[] casList
           
protected  CPECasPool casPool
           
protected  CAS conversionCas
           
protected  CAS[] conversionCasArray
           
protected  CpeConfiguration cpeConfiguration
           
protected  CPMEngine cpm
           
protected  CasConverter mConverter
           
protected  boolean notifyListeners
           
protected  long numToProcess
           
protected  BoundedWorkQueue outputQueue
           
protected  java.util.LinkedList processContainers
           
protected  ProcessTrace processingUnitProcessTrace
           
protected  boolean relaseCAS
           
protected  java.util.ArrayList statusCbL
           
protected  java.lang.String threadId
           
 int threadState
           
protected  UimaTimer timer
           
protected  BoundedWorkQueue workQueue
           
 
Constructor Summary
NonThreadedProcessingUnit(CPMEngine acpm)
           
NonThreadedProcessingUnit(CPMEngine acpm, BoundedWorkQueue aInputQueue, BoundedWorkQueue aOutputQueue)
          Initialize the PU
 
Method Summary
 void addStatusCallbackListener(BaseStatusCallbackListener aListener)
          Plugs in Listener object used for notifications.
protected  boolean analyze(java.lang.Object[] aCasObjectList, ProcessTrace pTrTemp)
           
 void cleanup()
          Null out fields of this object.
 void disableCasProcessor(int aCasProcessorIndex)
          Disable a CASProcessor in the processing pipeline.
 void disableCasProcessor(java.lang.String aCasProcessorName)
          Alternative method to disable Cas Processor.
protected  void doNotifyListeners(java.lang.Object aCas, boolean isCasObject, EntityProcessStatus aEntityProcStatus)
          Notifies all configured listeners.
 void enableCasProcessor(java.lang.String aCasProcessorName)
          Enables Cas Processor with a given name.
protected  long getBytes(java.lang.Object aCas)
          Returns the size of the CAS object.
 java.util.ArrayList getCallbackListeners()
          Returns list of listeners used by this PU for callbacks.
protected  boolean isProcessorReady(int aStatus)
          Check if the CASProcessor status is available for processing
protected  void notifyListeners(java.lang.Object aCas, boolean isCasObject, EntityProcessStatus aEntityProcStatus)
          Notifies Listeners of the fact that the pipeline has finished processing the current set Cas'es
 void removeStatusCallbackListener(BaseStatusCallbackListener aListener)
          Removes given listener from the list of listeners
 void setCasPool(CPECasPool aPool)
           
 void setContainers(java.util.LinkedList processorList)
          Plugs in a list of Cas Processor containers.
 void setCPMEngine(CPMEngine acpm)
          Alternative method of providing the reference to the component managing the lifecycle of the CPE
 void setInputQueue(BoundedWorkQueue aInputQueue)
          Alternative method of providing a queue from which this PU will read bundle of Cas
 void setNotifyListeners(boolean aDoNotify)
          Set a flag indicating if notifications should be made via configured Listeners
 void setOutputQueue(BoundedWorkQueue aOutputQueue)
          Alternative method of providing a queue where this PU will deposit results of analysis
 void setProcessingUnitProcessTrace(ProcessTrace aProcessingUnitProcessTrace)
          Plugs in ProcessTrace object used to collect statistics
 void setReleaseCASFlag(boolean aFlag)
           
 void setUimaTimer(UimaTimer aTimer)
          Plugs in custom timer used by the PU for getting time
 void stopCasProcessors(boolean kill)
          Stops all Cas Processors that are part of this PU.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

threadState

public int threadState

casPool

protected CPECasPool casPool

relaseCAS

protected boolean relaseCAS

cpm

protected CPMEngine cpm

workQueue

protected BoundedWorkQueue workQueue

outputQueue

protected BoundedWorkQueue outputQueue

mConverter

protected CasConverter mConverter

processingUnitProcessTrace

protected ProcessTrace processingUnitProcessTrace

processContainers

protected java.util.LinkedList processContainers

numToProcess

protected long numToProcess

casList

protected CAS[] casList

statusCbL

protected java.util.ArrayList statusCbL

notifyListeners

protected boolean notifyListeners

conversionCas

protected CAS conversionCas

artifact

protected java.lang.Object[] artifact

conversionCasArray

protected CAS[] conversionCasArray

timer

protected UimaTimer timer

threadId

protected java.lang.String threadId

cpeConfiguration

protected CpeConfiguration cpeConfiguration
Constructor Detail

NonThreadedProcessingUnit

public NonThreadedProcessingUnit(CPMEngine acpm,
                                 BoundedWorkQueue aInputQueue,
                                 BoundedWorkQueue aOutputQueue)
Initialize the PU

Parameters:
acpm - - component managing life cycle of the CPE
aInputQueue - - queue to read from
aOutputQueue - - queue to write to

NonThreadedProcessingUnit

public NonThreadedProcessingUnit(CPMEngine acpm)
Method Detail

setInputQueue

public void setInputQueue(BoundedWorkQueue aInputQueue)
Alternative method of providing a queue from which this PU will read bundle of Cas

Parameters:
aInputQueue - - read queue

setOutputQueue

public void setOutputQueue(BoundedWorkQueue aOutputQueue)
Alternative method of providing a queue where this PU will deposit results of analysis

Parameters:
aOutputQueue - - queue to write to

setCPMEngine

public void setCPMEngine(CPMEngine acpm)
Alternative method of providing the reference to the component managing the lifecycle of the CPE

Parameters:
acpm - - reference to the contrlling engine

cleanup

public void cleanup()
Null out fields of this object. Call this only when this object is no longer needed.


setNotifyListeners

public void setNotifyListeners(boolean aDoNotify)
Set a flag indicating if notifications should be made via configured Listeners

Parameters:
aDoNotify - - true if notification is required, false otherwise

addStatusCallbackListener

public void addStatusCallbackListener(BaseStatusCallbackListener aListener)
Plugs in Listener object used for notifications.

Parameters:
aListener - - BaseStatusCallbackListener instance

getCallbackListeners

public java.util.ArrayList getCallbackListeners()
Returns list of listeners used by this PU for callbacks.

Returns:
- lif of BaseStatusCallbackListener instances

removeStatusCallbackListener

public void removeStatusCallbackListener(BaseStatusCallbackListener aListener)
Removes given listener from the list of listeners

Parameters:
aListener - - object to remove from the list

setProcessingUnitProcessTrace

public void setProcessingUnitProcessTrace(ProcessTrace aProcessingUnitProcessTrace)
Plugs in ProcessTrace object used to collect statistics

Parameters:
aProcessingUnitProcessTrace - - object to compile stats

setUimaTimer

public void setUimaTimer(UimaTimer aTimer)
Plugs in custom timer used by the PU for getting time

Parameters:
aTimer - - custom timer to use

setContainers

public void setContainers(java.util.LinkedList processorList)
Plugs in a list of Cas Processor containers. During processing Cas Processors in this list are called sequentially. Each Cas Processor is contained in the container that is managing errors, counts and totals, and restarts.

Parameters:
aProcessor - CASProcessor to be added to the processing pipeline

disableCasProcessor

public void disableCasProcessor(int aCasProcessorIndex)
Disable a CASProcessor in the processing pipeline. Locate it by provided index. The disabled Cas Processor remains in the Processing Pipeline, however it is not used furing processing.

Parameters:
aCasProcessorIndex - - location in the pipeline of the Cas Processor to delete

disableCasProcessor

public void disableCasProcessor(java.lang.String aCasProcessorName)
Alternative method to disable Cas Processor. Uses a name to locate it.

Parameters:
aCasProcessorName - - a name of the Cas Processor to disable

enableCasProcessor

public void enableCasProcessor(java.lang.String aCasProcessorName)
Enables Cas Processor with a given name. Enabled Cas Processor will immediately begin to receive bundles of Cas.

Parameters:
aCasProcessorName - - name of the Cas Processor to enable

analyze

protected boolean analyze(java.lang.Object[] aCasObjectList,
                          ProcessTrace pTrTemp)
                   throws java.lang.Exception
Throws:
java.lang.Exception

setReleaseCASFlag

public void setReleaseCASFlag(boolean aFlag)
Parameters:
aFlag -

setCasPool

public void setCasPool(CPECasPool aPool)
Parameters:
tcasPool -

isProcessorReady

protected boolean isProcessorReady(int aStatus)
Check if the CASProcessor status is available for processing


notifyListeners

protected void notifyListeners(java.lang.Object aCas,
                               boolean isCasObject,
                               EntityProcessStatus aEntityProcStatus)
Notifies Listeners of the fact that the pipeline has finished processing the current set Cas'es

Parameters:
aCas - - object containing an array of OR a single instance of Cas
isCasObject - - true if instance of Cas is of type Cas, false otherwise
aEntityProcStatus - - status object that may contain exceptions and trace

doNotifyListeners

protected void doNotifyListeners(java.lang.Object aCas,
                                 boolean isCasObject,
                                 EntityProcessStatus aEntityProcStatus)
Notifies all configured listeners. Makes sure that appropriate type of Cas is sent to the listener. Convertions take place to ensure compatibility.

Parameters:
aCas - - Cas to pass to listener
isCasObject - - true is Cas is of type CAS
aEntityProcStatus - - status object containing exceptions and trace info

getBytes

protected long getBytes(java.lang.Object aCas)
Returns the size of the CAS object. Currently only CASData is supported.

Parameters:
aCas - - Cas to get the size for
Returns:

stopCasProcessors

public void stopCasProcessors(boolean kill)
Stops all Cas Processors that are part of this PU.

Parameters:
kill - - true if CPE has been stopped before finishing processing during external stop


Copyright © 2012. All Rights Reserved.