added some more class support
[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 Vector( int size ) {
13     capacityIncrement=0;
14     this.size=0;
15     array=new Object[size];
16   }
17
18   public void clear() {
19     size=0;
20     array=new Object[10];
21   }
22
23   public int indexOf(Object elem) {
24     return indexOf(elem, 0);
25   }
26
27   public int indexOf(Object elem, int index) {
28     for(int i=index; i<size; i++) {
29       if (elem.equals(array[i]))
30         return i;
31     }
32     return -1;
33   }
34
35   public Object elementAt(int index) {
36     if (index<0 || index >=size) {
37       System.printString("Illegal Vector.elementAt\n");
38       System.exit(-1);
39       return null;
40     }
41     return array[index];
42   }
43
44   public void setElementAt(Object obj, int index) {
45     if (index>=size)
46       ensureCapacity(index+1);
47     if (index>=0 && index <size)
48       array[index]=obj;
49     else {
50       System.printString("Illegal Vector.setElementAt\n");
51       System.exit(-1);
52     }
53   }
54
55   private ensureCapacity(int minCapacity) {
56     if (minCapacity>array.length) {
57       int newsize;
58       if (capacityIncrement<=0)
59         newsize=array.length*2;
60       else
61         newsize=array.length+capacityIncrement;
62       if (newsize<minCapacity)
63         newsize=minCapacity;
64       Object [] newarray=new Object[newsize];
65       for(int i=0; i<size; i++)
66         newarray[i]=array[i];
67       array=newarray;
68     }
69   }
70
71   public int size() {
72     return size;
73   }
74
75   public Enumeration elements() {
76     System.printString("Vector.elements not implemented\n");
77     System.exit(-1);
78   }
79
80   public void addElement(Object obj) {
81     if (size==array.length) {
82       ensureCapacity(size+1);
83     }
84     array[size++]=obj;
85   }
86
87   public void insertElementAt(Object obj, int index) {
88     if (index<0||index>size) {
89       System.printString("Illegal Vector.insertElementAt\n");
90       System.exit(-1);
91     }
92
93     if (size==array.length) {
94       ensureCapacity(size+1);
95     }
96     size++;
97     for(int i=size-1; i>index; --i) {
98       array[i] = array[i-1];
99     }
100     array[index] = obj;
101   }
102
103   public void remove(Object o) {
104     int getIndex;
105     for(int i=0; i<size; i++) {
106       if (o.equals(array[i]))
107         getIndex = i;
108     }
109     for(int i=getIndex; i<(size-1); i++) {
110       array[i]=array[i+1];
111     }
112     size--;
113   }
114
115
116   public void removeElementAt(int index) {
117     if (index<0||index>=size) {
118       System.printString("Illegal Vector.removeElementAt\n");
119       System.exit(-1);
120     }
121     for(int i=index; i<(size-1); i++) {
122       array[i]=array[i+1];
123     }
124     size--;
125   }
126
127   public void removeAllElements() {
128     int s = size;
129     for(int i = 0; i<s; ++i ) {
130       removeElementAt(0);
131     }
132   }
133
134   public boolean contains(Object o) {
135     for(int i = 0; i < size; i++) {
136       if(o.equals(array[i]))
137         return true;
138     }
139     return false;
140   }
141 }