changes.
[IRC.git] / Robust / src / Analysis / SSJava / FlowGraph.java
index 2031460dd48cc983a8bd974aabfa0d93b6ce4314..2e57d668cc9faef5ac7a222957aa99ac2c97a6dc 100644 (file)
@@ -194,7 +194,6 @@ public class FlowGraph {
   public Set<FlowNode> getNodeSet() {
     Set<FlowNode> set = new HashSet<FlowNode>();
     set.addAll(mapDescTupleToInferNode.values());
-    System.out.println("NODESET=" + set);
     return set;
   }
 
@@ -876,6 +875,29 @@ public class FlowGraph {
 
   }
 
+  public void updateTuple(FlowNode node, NTuple<Descriptor> newTuple) {
+
+    NTuple<Descriptor> curTuple = node.getCurrentDescTuple();
+    Set<FlowEdge> inEdgeSet = getInEdgeSet(node);
+    for (Iterator iterator = inEdgeSet.iterator(); iterator.hasNext();) {
+      FlowEdge flowEdge = (FlowEdge) iterator.next();
+      if (flowEdge.getEndTuple().equals(curTuple)) {
+        flowEdge.setEndTuple(newTuple);
+      }
+    }
+
+    Set<FlowEdge> outEdgeSet = getOutEdgeSet(node);
+    for (Iterator iterator = outEdgeSet.iterator(); iterator.hasNext();) {
+      FlowEdge flowEdge = (FlowEdge) iterator.next();
+      if (flowEdge.getInitTuple().equals(curTuple)) {
+        flowEdge.setInitTuple(newTuple);
+      }
+    }
+
+    node.setBaseTuple(newTuple);
+
+  }
+
   public void removeNode(FlowNode node) {
 
     NTuple<Descriptor> tuple = node.getCurrentDescTuple();