org.eigenbase.runtime
Class RestartableIteratorTupleIter
java.lang.Object
org.eigenbase.runtime.AbstractTupleIter
org.eigenbase.runtime.RestartableIteratorTupleIter
- All Implemented Interfaces:
- TupleIter, ClosableAllocation
public class RestartableIteratorTupleIter
- extends AbstractTupleIter
RestartableIteratorTupleIter
adapts an underlying RestartableIterator
as a TupleIter
. It is an imperfect adaptor;
fetchNext()
blocks when a real TupleIter would return TupleIter.NoDataReason.UNDERFLOW
.
- Version:
- $Id: //open/dev/farrago/src/org/eigenbase/runtime/RestartableIteratorTupleIter.java#8 $
- Author:
- John V. Sichi
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
iterator
private final RestartableIterator iterator
RestartableIteratorTupleIter
public RestartableIteratorTupleIter(RestartableIterator iterator)
fetchNext
public Object fetchNext()
- Description copied from interface:
TupleIter
- Returns the next element in the iteration. If there is no next value, it
returns a value from the
TupleIter.NoDataReason
enumeration indicating why
no data was returned.
If this method returns TupleIter.NoDataReason.END_OF_DATA
, no further
data will be returned by this iterator unless TupleIter.restart()
is called.
If this method returns TupleIter.NoDataReason.UNDERFLOW
, no data is
currently available, but may be come available in the future. It is
possible for consecutive calls to return UNDERFLOW and then END_OF_DATA.
The object returned by this method may be re-used for each subsequent
call to fetchNext()
. In other words, callers must either
make certain that the returned value is no longer needed or is copied
before any subsequent calls to fetchNext()
.
- Returns:
- the next element in the iteration, or an instance of
TupleIter.NoDataReason
.
restart
public void restart()
- Description copied from interface:
TupleIter
- Restarts this iterator, so that a subsequent call to
TupleIter.fetchNext()
returns the first element in the collection being
iterated.
- Specified by:
restart
in interface TupleIter
- Overrides:
restart
in class AbstractTupleIter
closeAllocation
public void closeAllocation()
- Description copied from interface:
ClosableAllocation
- Closes this object.