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;
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
private boolean isSkeleton;
+ private boolean isFormHolder = false;
+
+ private NTuple<Descriptor> baseTuple;
+
public boolean isIntermediate() {
return isIntermediate;
}
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;
}
}
public void setCompositeLocation(CompositeLocation in) {
+ System.out.println("$$$set compLoc=" + in);
compLoc = in;
}
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) {
return rtr;
}
-// public Iterator<FlowEdge> iteratorOfOutEdges() {
-// return outEdgeSet.iterator();
-// }
-//
-// public void addOutEdge(FlowEdge out) {
-// outEdgeSet.add(out);
-// }
-//
-// public Set<FlowEdge> getOutEdgeSet() {
-// return outEdgeSet;
-// }
-
public int hashCode() {
return 7 + descTuple.hashCode();
}
id += " " + compLoc;
}
- if (isReturn()) {
- property += "R";
- }
-
- if (isSkeleton()) {
- property += "S";
- }
+ // if (isReturn()) {
+ // property += "R";
+ // }
+ //
+ // if (isSkeleton()) {
+ // property += "S";
+ // }
if (property.length() > 0) {
property = " [" + property + "]";