|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectguarana.util.observer.smart.SmartObservable
guarana.framework.task.Task
guarana.toolkit.task.transformers.Transformer
guarana.toolkit.task.transformers.Aggregator
public abstract class Aggregator
Constructs a new outbound message from two or more inbound messages produced by an Splitter
The header from the first inbound message in the sequence is kept to the outbound message.
The outbound message has a new MESSAGE_ID and the inbound messages as parents.
Graphical notation:
This is an Integration Pattern implementation
Problem: How do we combine the results of individual, but related messages so that they can be processed as a whole?
Solution: Use a stateful filter, an Aggregator, to collect and store individual messages until a complete set of related messages has been received. Then, the Aggregator publishes a single message distilled from the individual messages.
Details:
Field Summary |
---|
Fields inherited from class guarana.framework.task.Task |
---|
input, output |
Constructor Summary | |
---|---|
Aggregator(String name)
Constructs a new aggregator task. |
|
Aggregator(String name,
int numberOfInputs,
int numberOfOutputs)
Constructs a new aggregator task. |
Method Summary | |
---|---|
abstract void |
doWork(Exchange exchange)
This method implements the business logic of this task. |
void |
execute()
This method executes the business logic of this task. |
void |
update(guarana.util.observer.smart.SmartObservable slot,
Object arg)
This method is automatically called by the observable slot to notify the slot has received a message. |
Methods inherited from class guarana.framework.task.Task |
---|
getName, getTriggerInterval, isTriggerTask, setName, setTriggerInterval |
Methods inherited from class guarana.util.observer.smart.SmartObservable |
---|
addSmartObserver, containsSmartObserver, containsSmartObserver, countSmartObservers, deleteSmartObserver, deleteSmartObservers, hasChanged, notifySmartObservers, notifySmartObservers |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Aggregator(String name)
name
- The name of this task.public Aggregator(String name, int numberOfInputs, int numberOfOutputs)
name
- The name of this task.numberOfInputs
- The number of input gateways this task must have.numberOfOutputs
- The number of output gateways this task must have.Method Detail |
---|
public void execute() throws TaskExecutionException
execute
in class Task
TaskExecutionException
- to report any exception that has occurred during the execution of this method.TaskExecutionException
public abstract void doWork(Exchange exchange) throws TaskExecutionException
doWork
in class Task
exchange
- An exchange object that holds the inbound messages of this task.
TaskExecutionException
- to report any exception that has occurred during the execution of this method.public void update(guarana.util.observer.smart.SmartObservable slot, Object arg)
Task
for performance reasons.
update
in interface guarana.util.observer.smart.ISmartObserver
update
in class Task
slot
- The Slot
associated with this task.arg
- THIS PARAMETHER IS NOT USED.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |