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, Christian Tzolov
-
Constructor Summary
ConstructorDescriptionSimpleMessageGroup
(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 TypeMethodDescriptionvoid
Add the message to this group.boolean
Query if the message can be added.void
clear()
void
complete()
Complete the group.boolean
containsSequence
(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.long
int
Collection<Message<?>>
Return all available Messages from the group at the time of invocation.Message<?>
getOne()
int
long
boolean
boolean
Remove the message from this group.void
setCondition
(String condition) Add a condition statement to this group which can be consulted later on, e.g.void
setLastModified
(long lastModified) void
setLastReleasedMessageSequenceNumber
(int sequenceNumber) int
size()
toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods 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:
getTimestamp
in interfaceMessageGroup
- Returns:
- the timestamp (milliseconds since epoch) associated with the creation of this group
-
setLastModified
public void setLastModified(long lastModified) - Specified by:
setLastModified
in interfaceMessageGroup
-
getLastModified
public long getLastModified()- Specified by:
getLastModified
in interfaceMessageGroup
- Returns:
- the timestamp (milliseconds since epoch) associated with the time this group was last updated
-
canAdd
Description copied from interface:MessageGroup
Query if the message can be added.- Specified by:
canAdd
in interfaceMessageGroup
- Parameters:
message
- The message.- Returns:
- true if the message can be added.
-
add
Description copied from interface:MessageGroup
Add the message to this group.- Specified by:
add
in interfaceMessageGroup
- Parameters:
messageToAdd
- the message to add.
-
remove
Description copied from interface:MessageGroup
Remove the message from this group.- Specified by:
remove
in interfaceMessageGroup
- Parameters:
message
- the message to remove.- Returns:
true
if a message was removed.
-
getLastReleasedMessageSequenceNumber
public int getLastReleasedMessageSequenceNumber()- Specified by:
getLastReleasedMessageSequenceNumber
in interfaceMessageGroup
- Returns:
- the sequenceNumber of the last released message. Used in Resequencer use cases only
-
getMessages
Description copied from interface:MessageGroup
Return all available Messages from the group at the time of invocation.- Specified by:
getMessages
in interfaceMessageGroup
- Returns:
- The messages.
-
setLastReleasedMessageSequenceNumber
public void setLastReleasedMessageSequenceNumber(int sequenceNumber) - Specified by:
setLastReleasedMessageSequenceNumber
in interfaceMessageGroup
-
getGroupId
- Specified by:
getGroupId
in interfaceMessageGroup
- Returns:
- the key that links these messages together
-
isComplete
public boolean isComplete()- Specified by:
isComplete
in 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:MessageGroup
Complete the group.- Specified by:
complete
in interfaceMessageGroup
-
getSequenceSize
public int getSequenceSize()- Specified by:
getSequenceSize
in interfaceMessageGroup
- Returns:
- the size of the sequence expected 0 if unknown
-
size
public int size()- Specified by:
size
in interfaceMessageGroup
- Returns:
- the total number of messages in this group
-
setCondition
Description copied from interface:MessageGroup
Add a condition statement to this group which can be consulted later on, e.g. from the release strategy.- Specified by:
setCondition
in interfaceMessageGroup
- Parameters:
condition
- statement which could be consulted later on, e.g. from the release strategy.
-
getCondition
Description copied from interface:MessageGroup
Return the condition for this group to consult with, e.g. from the release strategy.- Specified by:
getCondition
in interfaceMessageGroup
- Returns:
- the condition for this group to consult with, e.g. from the release strategy.
-
getOne
- Specified by:
getOne
in interfaceMessageGroup
- Returns:
- a single message from the group
-
clear
public void clear()- Specified by:
clear
in 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
-