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

java.lang.Object
  extended by info.aduna.iteration.CloseableIterationBase<E,X>
      extended by info.aduna.iteration.IterationWrapper<E,X>
All Implemented Interfaces:
CloseableIteration<E,X>, Iteration<E,X>
Direct Known Subclasses:
FilterIteration, IteratorWrapper, LimitIteration, LockingIteration

public class IterationWrapper<E,X extends Exception>
extends CloseableIterationBase<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
protected  Iteration<? extends E,? extends X> wrappedIter
          The wrapped Iteration.
 
Fields inherited from class info.aduna.iteration.CloseableIterationBase
logger
 
Constructor Summary
IterationWrapper(Iteration<? extends E,? extends X> iter)
          Creates a new IterationWrapper that operates on the supplied Iteration.
 
Method Summary
protected  void handleClose()
          Closed 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 info.aduna.iteration.CloseableIterationBase
close, isClosed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

wrappedIter

protected Iteration<? extends E,? extends X extends Exception> wrappedIter
The wrapped Iteration.

Constructor Detail

IterationWrapper

public 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.
IllegalStateException - If the Iteration 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
Closed this Iteration and also closes the wrapped Iteration if it is a CloseableIteration.

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


Copyright © 1997-2008 Aduna. All Rights Reserved.