jaroslav@149: /* jaroslav@149: * To change this template, choose Tools | Templates jaroslav@149: * and open the template in the editor. jaroslav@149: */ jtulach@167: package org.apidesign.javap; jaroslav@149: jaroslav@149: /** A JavaScript ready replacement for java.util.Vector jaroslav@149: * jaroslav@149: * @author Jaroslav Tulach jaroslav@149: */ jaroslav@149: final class Vector { jaroslav@150: private Object[] arr; jaroslav@150: jaroslav@149: Vector() { jaroslav@149: } jaroslav@149: jaroslav@149: Vector(int i) { jaroslav@150: this(); jaroslav@149: } jaroslav@149: jaroslav@149: void add(Object objectType) { jaroslav@150: addElement(objectType); jaroslav@149: } jaroslav@149: void addElement(Object obj) { jaroslav@151: final int s = size(); jaroslav@151: setSize(s + 1); jaroslav@151: setElementAt(obj, s); jaroslav@149: } jaroslav@149: jaroslav@149: int size() { jaroslav@150: return arr == null ? 0 : arr.length; jaroslav@149: } jaroslav@149: jaroslav@152: void copyInto(Object[] newArr) { jaroslav@152: if (arr == null) { jaroslav@152: return; jaroslav@152: } jaroslav@152: int min = Math.min(newArr.length, arr.length); jaroslav@152: for (int i = 0; i < min; i++) { jaroslav@152: newArr[i] = arr[i]; jaroslav@152: } jaroslav@149: } jaroslav@149: jaroslav@149: Object elementAt(int index) { jaroslav@150: return arr[index]; jaroslav@149: } jaroslav@149: jaroslav@150: void setSize(int len) { jaroslav@152: Object[] newArr = new Object[len]; jaroslav@152: copyInto(newArr); jaroslav@152: arr = newArr; jaroslav@149: } jaroslav@149: jaroslav@150: void setElementAt(Object val, int index) { jaroslav@150: arr[index] = val; jaroslav@149: } jaroslav@149: }