fulmine.util.collection
Class AbstractCoalescingCollection<E extends IAddressable>

java.lang.Object
  extended by fulmine.util.collection.AbstractCoalescingCollection<E>
Type Parameters:
E - the element type this collection operates with, a sub-class of IAddressable
All Implemented Interfaces:
Iterable<E>, Collection<E>
Direct Known Subclasses:
CoalescingCollection, OrderedCoalescingCollection

public abstract class AbstractCoalescingCollection<E extends IAddressable>
extends Object
implements Collection<E>

A collection implementation that stores and identifies objects based on their identity within a Map. This provides coalescing of objects that are added to the event store, like a set but based on the system identity of the object rather than the hashcode.

This class is not thread aware and is not thread safe.

Author:
Ramon Servadei
See Also:
System.identityHashCode(Object)

Field Summary
protected  Map<Object,E> data
           
 
Constructor Summary
protected AbstractCoalescingCollection(Map<Object,E> data)
          Constructor to pass in the data map implementation
 
Method Summary
 boolean add(E e)
           
 boolean addAll(Collection<? extends E> c)
           
 void clear()
           
 boolean contains(Object o)
           
 boolean containsAll(Collection<?> c)
           
 boolean equals(Object obj)
           
static String getSystemIdentity(Object object)
          Get the system identity for the object.
 int hashCode()
           
 boolean isEmpty()
           
 Iterator<E> iterator()
           
 boolean remove(Object o)
           
 boolean removeAll(Collection<?> c)
           
 boolean retainAll(Collection<?> c)
          Unsupported.
 int size()
           
 Object[] toArray()
           
<T> T[]
toArray(T[] array)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

data

protected final Map<Object,E extends IAddressable> data
Constructor Detail

AbstractCoalescingCollection

protected AbstractCoalescingCollection(Map<Object,E> data)
Constructor to pass in the data map implementation

Parameters:
data - the data map implementation backing this collection
Method Detail

add

public boolean add(E e)
Specified by:
add in interface Collection<E extends IAddressable>

addAll

public boolean addAll(Collection<? extends E> c)
Specified by:
addAll in interface Collection<E extends IAddressable>

clear

public void clear()
Specified by:
clear in interface Collection<E extends IAddressable>

contains

public boolean contains(Object o)
Specified by:
contains in interface Collection<E extends IAddressable>

containsAll

public boolean containsAll(Collection<?> c)
Specified by:
containsAll in interface Collection<E extends IAddressable>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Collection<E extends IAddressable>

iterator

public Iterator<E> iterator()
Specified by:
iterator in interface Iterable<E extends IAddressable>
Specified by:
iterator in interface Collection<E extends IAddressable>

remove

public boolean remove(Object o)
Specified by:
remove in interface Collection<E extends IAddressable>

removeAll

public boolean removeAll(Collection<?> c)
Specified by:
removeAll in interface Collection<E extends IAddressable>

retainAll

public boolean retainAll(Collection<?> c)
Unsupported.

Specified by:
retainAll in interface Collection<E extends IAddressable>
Throws:
UnsupportedOperationException

size

public int size()
Specified by:
size in interface Collection<E extends IAddressable>

toArray

public Object[] toArray()
Specified by:
toArray in interface Collection<E extends IAddressable>

toArray

public <T> T[] toArray(T[] array)
Specified by:
toArray in interface Collection<E extends IAddressable>

toString

public final String toString()
Overrides:
toString in class Object

hashCode

public final int hashCode()
Specified by:
hashCode in interface Collection<E extends IAddressable>
Overrides:
hashCode in class Object

equals

public final boolean equals(Object obj)
Specified by:
equals in interface Collection<E extends IAddressable>
Overrides:
equals in class Object

getSystemIdentity

public static final String getSystemIdentity(Object object)
Get the system identity for the object. If the object implements IAddressable, then the identity is formed of the IAddressable.getIdentity(), IAddressable.getType() and IAddressable.getDomain(), otherwise a platform dependent system identifier mechanism is invoked on the object.

Parameters:
object - the object to get the system identity for
Returns:
the String identity representing the unique system identifier for the object.


Copyright © 2007-2009. All Rights Reserved.