package com.tinkerpop.pipes.util.iterators;
import java.util.Iterator;
/**
* HistoryIterator wraps an iterator. It will behave like the wrapped iterator.
* However, it will remember what was last next()'ed object out of the iterator via getLast().
*
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class HistoryIterator<T> implements Iterator<T> {
private final Iterator<T> iterator;
private T last;
public HistoryIterator(final Iterator<T> iterator) {
this.iterator = iterator;
}
public boolean hasNext() {
return this.iterator.hasNext();
}
public T next() {
this.last = this.iterator.next();
return last;
}
public T getLast() {
return this.last;
}
public void remove() {
throw new UnsupportedOperationException();
}
}