org.mule.routing.inbound
Class EventGroup

java.lang.Object
  extended by org.mule.routing.inbound.EventGroup
All Implemented Interfaces:
Serializable, Comparable

public class EventGroup
extends Object
implements Comparable, Serializable

EventGroup is a holder over events grouped by a common group Id. This can be used by components such as routers to managed related events.

See Also:
Serialized Form

Field Summary
static MuleEvent[] EMPTY_EVENTS_ARRAY
           
 
Constructor Summary
EventGroup(Object groupId)
           
EventGroup(Object groupId, int expectedSize)
           
 
Method Summary
 void addEvent(MuleEvent event)
          Add the given event to this group.
 void clear()
          Removes all events from this group.
 int compareTo(Object o)
          Compare this EventGroup to another one.
 boolean equals(Object obj)
          Compares two EventGroups for equality.
 int expectedSize()
          Returns the number of events that this EventGroup is expecting before correlation can proceed.
 long getCreated()
          Return the creation timestamp of the current group in nanoseconds.
 Object getGroupId()
          Returns an identifier for this EventGroup.
 int hashCode()
          The hashCode of an EventGroup is derived from the object returned by getGroupId().
 Iterator iterator()
          Returns an iterator over a snapshot copy of this group's collected events.
 void removeEvent(MuleEvent event)
          Remove the given event from the group.
 int size()
          Returns the number of events collected so far.
 MuleEvent[] toArray()
          Returns a snapshot of collected events in this group.
 MuleMessageCollection toMessageCollection()
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EMPTY_EVENTS_ARRAY

public static final MuleEvent[] EMPTY_EVENTS_ARRAY
Constructor Detail

EventGroup

public EventGroup(Object groupId)

EventGroup

public EventGroup(Object groupId,
                  int expectedSize)
Method Detail

compareTo

public int compareTo(Object o)
Compare this EventGroup to another one. If the receiver and the argument both have groupIds that are Comparable, they are used for the comparison; otherwise - since the id can be any object - the group creation time stamp is used as fallback. Older groups are considered "smaller".

Specified by:
compareTo in interface Comparable
See Also:
Comparable.compareTo(java.lang.Object)

equals

public boolean equals(Object obj)
Compares two EventGroups for equality. EventGroups are considered equal when their groupIds (as returned by getGroupId()) are equal.

Overrides:
equals in class Object
See Also:
Object.equals(Object)

hashCode

public int hashCode()
The hashCode of an EventGroup is derived from the object returned by getGroupId().

Overrides:
hashCode in class Object
See Also:
Object.hashCode()

getGroupId

public Object getGroupId()
Returns an identifier for this EventGroup. It is recommended that this id is unique and Comparable e.g. a UUID.

Returns:
the id of this event group

iterator

public Iterator iterator()
Returns an iterator over a snapshot copy of this group's collected events. If you need to iterate over the group and e.g. remove select events, do so via removeEvent(MuleEvent). If you need to do so atomically in order to prevent e.g. concurrent reception/aggregation of the group during iteration, wrap the iteration in a synchronized block on the group instance.

Returns:
an iterator over collected MuleEvents.

toArray

public MuleEvent[] toArray()
Returns a snapshot of collected events in this group.

Returns:
an array of collected MuleEvents.

addEvent

public void addEvent(MuleEvent event)
Add the given event to this group.

Parameters:
event - the event to add

removeEvent

public void removeEvent(MuleEvent event)
Remove the given event from the group.

Parameters:
event - the evnt to remove

getCreated

public long getCreated()
Return the creation timestamp of the current group in nanoseconds.

Returns:
the timestamp when this group was instantiated.
See Also:
Utils.nanoTime()

size

public int size()
Returns the number of events collected so far.

Returns:
number of events in this group or 0 if the group is empty.

expectedSize

public int expectedSize()
Returns the number of events that this EventGroup is expecting before correlation can proceed.

Returns:
expected number of events or -1 if no expected size was specified.

clear

public void clear()
Removes all events from this group.


toString

public String toString()
Overrides:
toString in class Object

toMessageCollection

public MuleMessageCollection toMessageCollection()


Copyright © 2003-2009 MuleSource, Inc.. All Rights Reserved.