Class CloneListIterator<E>
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.utility.iterator.CloneListIterator<E>
-
- Type Parameters:
E- the type of elements returned by the iterator
- All Implemented Interfaces:
java.util.Iterator<E>,java.util.ListIterator<E>
- Direct Known Subclasses:
SnapshotCloneListIterable.LocalCloneListIterator
public class CloneListIterator<E> extends java.lang.Object implements java.util.ListIterator<E>ACloneListIteratoriterates over a copy of a list, allowing for concurrent access to the original list.The original list passed to the
CloneListIterator's constructor should be synchronized; otherwise you run the risk of a corrupted list (e.g.Vector.By default, a
CloneListIteratordoes not support the modification operations; this is because it does not have access to the original list. But if theCloneListIteratoris supplied with aCloneListIterator.Mutatorit will delegate the modification operations to theCloneListIterator.Mutator. Alternatively, a subclass can override the modification methods.- See Also:
- LiveCloneListIterable, SnapshotCloneListIterable
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceCloneListIterator.Mutator<T>Used byCloneListIteratorto remove elements from the original list; since the list iterator does not have direct access to the original list.
-
Constructor Summary
Constructors Modifier Constructor Description CloneListIterator(E[] array)Construct a list iterator on a copy of the specified array.CloneListIterator(E[] array, CloneListIterator.Mutator<E> mutator)Construct a list iterator on a copy of the specified array.CloneListIterator(java.util.List<? extends E> list)Construct a list iterator on a copy of the specified list.CloneListIterator(java.util.List<? extends E> list, CloneListIterator.Mutator<E> mutator)Construct a list iterator on a copy of the specified list.protectedCloneListIterator(CloneListIterator.Mutator<E> mutator, java.lang.Object... array)Internal constructor used by subclasses.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidadd(int index, E o)Add the specified element to the original list.voidadd(E o)booleanhasNext()booleanhasPrevious()protected EnestedNext()The list passed in during construction held elements of typeE, so this cast is not a problem.protected EnestedPrevious()The list passed in during construction held elements of typeE, so this cast is not a problem.Enext()intnextIndex()Eprevious()intpreviousIndex()voidremove()protected voidremove(int index)Remove the specified element from the original list.protected voidset(int index, E o)Set the specified element in the original list.voidset(E o)
-
-
-
Constructor Detail
-
CloneListIterator
public CloneListIterator(E[] array)
Construct a list iterator on a copy of the specified array. The modification methods will not be supported, unless a subclass overrides them.
-
CloneListIterator
public CloneListIterator(E[] array, CloneListIterator.Mutator<E> mutator)
Construct a list iterator on a copy of the specified array. Use the specified list mutator to modify the original list.
-
CloneListIterator
public CloneListIterator(java.util.List<? extends E> list)
Construct a list iterator on a copy of the specified list. The modification methods will not be supported, unless a subclass overrides them.
-
CloneListIterator
public CloneListIterator(java.util.List<? extends E> list, CloneListIterator.Mutator<E> mutator)
Construct a list iterator on a copy of the specified list. Use the specified list mutator to modify the original list.
-
CloneListIterator
protected CloneListIterator(CloneListIterator.Mutator<E> mutator, java.lang.Object... array)
Internal constructor used by subclasses. Swap order of arguments to prevent collision with other constructor. The passed in array will *not* be cloned.
-
-
Method Detail
-
add
protected void add(int index, E o)Add the specified element to the original list.This method can be overridden by a subclass as an alternative to building a
CloneListIterator.Mutator.
-
hasNext
public boolean hasNext()
-
hasPrevious
public boolean hasPrevious()
- Specified by:
hasPreviousin interfacejava.util.ListIterator<E>
-
nestedNext
protected E nestedNext()
The list passed in during construction held elements of typeE, so this cast is not a problem. We need this cast because all the elements of the original collection were copied into an object array (Object[]).
-
nestedPrevious
protected E nestedPrevious()
The list passed in during construction held elements of typeE, so this cast is not a problem. We need this cast because all the elements of the original collection were copied into an object array (Object[]).
-
next
public E next()
-
nextIndex
public int nextIndex()
- Specified by:
nextIndexin interfacejava.util.ListIterator<E>
-
previousIndex
public int previousIndex()
- Specified by:
previousIndexin interfacejava.util.ListIterator<E>
-
remove
public void remove()
-
remove
protected void remove(int index)
Remove the specified element from the original list.This method can be overridden by a subclass as an alternative to building a
CloneListIterator.Mutator.
-
set
protected void set(int index, E o)Set the specified element in the original list.This method can be overridden by a subclass as an alternative to building a
CloneListIterator.Mutator.
-
-