|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.jplate.foundation.gof.cor.impl.defaults.DefaultChainOfResponsibility<V,P>
V - The object to be processed.P - The processors in the chain.public class DefaultChainOfResponsibility<V,P extends ProcessorIfc<V>>
Default implementation of the "Gang of Four" Chain of Responsibility pattern:
"Avoid coupling the sender of a request to its receiver by giving more than
one object a chance to handle the request. Chain the receiving objects and pass
the request along the chain until an object handles it," p223 Design
Patterns - Elements of Reusable Object-Oriented Software.
Please note: when calling process(V), if any processor
returns null, no more processors will be requested to process and
the null value will be returned.
public final class PersonIfc
{
public String getName ();
public int getAge ();
}
final class PersonAgeProcessor implements ProcessorIfc <PersonIfc>
{
public PersonIfc process ( final PersonIfc person )
{
// Do some person age work here...
return person;
}
}
final ChainOfResponsibility <PersonIfc, PersonAgeProcessor> cor =
new DefaultChainOfResponsibility <PersonIfc, PersonAgeProcessor> ();
Modifications:
$Date: 2008-12-02 12:32:45 -0500 (Tue, 02 Dec 2008) $
$Revision: 479 $
$Author: sfloess $
$HeadURL: https://jplate.svn.sourceforge.net/svnroot/jplate/trunk/src/dev/java/org/jplate/foundation/gof/cor/impl/defaults/DefaultChainOfResponsibility.java $
| Field Summary | |
|---|---|
private java.util.List<P> |
_list
The list of processors in the chain. |
private org.apache.commons.logging.Log |
_log
Used for logging. |
| Constructor Summary | |
|---|---|
DefaultChainOfResponsibility()
Default constructor. |
|
DefaultChainOfResponsibility(ListFactoryIfc<P> listFactory)
This constructor uses listFactory to build its internal
list to hold processors in the chain. |
|
| Method Summary | |
|---|---|
java.util.List<P> |
getProcessors()
Returns the processors who make up the chain. |
V |
process(V toProcess)
Requests toProcess to be processed. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private final org.apache.commons.logging.Log _log
private final java.util.List<P extends ProcessorIfc<V>> _list
| Constructor Detail |
|---|
public DefaultChainOfResponsibility(ListFactoryIfc<P> listFactory)
listFactory to build its internal
list to hold processors in the chain.
listFactory - The factory that will be used to create the list of
processors in the chain.public DefaultChainOfResponsibility()
| Method Detail |
|---|
public V process(V toProcess)
throws ProcessException
toProcess to be processed.
process in interface ProcessorIfc<V>toProcess - The object to process.
ProcessException - if any problem arises processing
toProcess.public java.util.List<P> getProcessors()
getProcessors in interface ChainOfResponsibilityIfc<V,P extends ProcessorIfc<V>>
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||