More pieces for new version of analysis
[IRC.git] / Robust / src / Analysis / MLP / SESEEffectsKey.java
1 package Analysis.MLP;
2
3 import Analysis.OwnershipAnalysis.ReachabilitySet;
4 import IR.TypeDescriptor;
5
6 public class SESEEffectsKey {
7
8         private String fd;
9         private TypeDescriptor td;
10         private Integer hrnId;
11         private String hrnUniqueId;
12         private ReachabilitySet rset;
13         private boolean wStrong=false;
14
15         public SESEEffectsKey(String fd, TypeDescriptor td, Integer hrnId, String hrnUniqueId) {
16                 this.fd = fd;
17                 this.td = td;
18                 this.hrnId = hrnId;
19                 this.hrnUniqueId=hrnUniqueId;
20         }
21         
22         public void setRSet(ReachabilitySet rset){
23                 this.rset=rset;
24         }
25         
26         public ReachabilitySet getRSet(){
27                 return rset;
28         }
29         
30         public void setStrong(boolean wStrong){
31                 this.wStrong=wStrong;
32         }
33         
34         public boolean isStrong(){
35                 return wStrong;
36         }
37
38         public String getFieldDescriptor() {
39                 return fd;
40         }
41
42         public TypeDescriptor getTypeDescriptor() {
43                 return td;
44         }
45
46         public Integer getHRNId() {
47                 return hrnId;
48         }
49         
50         public String getHRNUniqueId(){
51                 return hrnUniqueId;
52         }
53
54         public String toString() {
55                 return "(" + td + ")" + fd + "#" + hrnId+":"+hrnUniqueId;
56         }
57
58         public int hashCode() {
59
60                 int hash = 1;
61
62                 if (fd != null) {
63                         hash = hash * 31 + fd.hashCode();
64                 }
65
66                 if (td != null) {
67                         hash += td.getSymbol().hashCode();
68                 }
69
70                 if (hrnId != null) {
71                         hash += hrnId.hashCode();
72                 }
73
74                 return hash;
75
76         }
77
78         public boolean equals(Object o) {
79
80                 if (o == null) {
81                         return false;
82                 }
83
84                 if (!(o instanceof SESEEffectsKey)) {
85                         return false;
86                 }
87
88                 SESEEffectsKey in = (SESEEffectsKey) o;
89
90                 if (fd.equals(in.getFieldDescriptor())
91                                 && td.getSymbol().equals(in.getTypeDescriptor().getSymbol())
92                                 && hrnId.equals(in.getHRNId())) {
93                         return true;
94                 } else {
95                         return false;
96                 }
97
98         }
99         
100 }