package com.tinkerpop.blueprints.util.wrappers.readonly; import com.tinkerpop.blueprints.CloseableIterable; import com.tinkerpop.blueprints.Vertex; import java.util.Iterator; /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ class ReadOnlyVertexIterable implements CloseableIterable<Vertex> { private final Iterable<Vertex> iterable; protected ReadOnlyVertexIterable(final Iterable<Vertex> iterable) { this.iterable = iterable; } public Iterator<Vertex> iterator() { return new Iterator<Vertex>() { private Iterator<Vertex> itty = iterable.iterator(); public void remove() { throw new UnsupportedOperationException(ReadOnlyTokens.MUTATE_ERROR_MESSAGE); } public Vertex next() { return new ReadOnlyVertex(this.itty.next()); } public boolean hasNext() { return this.itty.hasNext(); } }; } public void close() { if (this.iterable instanceof CloseableIterable) { ((CloseableIterable) this.iterable).close(); } } }