allow printing of objects with toString()
[IRC.git] / Robust / src / ClassLibrary / Vector.java
1 public class Vector {
2   Object[] array;
3   int size;
4   int capacityIncrement;
5
6   public Vector() {
7     capacityIncrement=0;
8     size=0;
9     array=new Object[10];
10   }
11
12   public void clear() {
13     size=0;
14     array=new Object[10];
15   }
16
17   public int indexOf(Object elem) {
18     return indexOf(elem, 0);
19   }
20
21   public int indexOf(Object elem, int index) {
22     for(int i=index; i<size; i++) {
23       if (elem.equals(array[i]))
24         return i;
25     }
26     return -1;
27   }
28
29   public Object elementAt(int index) {
30     if (index<0 || index >=size) {
31       System.printString("Illegal Vector.elementAt\n");
32       System.exit(-1);
33       return null;
34     }
35     return array[index];
36   }
37
38   public void setElementAt(Object obj, int index) {
39     if (index>=size)
40       ensureCapacity(index+1);
41     if (index>=0 && index <size)
42       array[index]=obj;
43     else {
44       System.printString("Illegal Vector.setElementAt\n");
45       System.exit(-1);
46     }
47   }
48
49   private ensureCapacity(int minCapacity) {
50     if (minCapacity>array.length) {
51       int newsize;
52       if (capacityIncrement<=0)
53         newsize=array.length*2;
54       else
55         newsize=array.length+capacityIncrement;
56       if (newsize<minCapacity)
57         newsize=minCapacity;
58       Object [] newarray=new Object[newsize];
59       for(int i=0; i<size; i++)
60         newarray[i]=array[i];
61       array=newarray;
62     }
63   }
64
65   public int size() {
66     return size;
67   }
68
69   public Enumeration elements() {
70     System.printString("Vector.elements not implemented\n");
71     System.exit(-1);
72   }
73
74   public void addElement(Object obj) {
75     if (size==array.length) {
76       ensureCapacity(size+1);
77     }
78     array[size++]=obj;
79   }
80
81   public void insertElementAt(Object obj, int index) {
82     if (index<0||index>size) {
83       System.printString("Illegal Vector.insertElementAt\n");
84       System.exit(-1);
85     }
86
87     if (size==array.length) {
88       ensureCapacity(size+1);
89     }
90     size++;
91     for(int i=size-1; i>index; --i) {
92       array[i] = array[i-1];
93     }
94     array[index] = obj;
95   }
96
97   public void removeElementAt(int index) {
98     if (index<0||index>=size) {
99       System.printString("Illegal Vector.removeElementAt\n");
100       System.exit(-1);
101     }
102     for(int i=index; i<(size-1); i++) {
103       array[i]=array[i+1];
104     }
105     size--;
106   }
107
108   public void removeAllElements() {
109     int s = size;
110     for(int i = 0; i<s; ++i ) {
111       removeElementAt(0);
112     }
113   }
114 }