X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2FClassLibrary%2FVector.java;h=adcd4efa6f296556f6a77ff1c015c09ffa0c1779;hb=57888a70a5a1d240517f542b7b3245086a94e0c8;hp=e944d4fbb31623e561658fe800364d5a364f3fd2;hpb=ac6191b514c0e54b468623bf868134e1ce809df5;p=IRC.git diff --git a/Robust/src/ClassLibrary/Vector.java b/Robust/src/ClassLibrary/Vector.java index e944d4fb..adcd4efa 100644 --- a/Robust/src/ClassLibrary/Vector.java +++ b/Robust/src/ClassLibrary/Vector.java @@ -9,6 +9,28 @@ public class Vector { array=new Object[10]; } + public Vector(int size) { + capacityIncrement=0; + this.size=0; + array=new Object[size]; + } + + //used for internal cloning + private Vector(int size, int capacityIncrement, Object[] array) { + this.size = size; + this.capacityIncrement = capacityIncrement; + this.array = new Object[array.length]; + System.arraycopy(array, 0, this.array, 0, size); + } + + public Vector clone() { + return new Vector(size,capacityIncrement, array); + } + + public boolean isEmpty() { + return size==0; + } + public void clear() { size=0; array=new Object[10]; @@ -21,38 +43,55 @@ public class Vector { public int indexOf(Object elem, int index) { for(int i=index; i=size) { - System.printString("Illegal Vector.elementAt"); + if (index<0 | index >=size) { + System.printString("Illegal Vector.elementAt\n"); + System.exit(-1); return null; } return array[index]; } public void setElementAt(Object obj, int index) { - if (index>=0 && index array.length) { int newsize; if (capacityIncrement<=0) - newsize=array.length*2; + newsize=array.length*2; else - newsize=array.length+capacityIncrement; + newsize=array.length+capacityIncrement; if (newsizesize) { + System.printString("Illegal Vector.insertElementAt\n"); + System.exit(-1); + } + + if (size==array.length) { + ensureCapacity(size+1); + } + size++; + for(int i=size-1; i>index; --i) { + array[i] = array[i-1]; + } + array[index] = obj; + } + public void removeElementAt(int index) { - if (index<0||index>=size) - System.printString("Illegal remove"); - for(int i=index; i<(size-1); i++) { - array[i]=array[i+1]; + if (index<0||index>=size) { + System.printString("Illegal Vector.removeElementAt\n"); + System.exit(-1); } + removeElement(array, index, size); size--; + array[size]=null; + } + + public static native void removeElement(Object[] array, int index, int size); + + public void removeAllElements() { + int s = size; + for(int i = 0; i