package com.tinkerpop.blueprints.util.wrappers.event; import com.tinkerpop.blueprints.CloseableIterable; import com.tinkerpop.blueprints.Edge; import java.util.Iterator; /** * A sequence of edges that applies the list of listeners into each edge. * * @author Stephen Mallette */ public class EventEdgeIterable implements CloseableIterable<Edge> { private final Iterable<Edge> iterable; private final EventGraph eventGraph; public EventEdgeIterable(final Iterable<Edge> iterable, final EventGraph eventGraph) { this.iterable = iterable; this.eventGraph = eventGraph; } public Iterator<Edge> iterator() { return new Iterator<Edge>() { private final Iterator<Edge> itty = iterable.iterator(); public void remove() { this.itty.remove(); } public Edge next() { return new EventEdge(this.itty.next(), eventGraph); } public boolean hasNext() { return this.itty.hasNext(); } }; } public void close() { if (this.iterable instanceof CloseableIterable) { ((CloseableIterable) this.iterable).close(); } } }