X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2FAnalysis%2FSSJava%2FNTuple.java;h=396b4b72da89af0f7568800d221584e9f2ef93f3;hb=a7f1174555e6acecd448b544a65898efdc02129a;hp=c95bc6019d1e51843810496802224300cff0ea06;hpb=7f02cd3ae9e18c7a266248ef3d0becfac01a740e;p=IRC.git diff --git a/Robust/src/Analysis/SSJava/NTuple.java b/Robust/src/Analysis/SSJava/NTuple.java index c95bc601..396b4b72 100644 --- a/Robust/src/Analysis/SSJava/NTuple.java +++ b/Robust/src/Analysis/SSJava/NTuple.java @@ -1,16 +1,24 @@ package Analysis.SSJava; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collection; import java.util.List; -import java.util.Set; public class NTuple { private List elements; - public NTuple(T... elements) { - this.elements = Arrays.asList(elements); + public NTuple(List l) { + this.elements = new ArrayList(); + this.elements.addAll(l); + } + + public NTuple(NTuple tuple) { + this(tuple.toList()); + } + + public List toList() { + return elements; } public NTuple() { @@ -21,7 +29,7 @@ public class NTuple { return elements.toString(); } - public T at(int index) { + public T get(int index) { return elements.get(index); } @@ -29,12 +37,18 @@ public class NTuple { return elements.size(); } - public void addElement(T newElement) { + public void add(T newElement) { this.elements.add(newElement); } - public void addSet(Set set) { - this.elements.addAll(set); + public void addAll(Collection all) { + this.elements.addAll(all); + } + + public void addAll(NTuple tuple) { + for (int i = 0; i < tuple.size(); i++) { + elements.add(tuple.get(i)); + } } public boolean equals(Object o) { @@ -45,11 +59,60 @@ public class NTuple { if (o == null || o.getClass() != this.getClass()) { return false; } - return (((NTuple) o).elements).equals(elements); + return (((NTuple) o).elements).equals(elements); } public int hashCode() { return elements.hashCode(); } + public void removeAt(int i) { + elements.remove(i); + } + + public List getList() { + return elements; + } + + public boolean startsWith(T prefix) { + return get(0).equals(prefix); + } + + public boolean startsWith(NTuple prefix) { + + if (prefix.size() > size()) { + return false; + } + + for (int i = 0; i < prefix.size(); i++) { + if (!prefix.get(i).equals(get(i))) { + return false; + } + } + return true; + + } + + public NTuple subList(int startIdx, int endIdx) { + + NTuple subList = new NTuple(); + + for (int i = startIdx; i < endIdx; i++) { + subList.add(elements.get(i)); + } + + return subList; + + } + + public T getLastElement() { + return elements.get(elements.size() - 1); + } + + public NTuple clone() { + NTuple clone = new NTuple(); + clone.addAll(this); + return clone; + } + }