com.springsource.util.common
Class SynchronizedCollection<T>

java.lang.Object
  extended by com.springsource.util.common.SynchronizedObject
      extended by com.springsource.util.common.SynchronizedCollection<T>
Type Parameters:
T - type of element in collection
All Implemented Interfaces:
java.lang.Iterable<T>, java.util.Collection<T>
Direct Known Subclasses:
SynchronizedList

public class SynchronizedCollection<T>
extends SynchronizedObject
implements java.util.Collection<T>

SynchronizedCollection wraps a given Collection and protects access to the collection and any iterators created from the collection by synchronizing on a given monitor.

Concurrent Semantics
This class is thread safe, but ConcurrentModificationException may still be thrown.

Since:
jersey
Author:
Glyn Normington

Field Summary
private  java.util.Collection<T> collection
           
private  java.lang.Object monitor
           
private static java.lang.Object tieMonitor
           
 
Constructor Summary
SynchronizedCollection(java.util.Collection<? extends T> collection, java.lang.Object monitor)
          Creates a SynchronizedCollection wrapping the given collection and synchronizing on the given monitor, neither of which may be null.
 
Method Summary
 boolean add(T e)
          
 boolean addAll(java.util.Collection<? extends T> c)
          
 void clear()
          
 boolean contains(java.lang.Object o)
          
 boolean containsAll(java.util.Collection<?> c)
          
 boolean equals(java.lang.Object obj)
          
 int hashCode()
          
 boolean isEmpty()
          
 java.util.Iterator<T> iterator()
          
 boolean remove(java.lang.Object o)
          
 boolean removeAll(java.util.Collection<?> c)
          
 boolean retainAll(java.util.Collection<?> c)
          
 int size()
          
 java.lang.Object[] toArray()
          
<U> U[]
toArray(U[] a)
          
 
Methods inherited from class com.springsource.util.common.SynchronizedObject
toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

collection

private final java.util.Collection<T> collection

monitor

private final java.lang.Object monitor

tieMonitor

private static final java.lang.Object tieMonitor
Constructor Detail

SynchronizedCollection

public SynchronizedCollection(java.util.Collection<? extends T> collection,
                              java.lang.Object monitor)
Creates a SynchronizedCollection wrapping the given collection and synchronizing on the given monitor, neither of which may be null.

Parameters:
collection - the collection to be wrapped, which must not be null
monitor - the monitor which will be used to synchronize access to the collection
Method Detail

hashCode

public int hashCode()

Specified by:
hashCode in interface java.util.Collection<T>
Overrides:
hashCode in class java.lang.Object

equals

public boolean equals(java.lang.Object obj)

Specified by:
equals in interface java.util.Collection<T>
Overrides:
equals in class java.lang.Object

add

public boolean add(T e)

Specified by:
add in interface java.util.Collection<T>

addAll

public boolean addAll(java.util.Collection<? extends T> c)

Specified by:
addAll in interface java.util.Collection<T>

clear

public void clear()

Specified by:
clear in interface java.util.Collection<T>

contains

public boolean contains(java.lang.Object o)

Specified by:
contains in interface java.util.Collection<T>

containsAll

public boolean containsAll(java.util.Collection<?> c)

Specified by:
containsAll in interface java.util.Collection<T>

isEmpty

public boolean isEmpty()

Specified by:
isEmpty in interface java.util.Collection<T>

iterator

public java.util.Iterator<T> iterator()

Specified by:
iterator in interface java.lang.Iterable<T>
Specified by:
iterator in interface java.util.Collection<T>

remove

public boolean remove(java.lang.Object o)

Specified by:
remove in interface java.util.Collection<T>

removeAll

public boolean removeAll(java.util.Collection<?> c)

Specified by:
removeAll in interface java.util.Collection<T>

retainAll

public boolean retainAll(java.util.Collection<?> c)

Specified by:
retainAll in interface java.util.Collection<T>

size

public int size()

Specified by:
size in interface java.util.Collection<T>

toArray

public java.lang.Object[] toArray()

Specified by:
toArray in interface java.util.Collection<T>

toArray

public <U> U[] toArray(U[] a)

Specified by:
toArray in interface java.util.Collection<T>