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