Class ExceptionConvertingIteration<E,X extends Exception>

java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E,X>
org.eclipse.rdf4j.common.iteration.ExceptionConvertingIteration<E,X>
All Implemented Interfaces:
AutoCloseable, CloseableIteration<E,X>, Iteration<E,X>
Direct Known Subclasses:
RepositoryExceptionConvertingIteration

public abstract class ExceptionConvertingIteration<E,X extends Exception> extends AbstractCloseableIteration<E,X>
A CloseableIteration that converts an arbitrary iteration to an iteration with exceptions of type X. Subclasses need to override convert(Exception) to do the conversion.
  • Constructor Details

    • ExceptionConvertingIteration

      protected ExceptionConvertingIteration(Iteration<? extends E,? extends Exception> iter)
      Creates a new ExceptionConvertingIteration that operates on the supplied iteration.
      Parameters:
      iter - The Iteration that this ExceptionConvertingIteration operates on, must not be null.
  • Method Details

    • convert

      protected abstract X convert(Exception e)
      Converts an exception from the underlying iteration to an exception of type X.
    • hasNext

      public boolean hasNext() throws X
      Checks whether the underlying Iteration contains more elements.
      Returns:
      true if the underlying Iteration contains more elements, false otherwise.
      Throws:
      X
    • next

      public E next() throws X
      Returns the next element from the wrapped Iteration.
      Returns:
      the next element in the iteration.
      Throws:
      X
      NoSuchElementException - If all elements have been returned.
      IllegalStateException - If the Iteration has been closed.
    • remove

      public void remove() throws X
      Calls remove() on the underlying 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
      Closes this Iteration as well as the wrapped Iteration if it happens to be a CloseableIteration .
      Overrides:
      handleClose in class AbstractCloseableIteration<E,X extends Exception>
      Throws:
      X