org.springframework.integration.store
Class SimpleMessageGroup
java.lang.Object
org.springframework.integration.store.SimpleMessageGroup
- All Implemented Interfaces:
- MessageGroup
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 add
ed to it. This MessageGroup is thread safe.
- Since:
- 2.0
- Author:
- Iwein Fuld, Oleg Zhurakousky, Dave Syer
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
messages
public final java.util.concurrent.BlockingQueue<Message<?>> messages
SimpleMessageGroup
public SimpleMessageGroup(java.lang.Object groupId)
SimpleMessageGroup
public SimpleMessageGroup(java.util.Collection<? extends Message<?>> messages,
java.lang.Object groupId)
SimpleMessageGroup
public SimpleMessageGroup(java.util.Collection<? extends Message<?>> messages,
java.lang.Object groupId,
long timestamp,
boolean complete)
SimpleMessageGroup
public SimpleMessageGroup(MessageGroup messageGroup)
getTimestamp
public long getTimestamp()
- Specified by:
getTimestamp
in interface MessageGroup
- Returns:
- the timestamp (milliseconds since epoch) associated with the creation of this group
setLastModified
public void setLastModified(long lastModified)
getLastModified
public long getLastModified()
- Specified by:
getLastModified
in interface MessageGroup
- Returns:
- the timestamp (milliseconds since epoch) associated with the time this group was last updated
canAdd
public boolean canAdd(Message<?> message)
- Description copied from interface:
MessageGroup
- Query if the message can be added.
- Specified by:
canAdd
in interface MessageGroup
add
public void add(Message<?> message)
remove
public void remove(Message<?> message)
getLastReleasedMessageSequenceNumber
public int getLastReleasedMessageSequenceNumber()
- Description copied from interface:
MessageGroup
- Returns the sequenceNumber of the last released message. Used in Resequencer use cases only
- Specified by:
getLastReleasedMessageSequenceNumber
in interface MessageGroup
getMessages
public java.util.Collection<Message<?>> getMessages()
- Description copied from interface:
MessageGroup
- Returns all available Messages from the group at the time of invocation
- Specified by:
getMessages
in interface MessageGroup
setLastReleasedMessageSequenceNumber
public void setLastReleasedMessageSequenceNumber(int sequenceNumber)
getGroupId
public java.lang.Object getGroupId()
- Specified by:
getGroupId
in interface MessageGroup
- Returns:
- the key that links these messages together
isComplete
public boolean isComplete()
- Specified by:
isComplete
in interface MessageGroup
- Returns:
- true if the group is complete (i.e. no more messages are expected to be added)
complete
public void complete()
- Specified by:
complete
in interface MessageGroup
getSequenceSize
public int getSequenceSize()
- Specified by:
getSequenceSize
in interface MessageGroup
- Returns:
- the size of the sequence expected 0 if unknown
size
public int size()
- Specified by:
size
in interface MessageGroup
- Returns:
- the total number of messages in this group
getOne
public Message<?> getOne()
- Specified by:
getOne
in interface MessageGroup
- Returns:
- a single message from the group
clear
public void clear()
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object