c95bc6019d1e51843810496802224300cff0ea06
[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 import java.util.Set;
7
8 public class NTuple<T> {
9
10   private List<T> elements;
11
12   public NTuple(T... elements) {
13     this.elements = Arrays.asList(elements);
14   }
15
16   public NTuple() {
17     this.elements = new ArrayList<T>();
18   }
19
20   public String toString() {
21     return elements.toString();
22   }
23
24   public T at(int index) {
25     return elements.get(index);
26   }
27
28   public int size() {
29     return elements.size();
30   }
31
32   public void addElement(T newElement) {
33     this.elements.add(newElement);
34   }
35
36   public void addSet(Set<T> set) {
37     this.elements.addAll(set);
38   }
39
40   public boolean equals(Object o) {
41     if (this == o) {
42       return true;
43     }
44
45     if (o == null || o.getClass() != this.getClass()) {
46       return false;
47     }
48     return (((NTuple) o).elements).equals(elements);
49   }
50
51   public int hashCode() {
52     return elements.hashCode();
53   }
54
55 }