Class SimpleMessageGroup
java.lang.Object
org.springframework.integration.store.SimpleMessageGroup
- All Implemented Interfaces:
MessageGroup
- Direct Known Subclasses:
AbstractCorrelatingMessageHandler.SequenceAwareMessageGroup
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
ConstructorsConstructorDescriptionSimpleMessageGroup(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 TypeMethodDescriptionvoidAdd the message to this group.booleanQuery 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.Return the condition for this group to consult with, e.g.longintCollection<Message<?>>Return all available Messages from the group at the time of invocation.Message<?>getOne()intlongbooleanbooleanRemove 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()toString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.integration.store.MessageGroup
streamMessages
-
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
-