addressing two problems in the composite location generation: 1) when a parameter...
[IRC.git] / Robust / src / Analysis / SSJava / FlowReturnNode.java
1 package Analysis.SSJava;
2
3 import java.util.HashSet;
4 import java.util.Set;
5
6 import IR.Descriptor;
7 import IR.NameDescriptor;
8 import IR.Tree.MethodInvokeNode;
9
10 public class FlowReturnNode extends FlowNode {
11
12   Set<NTuple<Descriptor>> returnTupleSet;
13   MethodInvokeNode min;
14
15   public FlowReturnNode(NTuple<Descriptor> t, MethodInvokeNode min) {
16     super(t);
17     this.returnTupleSet = new HashSet<NTuple<Descriptor>>();
18     this.min = min;
19   }
20
21   public void setNewTuple(NTuple<Descriptor> in) {
22     returnTupleSet.clear();
23     returnTupleSet.add(in);
24   }
25
26   public void addTupleSet(NodeTupleSet in) {
27     returnTupleSet.addAll(in.getSet());
28   }
29
30   public void addTupleSet(Set<NTuple<Descriptor>> in) {
31     returnTupleSet.addAll(in);
32   }
33
34   public void addTuple(NTuple<Descriptor> in) {
35     returnTupleSet.add(in);
36   }
37
38   public Set<NTuple<Descriptor>> getTupleSet() {
39     return returnTupleSet;
40   }
41
42   public String toString() {
43     String rtr = "[RNODE]:" + descTuple + ":" + min.getMethodName();
44     rtr += ":" + returnTupleSet;
45     return rtr;
46   }
47
48   public String getPrettyID() {
49     String id = min.getMethodName() + "<";
50     String property = "";
51     for (int i = 0; i < descTuple.size(); i++) {
52       if (i != 0) {
53         id += ",";
54       }
55       id += descTuple.get(i).getSymbol();
56     }
57     id += ">";
58
59     id += " " + returnTupleSet;
60
61     return id;
62   }
63 }