package at.ac.univie.mminf.qskos4j.util; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class Tuple<T> { private List<T> elements; public Tuple(T ... initElements) { elements = new ArrayList<T>(); elements.addAll(Arrays.asList(initElements)); } @Override public boolean equals(Object obj) { if (!(obj instanceof Tuple)) return false; Tuple<?> other = (Tuple<?>) obj; if (other.elements.size() != elements.size()) return false; for (T element : elements) { if (!other.elements.contains(element)) return false; } return true; } public int hashCode() { int hashCode = 0; for (T element : elements) { hashCode += element.hashCode(); } return hashCode; } @Override public String toString() { String ret = "("; Iterator<T> it = elements.iterator(); while (it.hasNext()) { ret += it.next().toString() + (it.hasNext() ? ", " : ""); } ret += ")"; return ret; } public T get(int index) { return elements.get(index); } public T getFirst() { return elements.get(0); } public T getSecond() { return elements.get(1); } public List<T> getElements() { return elements; } }