changes.
[IRC.git] / Robust / src / Analysis / SSJava / HierarchyGraph.java
index 852206af43b0a4377b7f3a40e10666dd82b6c05a..5b0b85f257493d8b68355c418ab72dce7b39c678 100644 (file)
@@ -1098,4 +1098,32 @@ public class HierarchyGraph {
     }
     bw.write(node.getName() + " [label=\"" + nodeName + "\"]" + ";\n");
   }
+
+  public int countHopFromTopLocation(HNode node) {
+
+    Set<HNode> inNodeSet = getIncomingNodeSet(node);
+    int count = 0;
+    if (inNodeSet.size() > 0) {
+      count = recurCountHopFromTopLocation(inNodeSet, 1);
+    }
+
+    return count;
+  }
+
+  private int recurCountHopFromTopLocation(Set<HNode> nodeSet, int curCount) {
+
+    int max = curCount;
+    for (Iterator iterator = nodeSet.iterator(); iterator.hasNext();) {
+      HNode node = (HNode) iterator.next();
+      Set<HNode> inNodeSet = getIncomingNodeSet(node);
+      if (inNodeSet.size() > 0) {
+        int recurCount = recurCountHopFromTopLocation(inNodeSet, curCount + 1);
+        if (max < recurCount) {
+          max = recurCount;
+        }
+      }
+    }
+    return max;
+  }
+
 }