Class SimpleMessageGroup
java.lang.Object
org.springframework.integration.store.SimpleMessageGroup
- All Implemented Interfaces:
MessageGroup
- Direct Known Subclasses:
AbstractCorrelatingMessageHandler.SequenceAwareMessageGroup
public class SimpleMessageGroup extends java.lang.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 added to it.
This MessageGroup is thread safe.- Since:
- 2.0
-
Constructor Summary
Constructors Constructor Description SimpleMessageGroup(java.lang.Object groupId)SimpleMessageGroup(java.util.Collection<? extends org.springframework.messaging.Message<?>> messages, java.lang.Object groupId)SimpleMessageGroup(java.util.Collection<? extends org.springframework.messaging.Message<?>> messages, java.lang.Object groupId, long timestamp, boolean complete)SimpleMessageGroup(java.util.Collection<org.springframework.messaging.Message<?>> internalStore, java.util.Collection<? extends org.springframework.messaging.Message<?>> messages, java.lang.Object groupId, long timestamp, boolean complete, boolean storePreLoaded)SimpleMessageGroup(MessageGroup messageGroup) -
Method Summary
Modifier and Type Method Description voidadd(org.springframework.messaging.Message<?> messageToAdd)Add the message to this group.booleancanAdd(org.springframework.messaging.Message<?> message)Query if the message can be added.voidclear()voidcomplete()Complete the group.booleancontainsSequence(java.lang.Integer sequence)Return true if a message with this sequence number header exists in the group.java.lang.ObjectgetGroupId()longgetLastModified()intgetLastReleasedMessageSequenceNumber()java.util.Collection<org.springframework.messaging.Message<?>>getMessages()Return all available Messages from the group at the time of invocationorg.springframework.messaging.Message<?>getOne()intgetSequenceSize()longgetTimestamp()booleanisComplete()booleanremove(org.springframework.messaging.Message<?> message)Remove the message from this group.voidsetLastModified(long lastModified)voidsetLastReleasedMessageSequenceNumber(int sequenceNumber)intsize()java.lang.StringtoString()
-
Constructor Details
-
SimpleMessageGroup
public SimpleMessageGroup(java.lang.Object groupId) -
SimpleMessageGroup
public SimpleMessageGroup(java.util.Collection<? extends org.springframework.messaging.Message<?>> messages, java.lang.Object groupId) -
SimpleMessageGroup
-
SimpleMessageGroup
public SimpleMessageGroup(java.util.Collection<? extends org.springframework.messaging.Message<?>> messages, java.lang.Object groupId, long timestamp, boolean complete) -
SimpleMessageGroup
public SimpleMessageGroup(java.util.Collection<org.springframework.messaging.Message<?>> internalStore, java.util.Collection<? extends org.springframework.messaging.Message<?>> messages, java.lang.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
public boolean canAdd(org.springframework.messaging.Message<?> message)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
public void add(org.springframework.messaging.Message<?> messageToAdd)Description copied from interface:MessageGroupAdd the message to this group.- Specified by:
addin interfaceMessageGroup- Parameters:
messageToAdd- the message to add.
-
remove
public boolean remove(org.springframework.messaging.Message<?> message)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
public java.util.Collection<org.springframework.messaging.Message<?>> 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
public java.lang.Object 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
-
getOne
public org.springframework.messaging.Message<?> getOne()- Specified by:
getOnein interfaceMessageGroup- Returns:
- a single message from the group
-
clear
public void clear()- Specified by:
clearin interfaceMessageGroup
-
containsSequence
public boolean containsSequence(java.lang.Integer sequence)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
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-