package com.tinkerpop.blueprints.util; import com.tinkerpop.blueprints.CloseableIterable; import java.util.Iterator; /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ public class WrappingCloseableIterable<T> implements CloseableIterable<T> { private final Iterable<T> iterable; public WrappingCloseableIterable(final Iterable<T> iterable) { this.iterable = iterable; } public Iterator<T> iterator() { return new Iterator<T>() { private final Iterator<T> itty = iterable.iterator(); public void remove() { this.itty.remove(); } public T next() { return this.itty.next(); } public boolean hasNext() { return this.itty.hasNext(); } }; } public void close() { if (this.iterable instanceof CloseableIterable) { ((CloseableIterable) this.iterable).close(); } } public String toString() { return this.iterable.toString(); } }