|
||||||||||
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.Splitter
public abstract class Splitter
Splits an inbound message into two or more outbound messages and puts them in a single slot.
The CORRELATION_ID inside its header receives the MESSAGE_ID from the
parent message. Each split message also receives a SEQUENCE_NUMBER and a SEQUENCE_SIZE to identify how many messages
were split from the input message.
All header from the inbound message is kept to the outbound message(s).
Outbound messages have a new MESSAGE_ID and the inbound message as its parent.
Graphical notation:
This is an Integration Pattern implementation
Problem: How can we process a message if it contains multiple elements, each of which may have to be processed in a different way?
Solution: Use a Splitter to break out the composite message into a series of individual messages, each containing data related to one item.
Details:
Field Summary |
---|
Fields inherited from class guarana.framework.task.Task |
---|
input, output |
Constructor Summary | |
---|---|
Splitter(String name)
Constructs a new splitter task with a given name. |
|
Splitter(String name,
int numberOfInputs,
int numberOfOutputs)
Constructs a new splitter 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 Splitter(String name)
name
- The name of the splitter task.public Splitter(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 |