info.aduna.iteration
Class LookAheadIteration<E,X extends Exception>

java.lang.Object
  extended by info.aduna.iteration.CloseableIterationBase<E,X>
      extended by info.aduna.iteration.LookAheadIteration<E,X>
All Implemented Interfaces:
CloseableIteration<E,X>, Iteration<E,X>
Direct Known Subclasses:
BottomUpJoinIterator, JoinExecutorBase, JoinIterator, LeftJoinIterator, MemStatementIterator, MultiProjectionIterator, QueueCursor, ServiceCrossProductIteration, SilentIteration, UnionIteration

public abstract class LookAheadIteration<E,X extends Exception>
extends CloseableIterationBase<E,X>

An Iteration that looks one element ahead, if necessary, to handle calls to hasNext(). This is a convenient super class for Iterations that have no easy way to tell if there are any more results, but still should implement the java.util.Iteration interface.


Constructor Summary
LookAheadIteration()
           
 
Method Summary
protected abstract  E getNextElement()
          Gets the next element.
protected  void handleClose()
          Called by CloseableIterationBase.close() when it is called for the first time.
 boolean hasNext()
          Returns true if the iteration has more elements.
 E next()
          Returns the next element in the iteration.
 void remove()
          Throws an UnsupportedOperationException.
 
Methods inherited from class info.aduna.iteration.CloseableIterationBase
close, isClosed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LookAheadIteration

public LookAheadIteration()
Method Detail

getNextElement

protected abstract E getNextElement()
                             throws X extends Exception
Gets the next element. Subclasses should implement this method so that it returns the next element.

Returns:
The next element, or null if no more elements are available.
Throws:
X extends Exception

hasNext

public final boolean hasNext()
                      throws X extends Exception
Description copied from interface: Iteration
Returns true if the iteration has more elements. (In other words, returns true if Iteration.next() would return an element rather than throwing a NoSuchElementException.)

Returns:
true if the iteration has more elements.
Throws:
X
X extends Exception

next

public final E next()
             throws X extends Exception
Description copied from interface: Iteration
Returns the next element in the iteration.

Returns:
the next element in the iteration.
Throws:
X extends Exception

remove

public void remove()
Throws an UnsupportedOperationException.


handleClose

protected void handleClose()
                    throws X extends Exception
Description copied from class: CloseableIterationBase
Called by CloseableIterationBase.close() when it is called for the first time. This method is only called once on each iteration. By default, this method does nothing.

Overrides:
handleClose in class CloseableIterationBase<E,X extends Exception>
Throws:
X
X extends Exception


Copyright © 2001-2012 Aduna. All Rights Reserved.