Package org.eclipse.rdf4j.common.iteration

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

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

- All Implemented Interfaces:
    `AutoCloseable`, `CloseableIteration<E,​X>`, `Iteration<E,​X>`
  Direct Known Subclasses:
    `CompatibleBindingSetFilter`, `DistinctIteration`, `FilteringIteration`, `FilterIterator`, `IntersectIteration`, `MinusIteration`, `OffsetIteration`, `ReducedIteration`, `SPARQLMinusIteration`

      public abstract class FilterIteration<E,​X extends Exception>
      extends IterationWrapper<E,​X>

  A CloseableIteration that wraps another Iteration, applying a filter on the objects that are returned. Subclasses must implement the accept method to indicate which objects should be returned.

- - ### Field Summary

    - ### Fields inherited from class org.eclipse.rdf4j.common.iteration.IterationWrapper

      `wrappedIter`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `FilterIteration​(Iteration<? extends E,​? extends X> iter)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected abstract boolean` | `accept​(E object)` | Tests whether or not the specified object should be returned by this Iteration.
    `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.

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

      `remove`

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

- - ### Constructor Detail

    - #### FilterIteration

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

      Parameters:
        `iter` -

  - ### Method Detail

    - #### hasNext

          public boolean hasNext()
                          throws X extends Exception

      Description copied from class: `IterationWrapper`
      Checks whether the wrapped Iteration contains more elements, closing this Iteration when this is not the case.
      Specified by:
        `hasNext` in interface `Iteration<E,​X extends Exception>`
      Overrides:
        `hasNext` in class `IterationWrapper<E,​X extends Exception>`
      Returns:
        true if the wrapped Iteration contains more elements, false otherwise.
      Throws:
        `X`
        `X extends Exception`

    - #### next

          public E next()
                 throws X extends Exception

      Description copied from class: `IterationWrapper`
      Returns the next element from the wrapped Iteration.
      Specified by:
        `next` in interface `Iteration<E,​X extends Exception>`
      Overrides:
        `next` in class `IterationWrapper<E,​X extends Exception>`
      Returns:
        the next element in the iteration.
      Throws:
        `X extends Exception`

    - #### accept

          protected abstract boolean accept​(E object)
                                     throws X extends Exception

      Tests whether or not the specified object should be returned by this Iteration. All objects from the wrapped Iteration pass through this method in the same order as they are coming from the wrapped Iteration.
      Parameters:
        `object` - The object to be tested.
      Returns:
        true if the object should be returned, false otherwise.
      Throws:
        `X`
        `X extends Exception`

    - #### handleClose

          protected void handleClose()
                              throws X extends Exception

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