more changes.
[IRC.git] / Robust / src / Analysis / SSJava / CompositeLocation.java
1 package Analysis.SSJava;
2
3 import IR.TypeExtension;
4
5 public class CompositeLocation implements TypeExtension {
6
7   protected NTuple<Location> locTuple;
8
9   public CompositeLocation() {
10     locTuple = new NTuple<Location>();
11   }
12
13   public CompositeLocation(Location loc) {
14     locTuple = new NTuple<Location>();
15     locTuple.addElement(loc);
16   }
17
18   public NTuple<Location> getTuple() {
19     return locTuple;
20   }
21
22   public int getSize() {
23     return locTuple.size();
24   }
25
26   public void addLocation(Location loc) {
27     locTuple.addElement(loc);
28   }
29
30   public Location get(int idx) {
31     return locTuple.get(idx);
32   }
33
34   public boolean isEmpty() {
35     return locTuple.size() == 0;
36   }
37
38   public String toString() {
39
40     String rtr = "CompLoc[";
41
42     int tupleSize = locTuple.size();
43     for (int i = 0; i < tupleSize; i++) {
44       Location locElement = locTuple.get(i);
45       if (i != 0) {
46         rtr += ",";
47       }
48       rtr += locElement;
49     }
50     rtr += "]";
51
52     return rtr;
53   }
54
55   public boolean equals(Object o) {
56
57     if (!(o instanceof CompositeLocation)) {
58       return false;
59     }
60
61     CompositeLocation compLoc = (CompositeLocation) o;
62
63     if (compLoc.getTuple().equals(getTuple())) {
64       return true;
65     } else {
66       return false;
67     }
68
69   }
70
71   public int hashCode() {
72
73     return locTuple.hashCode();
74
75   }
76
77 }