javap/src/main/java/org/apidesign/javap/Vector.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 12 Dec 2012 20:35:01 +0100
branchbenchmarks
changeset 313 398110b3eee6
parent 152 2cda429aeb49
child 287 6f696a0ef12f
child 316 8da329789435
permissions -rw-r--r--
Backed out changeset 5a053b8f40ad: Now when the test finally passed, we can increase the time out again.wq
     1 /*
     2  * To change this template, choose Tools | Templates
     3  * and open the template in the editor.
     4  */
     5 package org.apidesign.javap;
     6 
     7 /** A JavaScript ready replacement for java.util.Vector
     8  *
     9  * @author Jaroslav Tulach <jtulach@netbeans.org>
    10  */
    11 final class Vector {
    12     private Object[] arr;
    13     
    14     Vector() {
    15     }
    16 
    17     Vector(int i) {
    18         this();
    19     }
    20 
    21     void add(Object objectType) {
    22         addElement(objectType);
    23     }
    24     void addElement(Object obj) {
    25         final int s = size();
    26         setSize(s + 1);
    27         setElementAt(obj, s);
    28     }
    29 
    30     int size() {
    31         return arr == null ? 0 : arr.length;
    32     }
    33 
    34     void copyInto(Object[] newArr) {
    35         if (arr == null) {
    36             return;
    37         }
    38         int min = Math.min(newArr.length, arr.length);
    39         for (int i = 0; i < min; i++) {
    40             newArr[i] = arr[i];
    41         }
    42     }
    43 
    44     Object elementAt(int index) {
    45         return arr[index];
    46     }
    47 
    48     void setSize(int len) {
    49         Object[] newArr = new Object[len];
    50         copyInto(newArr);
    51         arr = newArr;
    52     }
    53 
    54     void setElementAt(Object val, int index) {
    55         arr[index] = val;
    56     }
    57 }