Package org.apache.lucene.internal.hppc

# Class AbstractIterator<E>

java.lang.Object
org.apache.lucene.internal.hppc.AbstractIterator<E>

All Implemented Interfaces:
  `Iterator<E>`

Direct Known Subclasses:
  `CharHashSet.EntryIterator`, `IntHashSet.EntryIterator`, `LongHashSet.EntryIterator`

public abstract class AbstractIterator<E> extends Object implements Iterator<E>
Simplifies the implementation of iterators a bit. Modeled loosely after Google Guava's API.

Forked from com.carrotsearch.hppc.AbstractIterator

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractIterator()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected final E`
  `done()`
  Call when done.
  `protected abstract E`
  `fetch()`
  Fetch next element.
  `boolean`
  `hasNext()`
  `E`
  `next()`
  `void`
  `remove()`
  Default implementation throws `UnsupportedOperationException`.

  ### 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`

- ## Constructor Details

  - ### AbstractIterator

    public AbstractIterator()

- ## Method Details

  - ### hasNext

    public boolean hasNext()
    Specified by:
      `hasNext` in interface `Iterator<E>`

  - ### next

    public E next()
    Specified by:
      `next` in interface `Iterator<E>`

  - ### remove

    public void remove()
    Default implementation throws `UnsupportedOperationException`.
    Specified by:
      `remove` in interface `Iterator<E>`

  - ### fetch

    protected abstract E fetch()
    Fetch next element. The implementation must return `done()` when all elements have been fetched.
    Returns:
      Returns the next value for the iterator or chain-calls `done()`.

  - ### done

    protected final E done()
    Call when done.
    Returns:
      Returns a unique sentinel value to indicate end-of-iteration.