com.rhi.architecture.parc
Class AbstractFilter

java.lang.Object
  extended bycom.rhi.architecture.parc.filter.AbstractFilter
      extended bycom.rhi.architecture.parc.AbstractFilter
All Implemented Interfaces:
Filter, java.lang.Runnable

Deprecated. Use one of the filters in the parc.filter sub-package.

public abstract class AbstractFilter
extends AbstractFilter

The AbstractFilter provides a partially implemented Filter allowing simpler concrete Filter objects. It deals w/ thread safe exit logic, and idle cycle detection as well as providing the required hooks for pre & post channel hookup. All concrete filter processing is deferred to a doWork() abstract method.

Note: a simple run() method is provided to support the Runnable Interface.

Since:
1.0
Author:
Pete McKinstry

Constructor Summary
AbstractFilter()
          Deprecated.  
 
Method Summary
 void process()
          Deprecated. Push a collection of records through the filter.
 
Methods inherited from class com.rhi.architecture.parc.filter.AbstractFilter
doWork, getErrorChannel, getExceptionHandler, getInbound, getMaxRecords, getName, getOutbound, init, isShutdown, log, markForDeath, numThreads, reset, run, setErrorChannel, setExceptionHandler, setInbound, setMaxRecords, setNumThreads, setOutbound, stats
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractFilter

public AbstractFilter()
Deprecated. 
Method Detail

process

public void process()
             throws ProcessingException
Deprecated. 
Push a collection of records through the filter.
Details: The AbstractFilter processes records w/in a dependent loop. The exit criteria for the loop is the markForDeath() flag which should be set by the pipeline, _and_ an empty processing cycle. This allows the Strategy to flush the Pipeline w/o knowing much about the inner workings of the Filter. While this criteria is false, the Filter does this: (pseudo-code) InboundChannel.pull(); doWork() OutboundChannel.push();

This method must be threadsafe as it is the fundamental multi-processing hook in the framework.

Throws:
ProcessingException
Since:
1.0


Copyright © 2002-2004 Robert Half International. All Rights Reserved.