package de.invesdwin.util.collections.iterable; import javax.annotation.concurrent.Immutable; import de.invesdwin.util.error.FastNoSuchElementException; @Immutable public final class EmptyCloseableIterator<E> implements ICloseableIterator<E> { @SuppressWarnings("rawtypes") private static final EmptyCloseableIterator INSTANCE = new EmptyCloseableIterator(); private EmptyCloseableIterator() {} @Override public boolean hasNext() { return false; } @Override public E next() { throw new FastNoSuchElementException("EmptyCloseableIterator: always empty"); } @Override public void close() {} @SuppressWarnings("unchecked") public static <T> EmptyCloseableIterator<T> getInstance() { return INSTANCE; } }