refactoring the lattice implementation / having a way to declare the variable with...
[IRC.git] / Robust / src / Analysis / SSJava / NTuple.java
1 package Analysis.SSJava;
2
3 import java.util.Arrays;
4 import java.util.List;
5
6 public class NTuple<T> {
7
8   private List<T> elements;
9
10   public NTuple(T ... elements) {
11     this.elements = Arrays.asList(elements);
12   }
13
14   public String toString() {
15     return elements.toString();
16   }
17
18   public T at(int index) {
19     return elements.get(index);
20   }
21
22   public int size() {
23     return elements.size();
24   }
25
26   public void addElement(T newElement) {
27     this.elements.add(newElement);
28   }
29
30   public boolean equals(Object o) {
31     if (this == o) {
32       return true;
33     }
34
35     if (o == null || o.getClass() != this.getClass()) {
36       return false;
37     }
38     return (((NTuple) o).elements).equals(elements);
39   }
40
41   public int hashCode() {
42     return elements.hashCode();
43   }
44
45 }