Package org.eclipse.rdf4j.common.iteration

## Class IterationWrapper<E,​X extends Exception>

- java.lang.Object
- - org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E,​X>
  - - org.eclipse.rdf4j.common.iteration.IterationWrapper<E,​X>

- All Implemented Interfaces:
    `AutoCloseable`, `CloseableIteration<E,​X>`, `Iteration<E,​X>`
  Direct Known Subclasses:
    `BackgroundGraphResult`, `FilterIteration`, `InsertBindingSetCursor`, `InsertBindingSetCursor`, `IteratingGraphQueryResult`, `IteratingTupleQueryResult`, `LimitIteration`, `LockingIteration`, `SilentIteration`, `TimeLimitIteration`

      public class IterationWrapper<E,​X extends Exception>
      extends AbstractCloseableIteration<E,​X>

  Abstract superclass for Iterations that wrap other Iterations. The abstract class IterationWrapper itself provides default methods that forward method calls to the wrapped Iteration. Subclasses of IterationWrapper should override some of these methods and may also provide additional methods and fields.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Iteration<? extends E,​? extends X>` | `wrappedIter` | Deprecated. This will be changed to private, possibly with an accessor in future.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `IterationWrapper​(Iteration<? extends E,​? extends X> iter)` | Creates a new IterationWrapper that operates on the supplied Iteration.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `handleClose()` | Closes this Iteration and also closes the wrapped Iteration if it is a `CloseableIteration`.
    `boolean` | `hasNext()` | Checks whether the wrapped Iteration contains more elements, closing this Iteration when this is not the case.
    `E` | `next()` | Returns the next element from the wrapped Iteration.
    `void` | `remove()` | Removes the last element that has been returned from the wrapped Iteration.

    - ### Methods inherited from class org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration

      `close, isClosed`

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

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

    - ### Methods inherited from interface org.eclipse.rdf4j.common.iteration.Iteration

      `stream`

- - ### Field Detail

    - #### wrappedIter

          @Deprecated
          protected final Iteration<? extends E,​? extends X extends Exception> wrappedIter

      Deprecated.
      This will be changed to private, possibly with an accessor in future. Do not rely on it.
      The wrapped Iteration.

  - ### Constructor Detail

    - #### IterationWrapper

          protected IterationWrapper​(Iteration<? extends E,​? extends X> iter)

      Creates a new IterationWrapper that operates on the supplied Iteration.
      Parameters:
        `iter` - The wrapped Iteration for this IterationWrapper, must not be null.

  - ### Method Detail

    - #### hasNext

          public boolean hasNext()
                          throws X extends Exception

      Checks whether the wrapped Iteration contains more elements, closing this Iteration when this is not the case.
      Returns:
        true if the wrapped Iteration contains more elements, false otherwise.
      Throws:
        `X`
        `X extends Exception`

    - #### next

          public E next()
                 throws X extends Exception

      Returns the next element from the wrapped Iteration.
      Returns:
        the next element in the iteration.
      Throws:
        `NoSuchElementException` - If all elements have been returned or it has been closed.
        `X extends Exception`

    - #### remove

          public void remove()
                      throws X extends Exception

      Removes the last element that has been returned from the wrapped Iteration.
      Throws:
        `UnsupportedOperationException` - If the wrapped Iteration does not support the remove operation.
        `IllegalStateException` - if the Iteration has been closed, or if `next()` has not yet been called, or `remove()` has already been called after the last call to `next()`.
        `X extends Exception`

    - #### handleClose

          protected void handleClose()
                              throws X extends Exception

      Closes this Iteration and also closes the wrapped Iteration if it is a `CloseableIteration`.
      Overrides:
        `handleClose` in class `AbstractCloseableIteration<E,​X extends Exception>`
      Throws:
        `X`
        `X extends Exception`