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
-
Constructor Summary
ConstructorsConstructorDescriptionSimpleMessageGroup(Object groupId) SimpleMessageGroup(Collection<? extends org.springframework.messaging.Message<?>> messages, Object groupId) SimpleMessageGroup(Collection<? extends org.springframework.messaging.Message<?>> messages, Object groupId, long timestamp, boolean complete) SimpleMessageGroup(Collection<org.springframework.messaging.Message<?>> internalStore, Collection<? extends org.springframework.messaging.Message<?>> messages, Object groupId, long timestamp, boolean complete, boolean storePreLoaded) SimpleMessageGroup(MessageGroup messageGroup) -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(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(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<org.springframework.messaging.Message<?>>Return all available Messages from the group at the time of invocation.org.springframework.messaging.Message<?>getOne()intlongbooleanbooleanremove(org.springframework.messaging.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()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
public SimpleMessageGroup(Collection<? extends org.springframework.messaging.Message<?>> messages, Object groupId) -
SimpleMessageGroup
-
SimpleMessageGroup
public SimpleMessageGroup(Collection<? extends org.springframework.messaging.Message<?>> messages, Object groupId, long timestamp, boolean complete) -
SimpleMessageGroup
public SimpleMessageGroup(Collection<org.springframework.messaging.Message<?>> internalStore, Collection<? extends org.springframework.messaging.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
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
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
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
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
-