package de.invesdwin.util.collections.iterable; import javax.annotation.concurrent.NotThreadSafe; import de.invesdwin.util.error.FastNoSuchElementException; @NotThreadSafe public class SingleValueIterator<E> implements ICloseableIterator<E> { private E singleValue; public SingleValueIterator(final E singleValue) { this.singleValue = singleValue; } @Override public boolean hasNext() { return singleValue != null; } @Override public E next() { if (hasNext()) { final E ret = singleValue; singleValue = null; return ret; } else { throw new FastNoSuchElementException("SingleValueIterator: hasNext is false"); } } @Override public void close() { singleValue = null; } }