changes on the composite location generation (but still it doesn't work) & found...
[IRC.git] / Robust / src / Analysis / SSJava / NodeTupleSet.java
index 62c313b7856f0f5c5f79a3970e9f43a53bb10d7d..c8e80cb75513f71c74e2347a9cf3c1e2d95a239c 100644 (file)
@@ -10,10 +10,13 @@ import IR.Descriptor;
 
 public class NodeTupleSet {
 
-  private List<NTuple<Descriptor>> list;
+  private ArrayList<NTuple<Descriptor>> list;
+
+  private ArrayList<NTuple<Location>> globalLocTupleList;
 
   public NodeTupleSet() {
     list = new ArrayList<NTuple<Descriptor>>();
+    globalLocTupleList = new ArrayList<NTuple<Location>>();
   }
 
   public void addTuple(NTuple<Descriptor> tuple) {
@@ -28,6 +31,14 @@ public class NodeTupleSet {
     list.add(tuple);
   }
 
+  public void addGlobalFlowTuple(NTuple<Location> tuple) {
+    globalLocTupleList.add(tuple);
+  }
+
+  public Iterator<NTuple<Location>> globalIterator() {
+    return globalLocTupleList.iterator();
+  }
+
   public void removeTuple(NTuple<Descriptor> tuple) {
     list.remove(tuple);
   }
@@ -37,7 +48,13 @@ public class NodeTupleSet {
   }
 
   public String toString() {
-    return list.toString();
+    String str = list.toString();
+
+    if (globalLocTupleList.size() > 0) {
+      str += " GlobalFlow=" + globalLocTupleList.toString();
+    }
+
+    return str;
   }
 
   public Set<NTuple<Descriptor>> getSet() {
@@ -62,4 +79,23 @@ public class NodeTupleSet {
   public void clear() {
     list.clear();
   }
+
+  public int globalLocTupleSize() {
+    return globalLocTupleList.size();
+  }
+
+  private void setGlobalLocTupleList(ArrayList<NTuple<Location>> in) {
+    globalLocTupleList = in;
+  }
+
+  private void setDescTupleList(ArrayList<NTuple<Descriptor>> in) {
+    list = in;
+  }
+
+  public NodeTupleSet clone() {
+    NodeTupleSet set = new NodeTupleSet();
+    set.setDescTupleList((ArrayList<NTuple<Descriptor>>) list.clone());
+    set.setGlobalLocTupleList((ArrayList<NTuple<Location>>) globalLocTupleList.clone());
+    return set;
+  }
 }