1.1 --- a/javap/src/main/java/org/apidesign/javap/Vector.java Fri Nov 16 08:08:36 2012 +0100
1.2 +++ b/javap/src/main/java/org/apidesign/javap/Vector.java Thu Dec 13 23:20:47 2012 +0100
1.3 @@ -4,10 +4,14 @@
1.4 */
1.5 package org.apidesign.javap;
1.6
1.7 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.8 +import org.apidesign.bck2brwsr.core.JavaScriptPrototype;
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 +@JavaScriptPrototype(prototype = "new Array" )
1.15 final class Vector {
1.16 private Object[] arr;
1.17
1.18 @@ -15,22 +19,31 @@
1.19 }
1.20
1.21 Vector(int i) {
1.22 - this();
1.23 }
1.24
1.25 void add(Object objectType) {
1.26 addElement(objectType);
1.27 }
1.28 + @JavaScriptBody(args = { "self", "obj" }, body =
1.29 + "self.push(obj);"
1.30 + )
1.31 void addElement(Object obj) {
1.32 final int s = size();
1.33 setSize(s + 1);
1.34 setElementAt(obj, s);
1.35 }
1.36
1.37 + @JavaScriptBody(args = { "self" }, body =
1.38 + "return self.length;"
1.39 + )
1.40 int size() {
1.41 return arr == null ? 0 : arr.length;
1.42 }
1.43
1.44 + @JavaScriptBody(args = { "self", "newArr" }, body =
1.45 + "for (var i = 0; i < self.length; i++) {\n"
1.46 + + " newArr[i] = self[i];\n"
1.47 + + "}\n")
1.48 void copyInto(Object[] newArr) {
1.49 if (arr == null) {
1.50 return;
1.51 @@ -41,16 +54,22 @@
1.52 }
1.53 }
1.54
1.55 + @JavaScriptBody(args = { "self", "index" }, body =
1.56 + "return self[index];"
1.57 + )
1.58 Object elementAt(int index) {
1.59 return arr[index];
1.60 }
1.61
1.62 - void setSize(int len) {
1.63 + private void setSize(int len) {
1.64 Object[] newArr = new Object[len];
1.65 copyInto(newArr);
1.66 arr = newArr;
1.67 }
1.68
1.69 + @JavaScriptBody(args = { "self", "val", "index" }, body =
1.70 + "self[index] = val;"
1.71 + )
1.72 void setElementAt(Object val, int index) {
1.73 arr[index] = val;
1.74 }