Class SnapshotCloneListIterable<E>
java.lang.Object
org.eclipse.persistence.jpa.jpql.utility.iterable.CloneListIterable<E>
org.eclipse.persistence.jpa.jpql.utility.iterable.SnapshotCloneListIterable<E>
- Type Parameters:
E
- the type of elements returned by the list iterable's list iterator
- All Implemented Interfaces:
Iterable<E>
,ListIterable<E>
A
SnapshotCloneListIterable
returns a list iterator on a
"snapshot" of a list, allowing for concurrent access to the original list.
A copy of the list is created when the list iterable is constructed.
As a result, the contents of the list will be the same with
every call to iterator()
, even if the original list is modified via
the list iterator's mutation methods.
The original list passed to the SnapshotCloneListIterable
's
constructor should be thread-safe (e.g. Vector
);
otherwise you run the risk of a corrupted list.
By default, the list iterator returned by a SnapshotCloneListIterable
does not
support the ListIterator
mutation operations; this is because it does not
have access to the original list. But if the SnapshotCloneListIterable
is supplied with a CloneListIterator.Mutator
it will delegate the
ListIterator
mutation operations to the Mutator
.
Alternatively, a subclass can override the list iterable's mutation
methods.
This list iterable is useful for multiple passes over a list that should not be changed (e.g. by another thread) between passes.
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
provide access to "internal" constructorNested classes/interfaces inherited from class org.eclipse.persistence.jpa.jpql.utility.iterable.CloneListIterable
CloneListIterable.DefaultMutator
-
Constructor Summary
ConstructorDescriptionSnapshotCloneListIterable
(List<? extends E> list) Construct a "snapshot" list iterable for the specified list.SnapshotCloneListIterable
(List<? extends E> list, CloneListIterator.Mutator<E> mutator) Construct a "snapshot" list iterable for the specified list. -
Method Summary
Methods inherited from class org.eclipse.persistence.jpa.jpql.utility.iterable.CloneListIterable
add, buildDefaultMutator, remove, set
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
SnapshotCloneListIterable
Construct a "snapshot" list iterable for the specified list. TheListIterator
modify operations will not be supported by the list iterator returned byiterator()
unless a subclass overrides the list iterable's modify method. -
SnapshotCloneListIterable
Construct a "snapshot" list iterable for the specified list. The specified mutator will be used by any generated list iterators to modify the original list.
-
-
Method Details