Spring Integration

org.springframework.integration.aggregator
Class AbstractAggregatingMessageGroupProcessor

java.lang.Object
  extended by org.springframework.integration.aggregator.AbstractAggregatingMessageGroupProcessor
All Implemented Interfaces:
MessageGroupProcessor
Direct Known Subclasses:
DefaultAggregatingMessageGroupProcessor, ExpressionEvaluatingMessageGroupProcessor, MethodInvokingMessageGroupProcessor

public abstract class AbstractAggregatingMessageGroupProcessor
extends java.lang.Object
implements MessageGroupProcessor

Base class for MessageGroupProcessor implementations that aggregate the group of Messages into a single Message.

Since:
2.0
Author:
Iwein Fuld, Alexander Peters, Mark Fisher, Dave Syer

Constructor Summary
AbstractAggregatingMessageGroupProcessor()
           
 
Method Summary
protected  java.util.Map<java.lang.String,java.lang.Object> aggregateHeaders(MessageGroup group)
          This default implementation simply returns all headers that have no conflicts among the group.
protected abstract  java.lang.Object aggregatePayloads(MessageGroup group, java.util.Map<java.lang.String,java.lang.Object> defaultHeaders)
           
 java.lang.Object processMessageGroup(MessageGroup group)
          Process the given MessageGroup.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractAggregatingMessageGroupProcessor

public AbstractAggregatingMessageGroupProcessor()
Method Detail

processMessageGroup

public final java.lang.Object processMessageGroup(MessageGroup group)
Description copied from interface: MessageGroupProcessor
Process the given MessageGroup. Implementations are free to return as few or as many messages based on the invocation as needed. For example an aggregating processor will return only a single message representing the group, while a resequencing processor will return all messages whose preceding sequence has been satisfied.

If a multiple messages are returned the return value must be a Collection<Message>.

Specified by:
processMessageGroup in interface MessageGroupProcessor

aggregateHeaders

protected java.util.Map<java.lang.String,java.lang.Object> aggregateHeaders(MessageGroup group)
This default implementation simply returns all headers that have no conflicts among the group. An absent header on one or more Messages within the group is not considered a conflict. Subclasses may override this method with more advanced conflict-resolution strategies if necessary.


aggregatePayloads

protected abstract java.lang.Object aggregatePayloads(MessageGroup group,
                                                      java.util.Map<java.lang.String,java.lang.Object> defaultHeaders)

Spring Integration