javap/src/main/java/org/apidesign/javap/Vector.java
branchjavap
changeset 167 77f7135b6eb1
parent 152 2cda429aeb49
child 287 6f696a0ef12f
child 316 8da329789435
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/javap/src/main/java/org/apidesign/javap/Vector.java	Fri Nov 16 08:08:36 2012 +0100
     1.3 @@ -0,0 +1,57 @@
     1.4 +/*
     1.5 + * To change this template, choose Tools | Templates
     1.6 + * and open the template in the editor.
     1.7 + */
     1.8 +package org.apidesign.javap;
     1.9 +
    1.10 +/** A JavaScript ready replacement for java.util.Vector
    1.11 + *
    1.12 + * @author Jaroslav Tulach <jtulach@netbeans.org>
    1.13 + */
    1.14 +final class Vector {
    1.15 +    private Object[] arr;
    1.16 +    
    1.17 +    Vector() {
    1.18 +    }
    1.19 +
    1.20 +    Vector(int i) {
    1.21 +        this();
    1.22 +    }
    1.23 +
    1.24 +    void add(Object objectType) {
    1.25 +        addElement(objectType);
    1.26 +    }
    1.27 +    void addElement(Object obj) {
    1.28 +        final int s = size();
    1.29 +        setSize(s + 1);
    1.30 +        setElementAt(obj, s);
    1.31 +    }
    1.32 +
    1.33 +    int size() {
    1.34 +        return arr == null ? 0 : arr.length;
    1.35 +    }
    1.36 +
    1.37 +    void copyInto(Object[] newArr) {
    1.38 +        if (arr == null) {
    1.39 +            return;
    1.40 +        }
    1.41 +        int min = Math.min(newArr.length, arr.length);
    1.42 +        for (int i = 0; i < min; i++) {
    1.43 +            newArr[i] = arr[i];
    1.44 +        }
    1.45 +    }
    1.46 +
    1.47 +    Object elementAt(int index) {
    1.48 +        return arr[index];
    1.49 +    }
    1.50 +
    1.51 +    void setSize(int len) {
    1.52 +        Object[] newArr = new Object[len];
    1.53 +        copyInto(newArr);
    1.54 +        arr = newArr;
    1.55 +    }
    1.56 +
    1.57 +    void setElementAt(Object val, int index) {
    1.58 +        arr[index] = val;
    1.59 +    }
    1.60 +}