Class SimpleMessageGroup
java.lang.Object
org.springframework.integration.store.SimpleMessageGroup
- All Implemented Interfaces:
MessageGroup
- Direct Known Subclasses:
AbstractCorrelatingMessageHandler.SequenceAwareMessageGroup
public class SimpleMessageGroup extends Object implements MessageGroup
Represents a mutable group of correlated messages that is bound to a certain
MessageStore and group id.
The group will grow during its lifetime, when messages are add(org.springframework.messaging.Message<?>)ed to it.
This MessageGroup is thread safe.- Since:
- 2.0
- Author:
- Iwein Fuld, Oleg Zhurakousky, Dave Syer, Gary Russell, Artem Bilan
-
Constructor Summary
Constructors Constructor Description SimpleMessageGroup(Object groupId)SimpleMessageGroup(Collection<? extends Message<?>> messages, Object groupId)SimpleMessageGroup(Collection<? extends Message<?>> messages, Object groupId, long timestamp, boolean complete)SimpleMessageGroup(Collection<Message<?>> internalStore, Collection<? extends Message<?>> messages, Object groupId, long timestamp, boolean complete, boolean storePreLoaded)SimpleMessageGroup(MessageGroup messageGroup) -
Method Summary
Modifier and Type Method Description voidadd(Message<?> messageToAdd)Add the message to this group.booleancanAdd(Message<?> message)Query if the message can be added.voidclear()voidcomplete()Complete the group.booleancontainsSequence(Integer sequence)Return true if a message with this sequence number header exists in the group.StringgetCondition()Return the condition for this group to consult with, e.g.ObjectgetGroupId()longgetLastModified()intgetLastReleasedMessageSequenceNumber()Collection<Message<?>>getMessages()Return all available Messages from the group at the time of invocation.Message<?>getOne()intgetSequenceSize()longgetTimestamp()booleanisComplete()booleanremove(Message<?> message)Remove the message from this group.voidsetCondition(String condition)Add a condition statement to this group which can be consulted later on, e.g.voidsetLastModified(long lastModified)voidsetLastReleasedMessageSequenceNumber(int sequenceNumber)intsize()StringtoString()
-
Constructor Details
-
SimpleMessageGroup
-
SimpleMessageGroup
-
SimpleMessageGroup
-
SimpleMessageGroup
public SimpleMessageGroup(Collection<? extends Message<?>> messages, Object groupId, long timestamp, boolean complete) -
SimpleMessageGroup
public SimpleMessageGroup(Collection<Message<?>> internalStore, Collection<? extends Message<?>> messages, Object groupId, long timestamp, boolean complete, boolean storePreLoaded)
-
-
Method Details
-
getTimestamp
public long getTimestamp()- Specified by:
getTimestampin interfaceMessageGroup- Returns:
- the timestamp (milliseconds since epoch) associated with the creation of this group
-
setLastModified
public void setLastModified(long lastModified)- Specified by:
setLastModifiedin interfaceMessageGroup
-
getLastModified
public long getLastModified()- Specified by:
getLastModifiedin interfaceMessageGroup- Returns:
- the timestamp (milliseconds since epoch) associated with the time this group was last updated
-
canAdd
Description copied from interface:MessageGroupQuery if the message can be added.- Specified by:
canAddin interfaceMessageGroup- Parameters:
message- The message.- Returns:
- true if the message can be added.
-
add
Description copied from interface:MessageGroupAdd the message to this group.- Specified by:
addin interfaceMessageGroup- Parameters:
messageToAdd- the message to add.
-
remove
Description copied from interface:MessageGroupRemove the message from this group.- Specified by:
removein interfaceMessageGroup- Parameters:
message- the message to remove.- Returns:
trueif a message was removed.
-
getLastReleasedMessageSequenceNumber
public int getLastReleasedMessageSequenceNumber()- Specified by:
getLastReleasedMessageSequenceNumberin interfaceMessageGroup- Returns:
- the sequenceNumber of the last released message. Used in Resequencer use cases only
-
getMessages
Description copied from interface:MessageGroupReturn all available Messages from the group at the time of invocation.- Specified by:
getMessagesin interfaceMessageGroup- Returns:
- The messages.
-
setLastReleasedMessageSequenceNumber
public void setLastReleasedMessageSequenceNumber(int sequenceNumber)- Specified by:
setLastReleasedMessageSequenceNumberin interfaceMessageGroup
-
getGroupId
- Specified by:
getGroupIdin interfaceMessageGroup- Returns:
- the key that links these messages together
-
isComplete
public boolean isComplete()- Specified by:
isCompletein interfaceMessageGroup- Returns:
- true if the group is complete (i.e. no more messages are expected to be added)
-
complete
public void complete()Description copied from interface:MessageGroupComplete the group.- Specified by:
completein interfaceMessageGroup
-
getSequenceSize
public int getSequenceSize()- Specified by:
getSequenceSizein interfaceMessageGroup- Returns:
- the size of the sequence expected 0 if unknown
-
size
public int size()- Specified by:
sizein interfaceMessageGroup- Returns:
- the total number of messages in this group
-
setCondition
Description copied from interface:MessageGroupAdd a condition statement to this group which can be consulted later on, e.g. from the release strategy.- Specified by:
setConditionin interfaceMessageGroup- Parameters:
condition- statement which could be consulted later on, e.g. from the release strategy.
-
getCondition
Description copied from interface:MessageGroupReturn the condition for this group to consult with, e.g. from the release strategy.- Specified by:
getConditionin interfaceMessageGroup- Returns:
- the condition for this group to consult with, e.g. from the release strategy.
-
getOne
- Specified by:
getOnein interfaceMessageGroup- Returns:
- a single message from the group
-
clear
public void clear()- Specified by:
clearin interfaceMessageGroup
-
containsSequence
Return true if a message with this sequence number header exists in the group.- Parameters:
sequence- the sequence number.- Returns:
- true if it exists.
- Since:
- 4.3.7
-
toString
-