package com.tinkerpop.blueprints.util.wrappers.event; import com.tinkerpop.blueprints.Direction; import com.tinkerpop.blueprints.Edge; import com.tinkerpop.blueprints.Vertex; import com.tinkerpop.blueprints.VertexQuery; import com.tinkerpop.blueprints.util.wrappers.WrapperVertexQuery; /** * An vertex with a GraphChangedListener attached. Those listeners are notified when changes occur to * the properties of the vertex. * * @author Stephen Mallette */ public class EventVertex extends EventElement implements Vertex { public EventVertex(final Vertex rawVertex, final EventGraph eventGraph) { super(rawVertex, eventGraph); } public Iterable<Edge> getEdges(final Direction direction, final String... labels) { return new EventEdgeIterable(((Vertex) this.baseElement).getEdges(direction, labels), this.eventGraph); } public Iterable<Vertex> getVertices(final Direction direction, final String... labels) { return new EventVertexIterable(((Vertex) this.baseElement).getVertices(direction, labels), this.eventGraph); } public VertexQuery query() { return new WrapperVertexQuery(((Vertex) this.baseElement).query()) { @Override public Iterable<Vertex> vertices() { return new EventVertexIterable(this.query.vertices(), eventGraph); } @Override public Iterable<Edge> edges() { return new EventEdgeIterable(this.query.edges(), eventGraph); } }; } public Edge addEdge(final String label, final Vertex vertex) { return this.eventGraph.addEdge(null, this, vertex, label); } public Vertex getBaseVertex() { return (Vertex) this.baseElement; } }