package xapi.collect.impl; import java.util.Iterator; public class SingletonIterator <X> implements Iterable<X>{ private final class Iter implements Iterator<X> { private X object; public Iter(X object) { this.object = object; } @Override public boolean hasNext() { return object != null; } @Override public X next() { try { return object; } finally { object = null; } } @Override public void remove() { object = null; } } private final X singleton; public SingletonIterator(X singleton) { this.singleton = singleton; } @Override public Iterator<X> iterator() { return new Iter(singleton); } }