changes.
[IRC.git] / Robust / src / Analysis / SSJava / VarID.java
1 package Analysis.SSJava;
2
3 import java.util.ArrayList;
4 import IR.Descriptor;
5
6 public class VarID{
7     
8     //contains field and var descriptors
9     //given the case a.b.f it contains descriptors for a,b, and f
10     private ArrayList<Descriptor> var;
11     //properties of ID
12     private boolean isThis;
13     private boolean isGlobal;
14     private boolean isTop;
15     private boolean isReturn;
16
17     public VarID(){
18         this.var = new ArrayList<Descriptor>();
19         isThis = false;
20         isGlobal = false;
21         isTop = false;
22         isReturn = false;
23     }
24     public VarID(Descriptor var){
25         this.var = new ArrayList<Descriptor>();
26         this.var.add(var);
27         isThis = false;
28         isGlobal = false;
29         isTop = false;
30         isReturn = false;
31     }
32     
33     public void addAccess(Descriptor var){
34         this.var.add(var);
35     }
36     
37     public ArrayList<Descriptor> getDesc(){
38         return var;
39     }
40
41     public void setThis(){
42         isThis = true;
43     }
44     
45     public boolean isThis(){
46         return isThis;
47     }
48
49     public void setGlobal(){
50         isGlobal = true;
51     }
52
53     public boolean isGlobal(){
54         return isGlobal;
55     }
56
57     public void setTop(){
58         isTop = true;
59     }
60     
61     public boolean isTop(){
62         return isTop;
63     }
64     
65     public void setReturn(){
66         isReturn = true;
67     }
68
69     public boolean isReturn(){
70         return isReturn;
71     }
72
73     public boolean equals(VarID id){
74         return var.equals(id.getDesc());
75     }
76
77     public String toString(){
78         if(isReturn)
79             return "RETURN";
80         String toReturn = "";
81         for(Descriptor d: var)
82             toReturn += d.toString() + " ";
83         return toReturn;
84     }
85 }