Package org.eclipse.m2m.atl.emftvm.util

## Class LazyCollection.CachingIterator

- java.lang.Object
- - org.eclipse.m2m.atl.emftvm.util.LazyCollection.ReadOnlyIterator<E>
  - - org.eclipse.m2m.atl.emftvm.util.LazyCollection.CachingIterator

All Implemented Interfaces:
  `java.util.Iterator<E>`

Direct Known Subclasses:
  `EnumConversionList.EnumConversionIterator`, `EnumConversionSetOnSet.EnumConversionIterator`, `LazyBag.BagIntersectionIterator`, `LazyCollection.CachingSetIterator`, `LazyCollection.ExcludingIterator`, `LazyCollection.FilterIterator`, `LazyCollection.IntersectionIterator`, `LazyCollection.IteratorToListIterator`, `LazyCollection.SubtractionIterator`, `ModelImpl.InstanceOfList.InstanceOfIterator`, `OCLOperations.ResolveList.ResolveIterator`

Enclosing class:
  LazyCollection<E>

    public class LazyCollection.CachingIterator
    extends LazyCollection.ReadOnlyIterator<E>

`LazyCollection.ReadOnlyIterator` that caches values of the underlying collection.

### Field Summary

Fields
`protected int` `i`
`protected java.util.Iterator<E>` `inner`

### Constructor Summary

Constructors
`CachingIterator​(java.util.Iterator<E> inner)` Creates a new `LazyCollection.CachingIterator` around `inner`.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `hasNext()`
`E` `next()`
`protected void` `updateCache​(E next)` Updates the cache with `next`.

### Methods inherited from class org.eclipse.m2m.atl.emftvm.util.LazyCollection.ReadOnlyIterator

`remove`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.util.Iterator

`forEachRemaining`

### Field Detail

#### inner

    protected final java.util.Iterator<E> inner

#### i

    protected int i

### Constructor Detail

#### CachingIterator

    public CachingIterator​(java.util.Iterator<E> inner)

Creates a new `LazyCollection.CachingIterator` around `inner`.

Parameters:
  `inner` - the underlying collection iterator

### Method Detail

#### hasNext

    public boolean hasNext()

#### next

    public E next()

#### updateCache

    protected final void updateCache​(E next)

Updates the cache with `next`.

Parameters:
  `next` - the next element returned by this iterator