realized there were two print statements in regression testin different SESEs, breaks...
[IRC.git] / Robust / src / Analysis / MLP / GloballyUniqueTokenTuple.java
1 package Analysis.MLP;
2
3 import Analysis.OwnershipAnalysis.TokenTuple;
4
5 public class GloballyUniqueTokenTuple {
6
7         private Integer token;
8         private boolean isMultiObject;
9         private int arity;
10         private String id;
11
12         public GloballyUniqueTokenTuple(String uniqueID, TokenTuple tt) {
13                 this.id = uniqueID;
14                 this.arity = tt.getArity();
15                 this.token = tt.getToken();
16                 this.isMultiObject = tt.isMultiObject();
17         }
18
19         public boolean isMultiObject() {
20                 return isMultiObject;
21         }
22
23         public int getArity() {
24                 return arity;
25         }
26
27         public int hashCode() {
28                 return id.hashCode() + arity;
29         }
30
31         public String getID() {
32                 return id;
33         }
34
35         public boolean equals(Object o) {
36                 if (o == null) {
37                         return false;
38                 }
39
40                 if (!(o instanceof GloballyUniqueTokenTuple)) {
41                         return false;
42                 }
43
44                 GloballyUniqueTokenTuple tt = (GloballyUniqueTokenTuple) o;
45
46                 return id.equals(tt.getID()) && arity == tt.getArity();
47         }
48
49         public String toString() {
50                 String s = id;
51
52                 if (isMultiObject) {
53                         s += "M";
54                 }
55
56                 if (arity == TokenTuple.ARITY_ZEROORMORE) {
57                         s += "*";
58                 } else if (arity == TokenTuple.ARITY_ONEORMORE) {
59                         s += "+";
60                 }
61
62                 return s;
63         }
64
65 }