2003/05/12 05:02:44
[org.ibex.core.git] / src / org / xwt / util / Vec.java
index ac8b149..433c06d 100644 (file)
@@ -10,7 +10,7 @@ import java.io.*;
  *  java.util.ArrayList.
  *  @see java.util.Vector
  */
-public class Vec implements Serializable {
+public final class Vec implements Serializable {
     
     private Object[] store;
     private int size = 0;
@@ -55,11 +55,18 @@ public class Vec implements Serializable {
         return store[size - 1];
     }
 
+    public void push(Object o) { addElement(o); }
+    public Object pop() {
+       Object ret = lastElement();
+       store[size--] = null;
+       return ret;
+    }
+
     public int size() { return size; }
 
     public void setSize(int newSize) {
         if (newSize < 0) throw new RuntimeException("tried to set size to negative value");
-        if (newSize > size) grow(newSize * 2);
+        if (newSize > store.length) grow(newSize * 2);
         if (newSize < size)
             for(int i=newSize; i<size; i++)
                 store[i] = null;
@@ -71,6 +78,12 @@ public class Vec implements Serializable {
             out[i] = store[i];
     }
 
+    public void fromArray(Object[] in) {
+        setSize(in.length);
+        for(int i=0; i<size; i++)
+            store[i] = in[i];
+    }
+
     public void removeElementAt(int i) {
         if (i >= size || i < 0) throw new RuntimeException("tried to remove an element outside the vector's limits");
         for(int j=i; j<size - 1; j++)