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 void
add(Message<?> messageToAdd)
Add the message to this group.boolean
canAdd(Message<?> message)
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.String
getCondition()
Return the condition for this group to consult with, e.g.Object
getGroupId()
long
getLastModified()
int
getLastReleasedMessageSequenceNumber()
Collection<Message<?>>
getMessages()
Return all available Messages from the group at the time of invocationMessage<?>
getOne()
int
getSequenceSize()
long
getTimestamp()
boolean
isComplete()
boolean
remove(Message<?> message)
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()
String
toString()
-
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
-