javap/src/main/java/sun/tools/javap/Vector.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 10 Nov 2012 20:31:39 +0100
branchjavap
changeset 150 945817561b9a
parent 149 32653a09f0db
child 151 40f95fe90cdc
permissions -rw-r--r--
Trivial implementation of Hashtable and Vector
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
 */
jaroslav@149
     5
package sun.tools.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
 */
jaroslav@149
    11
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@150
    25
        setSize(size() + 1);
jaroslav@150
    26
        setElementAt(obj, size());
jaroslav@149
    27
    }
jaroslav@149
    28
jaroslav@149
    29
    int size() {
jaroslav@150
    30
        return arr == null ? 0 : arr.length;
jaroslav@149
    31
    }
jaroslav@149
    32
jaroslav@150
    33
    void copyInto(Object[] accflags) {
jaroslav@149
    34
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
jaroslav@149
    35
    }
jaroslav@149
    36
jaroslav@149
    37
    Object elementAt(int index) {
jaroslav@150
    38
        return arr[index];
jaroslav@149
    39
    }
jaroslav@149
    40
jaroslav@150
    41
    void setSize(int len) {
jaroslav@150
    42
        if (arr == null) {
jaroslav@150
    43
            arr = new Object[len];
jaroslav@150
    44
        } else {
jaroslav@150
    45
            Object[] newArr = new Object[len];
jaroslav@150
    46
            int min = Math.min(len, arr.length);
jaroslav@150
    47
            for (int i = 0; i < min; i++) {
jaroslav@150
    48
                newArr[i] = arr[i];
jaroslav@150
    49
            }
jaroslav@150
    50
            arr = newArr;
jaroslav@150
    51
        }
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
}