changes + bring up uncommited previous changes.
[IRC.git] / Robust / src / Analysis / SSJava / FlowNode.java
index cdd9bd472a939e1d53b3da0a1e2546805b1deb44..a4125c0d9a2017aaf6381a7d96c9dd0c28537be9 100644 (file)
@@ -1,9 +1,9 @@
 package Analysis.SSJava;
 
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Set;
 
+import IR.ClassDescriptor;
 import IR.Descriptor;
 import IR.FieldDescriptor;
 import IR.VarDescriptor;
@@ -11,7 +11,7 @@ import IR.VarDescriptor;
 public class FlowNode {
 
   // descriptor tuple is a unique identifier of the flow node
-  private NTuple<Descriptor> descTuple;
+  protected NTuple<Descriptor> descTuple;
 
   // if the infer node represents the base type of field access,
   // this set contains fields of the base type
@@ -28,6 +28,10 @@ public class FlowNode {
 
   private boolean isSkeleton;
 
+  private boolean isFormHolder = false;
+
+  private NTuple<Descriptor> baseTuple;
+
   public boolean isIntermediate() {
     return isIntermediate;
   }
@@ -36,6 +40,22 @@ public class FlowNode {
     this.isIntermediate = isIntermediate;
   }
 
+  public void setFormHolder(boolean in) {
+    isFormHolder = in;
+  }
+
+  public boolean isFromHolder() {
+    return isFormHolder;
+  }
+
+  public void setBaseTuple(NTuple<Descriptor> in) {
+    baseTuple = in;
+  }
+
+  public NTuple<Descriptor> getBaseTuple() {
+    return baseTuple;
+  }
+
   public Set<FlowNode> getFieldNodeSet() {
     return fieldNodeSet;
   }
@@ -84,14 +104,6 @@ public class FlowNode {
     return descTuple.get(descTuple.size() - 1);
   }
 
-  public boolean isReturn() {
-    return isReturn;
-  }
-
-  public void setReturn(boolean isReturn) {
-    this.isReturn = isReturn;
-  }
-
   public boolean isPrimitiveType() {
     Descriptor desc = descTuple.get(descTuple.size() - 1);
     if (desc instanceof VarDescriptor) {
@@ -111,7 +123,6 @@ public class FlowNode {
     return rtr;
   }
 
-
   public int hashCode() {
     return 7 + descTuple.hashCode();
   }