@Override
    public void remove() {
        graph.touch(this);

        final List<Edge> edges = new ArrayList<>();
        this.edges(Direction.BOTH).forEachRemaining(edge -> edges.add(edge));
        edges.stream().filter(edge -> !((TinkerEdge) edge).removed).forEach(Edge::remove);
        TinkerIndexHelper.removeElementIndex(this);
        this.properties = null;
        this.graph.removeVertex(this.id);
        this.removed = true;
    }
@author Marko A. Rodriguez (http://markorodriguez.com)
tinkergraph-gremlin/src/main/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerVertex.java