gausssoft.collections
Class SynchronizedCollection

java.lang.Object
  |
  +--gausssoft.collections.SynchronizedCollection
All Implemented Interfaces:
Collection, Serializable
Direct Known Subclasses:
SynchronizedList, SynchronizedSet

public class SynchronizedCollection
extends Object
implements Collection, Serializable

The SynchronizedCollection class is used to synchronize all operations on a Collection object on a particular object.

Each method of this implementation synchronizes on a specified object specified at construction time, and then calls the method of the same signature of the backing collection. Each instance is serializable only if the backing collection and mutex is serializable.

This is similar to the synchronization methods in Collections, but this implementation allows you to choose what object to synchronize on, and allows subclassing.

Author:
Allan Crooks
See Also:
Collection, Collections, Serialized Form

Field Summary
protected  Object mutex
          Object to synchronize on.
protected  Collection root
          Backing collection.
 
Constructor Summary
SynchronizedCollection(Collection root)
          Creates a new SynchronizedCollection.
SynchronizedCollection(Collection root, Object mutex)
          Creates a new SynchronizedCollection.
 
Method Summary
 boolean add(Object o)
           
 boolean addAll(Collection c)
           
 void clear()
           
 boolean contains(Object o)
           
 boolean containsAll(Collection c)
           
 boolean equals(Object o)
           
 int hashCode()
           
 boolean isEmpty()
           
 Iterator iterator()
           
 boolean remove(Object o)
           
 boolean removeAll(Collection c)
           
 boolean retainAll(Collection c)
           
 int size()
           
 Object[] toArray()
           
 Object[] toArray(Object[] a)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

root

protected final Collection root
Backing collection.

mutex

protected final Object mutex
Object to synchronize on.
Constructor Detail

SynchronizedCollection

public SynchronizedCollection(Collection root,
                              Object mutex)
Creates a new SynchronizedCollection.
Parameters:
root - The collection to use as the backing collection.
mutex - The object to synchronize operations on.
Throws:
NullPointerException - If root is null.

SynchronizedCollection

public SynchronizedCollection(Collection root)
Creates a new SynchronizedCollection.

The object constructed will synchronize all operations on itself.

Parameters:
root - The collection to use as the backing collection.
Throws:
NullPointerException - If root is null.
Method Detail

size

public int size()
Specified by:
size in interface Collection

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Collection

contains

public boolean contains(Object o)
Specified by:
contains in interface Collection

iterator

public Iterator iterator()
Specified by:
iterator in interface Collection

toArray

public Object[] toArray()
Specified by:
toArray in interface Collection

toArray

public Object[] toArray(Object[] a)
Specified by:
toArray in interface Collection

add

public boolean add(Object o)
Specified by:
add in interface Collection

remove

public boolean remove(Object o)
Specified by:
remove in interface Collection

containsAll

public boolean containsAll(Collection c)
Specified by:
containsAll in interface Collection

addAll

public boolean addAll(Collection c)
Specified by:
addAll in interface Collection

removeAll

public boolean removeAll(Collection c)
Specified by:
removeAll in interface Collection

retainAll

public boolean retainAll(Collection c)
Specified by:
retainAll in interface Collection

clear

public void clear()
Specified by:
clear in interface Collection

equals

public boolean equals(Object o)
Specified by:
equals in interface Collection
Overrides:
equals in class Object

hashCode

public int hashCode()
Specified by:
hashCode in interface Collection
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object