Package nl.vpro.util
Class CallbackIterator<T>
- java.lang.Object
-
- nl.vpro.util.CallbackIterator<T>
-
- All Implemented Interfaces:
AutoCloseable
,Iterator<T>
,CloseableIterator<T>
,CountedIterator<T>
public class CallbackIterator<T> extends Object implements CountedIterator<T>
An iterator that can call a callback function when its iteration is finished.It simply wraps another iterator, which is one iteration ahead on call of 'hasNext'.
- Author:
- Michiel Meeuwissen
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CallbackIterator.Builder<T>
-
Nested classes/interfaces inherited from interface nl.vpro.util.CloseableIterator
CloseableIterator.WrappedCloseableIterator<S>, CloseableIterator.WrappedPeekingCloseableIterator<S>
-
-
Constructor Summary
Constructors Constructor Description CallbackIterator(Iterator<T> wrapped, Runnable callback)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T> CallbackIterator.Builder<T>
builder()
void
close()
protected boolean
findNext()
Long
getCount()
The current position.@NonNull Optional<Long>
getSize()
The size, if known, of the collection this iterator is representingboolean
hasNext()
T
next()
void
remove()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface nl.vpro.util.CountedIterator
getTotalSize, peeking, spliterator, stream
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
Method Detail
-
findNext
protected boolean findNext()
-
getSize
public @NonNull Optional<Long> getSize()
Description copied from interface:CountedIterator
The size, if known, of the collection this iterator is representing- Specified by:
getSize
in interfaceCountedIterator<T>
-
getCount
public Long getCount()
The current position.- Specified by:
getCount
in interfaceCountedIterator<T>
-
close
public void close() throws Exception
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCountedIterator<T>
- Throws:
Exception
-
builder
public static <T> CallbackIterator.Builder<T> builder()
-
-