// this set contains fields of the base type
private Set<FlowNode> fieldNodeSet;
- // set true if this node is driven from a paramter
- private boolean isParameter;
-
// set true if this node stores a return value
private boolean isReturn;
private boolean isIntermediate;
+ private CompositeLocation compLoc;
+
+ private boolean isSkeleton;
+
public boolean isIntermediate() {
return isIntermediate;
}
private Set<FlowEdge> outEdgeSet;
- public FlowNode(NTuple<Descriptor> tuple, boolean isParam) {
+ public FlowNode(NTuple<Descriptor> tuple) {
- this.isParameter = isParam;
+ this.isSkeleton = false;
+ this.isIntermediate = false;
NTuple<Descriptor> base = null;
Descriptor desc = null;
descTuple.add(desc);
}
outEdgeSet = new HashSet<FlowEdge>();
+
}
- public void addFieldNode(FlowNode node) {
- fieldNodeSet.add(node);
+ public void setCompositeLocation(CompositeLocation in) {
+ compLoc = in;
}
- public boolean isParameter() {
- return isParameter;
+ public CompositeLocation getCompositeLocation() {
+ return compLoc;
+ }
+
+ public void addFieldNode(FlowNode node) {
+ fieldNodeSet.add(node);
}
public NTuple<Descriptor> getDescTuple() {
public String toString() {
String rtr = "[FlowNode]:";
- if (isParameter()) {
- rtr += "param:";
+ if (isSkeleton()) {
+ rtr += "SKELETON:";
}
rtr += ":" + descTuple;
return rtr;
id += descTuple.get(i).getSymbol();
}
id += ">";
+
+ if (compLoc != null) {
+ id += " " + compLoc;
+ }
+
return id;
}
public boolean isDeclaratonNode() {
return isDeclarationNode;
}
+
+ public NTuple<Descriptor> getCurrentDescTuple() {
+
+ if (compLoc == null) {
+ return descTuple;
+ }
+
+ NTuple<Descriptor> curDescTuple = new NTuple<Descriptor>();
+ for (int i = 0; i < compLoc.getSize(); i++) {
+ Location locElement = compLoc.get(i);
+ curDescTuple.add(locElement.getLocDescriptor());
+ }
+ return curDescTuple;
+ }
+
+ public boolean isSkeleton() {
+ return isSkeleton;
+ }
+
+ public void setSkeleton(boolean isSkeleton) {
+ this.isSkeleton = isSkeleton;
+ }
+
}