diff --git a/src/main/java/kieker/analysis/util/graph/Vertex.java b/src/main/java/kieker/analysis/util/graph/Vertex.java index 7e12eefdfc50d729c0f8203c64d4f1f7c28a97c5..1ed1bf83e263ad3f2507bd12134be0fb3379933f 100644 --- a/src/main/java/kieker/analysis/util/graph/Vertex.java +++ b/src/main/java/kieker/analysis/util/graph/Vertex.java @@ -10,6 +10,8 @@ public interface Vertex extends GraphElement { public void removeChildGraph(); + public int getDepth(); + public Iterable<Edge> getEdges(Direction direction); public Iterable<Vertex> getVertices(Direction direction); diff --git a/src/main/java/kieker/analysis/util/graph/impl/VertexImpl.java b/src/main/java/kieker/analysis/util/graph/impl/VertexImpl.java index 7dd55e0b3587d1a1b5aea15146cd5d06032ebc4f..fe7c7ba8b21154b46ddad95a8d241e5c73abea97 100644 --- a/src/main/java/kieker/analysis/util/graph/impl/VertexImpl.java +++ b/src/main/java/kieker/analysis/util/graph/impl/VertexImpl.java @@ -40,6 +40,16 @@ class VertexImpl extends GraphElementImpl implements Vertex { childGraph = null; } + public int getDepth() { + int depth = 0; + GraphImpl graph = this.graph; + while (graph.parentVertex != null) { + graph = graph.parentVertex.graph; + depth++; + } + return depth; + } + @Override public Iterable<Edge> getEdges(final Direction direction) { if (direction.equals(Direction.OUT)) {