javap/src/main/java/org/apidesign/javap/Vector.java
author tzezula
Sat, 08 Dec 2012 10:32:04 +0100
branchexceptions
changeset 287 6f696a0ef12f
parent 167 77f7135b6eb1
child 288 6d1e8eccdc98
permissions -rw-r--r--
'synched w/ trunk'
jaroslav@149
     1
/*
jaroslav@149
     2
 * To change this template, choose Tools | Templates
jaroslav@149
     3
 * and open the template in the editor.
jaroslav@149
     4
 */
jtulach@167
     5
package org.apidesign.javap;
jaroslav@149
     6
jaroslav@149
     7
/** A JavaScript ready replacement for java.util.Vector
jaroslav@149
     8
 *
jaroslav@149
     9
 * @author Jaroslav Tulach <jtulach@netbeans.org>
jaroslav@149
    10
 */
tzezula@287
    11
public final class Vector {
jaroslav@150
    12
    private Object[] arr;
jaroslav@150
    13
    
jaroslav@149
    14
    Vector() {
jaroslav@149
    15
    }
jaroslav@149
    16
jaroslav@149
    17
    Vector(int i) {
jaroslav@150
    18
        this();
jaroslav@149
    19
    }
jaroslav@149
    20
jaroslav@149
    21
    void add(Object objectType) {
jaroslav@150
    22
        addElement(objectType);
jaroslav@149
    23
    }
jaroslav@149
    24
    void addElement(Object obj) {
jaroslav@151
    25
        final int s = size();
jaroslav@151
    26
        setSize(s + 1);
jaroslav@151
    27
        setElementAt(obj, s);
jaroslav@149
    28
    }
jaroslav@149
    29
tzezula@287
    30
    public int size() {
jaroslav@150
    31
        return arr == null ? 0 : arr.length;
jaroslav@149
    32
    }
jaroslav@149
    33
jaroslav@152
    34
    void copyInto(Object[] newArr) {
jaroslav@152
    35
        if (arr == null) {
jaroslav@152
    36
            return;
jaroslav@152
    37
        }
jaroslav@152
    38
        int min = Math.min(newArr.length, arr.length);
jaroslav@152
    39
        for (int i = 0; i < min; i++) {
jaroslav@152
    40
            newArr[i] = arr[i];
jaroslav@152
    41
        }
jaroslav@149
    42
    }
jaroslav@149
    43
tzezula@287
    44
    public Object elementAt(int index) {
jaroslav@150
    45
        return arr[index];
jaroslav@149
    46
    }
jaroslav@149
    47
jaroslav@150
    48
    void setSize(int len) {
jaroslav@152
    49
        Object[] newArr = new Object[len];
jaroslav@152
    50
        copyInto(newArr);
jaroslav@152
    51
        arr = newArr;
jaroslav@149
    52
    }
jaroslav@149
    53
jaroslav@150
    54
    void setElementAt(Object val, int index) {
jaroslav@150
    55
        arr[index] = val;
jaroslav@149
    56
    }
jaroslav@149
    57
}