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

java.lang.Object
  extended by com.springsource.util.common.SynchronizedObject
      extended by com.springsource.util.common.SynchronizedIterator<T>
Type Parameters:
T - the type of element the iterator returns
All Implemented Interfaces:
java.util.Iterator<T>
Direct Known Subclasses:
SynchronizedListIterator

public class SynchronizedIterator<T>
extends SynchronizedObject
implements java.util.Iterator<T>

SynchronizedIterator wraps a given Iterator and protects access to the iterator by synchronizing on the monitor of the containing SynchronizedCollection.

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

Since:
jersey
Author:
Glyn Normington

Field Summary
private  java.util.Iterator<T> iterator
           
private  java.lang.Object monitor
           
 
Constructor Summary
SynchronizedIterator(java.util.Iterator<T> iterator, java.lang.Object monitor)
           
 
Method Summary
 boolean hasNext()
          
 T next()
          
 void remove()
          
 
Methods inherited from class com.springsource.util.common.SynchronizedObject
toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

monitor

private final java.lang.Object monitor

iterator

private final java.util.Iterator<T> iterator
Constructor Detail

SynchronizedIterator

public SynchronizedIterator(java.util.Iterator<T> iterator,
                            java.lang.Object monitor)
Method Detail

hasNext

public boolean hasNext()

Specified by:
hasNext in interface java.util.Iterator<T>

next

public T next()

Specified by:
next in interface java.util.Iterator<T>

remove

public void remove()

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