Class AbstractCloseableIteration<E>

java.lang.Object
org.eclipse.rdf4j.common.iteration.AbstractCloseableIteration<E>
All Implemented Interfaces:
AutoCloseable, Iterator<E>, CloseableIteration<E>
Direct Known Subclasses:
AbstractCloseableIteratorIteration, CloseDependentConnectionIteration, CollectionIteration, ConvertingIteration, DelayedIteration, ExceptionConvertingIteration, GraphToBindingSetConversionIteration, IterationWrapper, LookAheadIteration, PrintingIteration, QueryContextIteration, QueryResultIteration, RepositoryResult, SingleBindingSetIteration, SingletonIteration, StatementConversionIteration, StopRemainingExecutionsOnCloseIteration, ThreadSafeDelayedIteration

public abstract class AbstractCloseableIteration<E> extends Object implements CloseableIteration<E>
Base class for CloseableIterations offering common functionality. This class keeps track of whether the iteration has been closed and handles multiple calls to close() by ignoring all but the first call.

Instances of this class is not safe to be accessed from multiple threads at the same time.

  • Constructor Details

    • AbstractCloseableIteration

      public AbstractCloseableIteration()
  • Method Details

    • isClosed

      public final boolean isClosed()
      Checks whether this CloseableIteration has been closed.
      Returns:
      true if the CloseableIteration has been closed, false otherwise.
    • close

      public final void close()
      Calls handleClose() upon first call and makes sure the resource closures are only executed once.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface CloseableIteration<E>
    • handleClose

      protected abstract void handleClose()
      Called by close() when it is called for the first time. This method is only called once on each iteration. By default, this method does nothing.