1 Clazz.declarePackage ("javax.swing");
2 Clazz.load (null, "javax.swing.ArrayTable", ["java.util.Hashtable"], function () {
3 c$ = Clazz.decorateAsClass (function () {
5 Clazz.instantialize (this, arguments);
6 }, javax.swing, "ArrayTable", null, Cloneable);
7 Clazz.makeConstructor (c$,
10 Clazz.defineMethod (c$, "put",
11 function (key, value) {
12 if (this.table == null) {
13 this.table = Clazz.newArray (-1, [key, value]);
15 var size = this.size ();
17 if (this.containsKey (key)) {
19 for (var i = 0; i < tmp.length - 1; i += 2) {
20 if (tmp[i].equals (key)) {
25 var array = this.table;
27 var tmp = new Array (i + 2);
28 System.arraycopy (array, 0, tmp, 0, i);
33 if ((size == 8) && this.isArray ()) {
35 }(this.table).put (key, value);
37 Clazz.defineMethod (c$, "get",
40 if (this.table != null) {
41 if (this.isArray ()) {
42 var array = this.table;
43 for (var i = 0; i < array.length - 1; i += 2) {
44 if (array[i].equals (key)) {
49 value = (this.table).get (key);
52 Clazz.defineMethod (c$, "size",
55 if (this.table == null) return 0;
56 if (this.isArray ()) {
57 size = Clazz.doubleToInt ((this.table).length / 2);
59 size = (this.table).size ();
62 Clazz.defineMethod (c$, "containsKey",
65 if (this.table != null) {
66 if (this.isArray ()) {
67 var array = this.table;
68 for (var i = 0; i < array.length - 1; i += 2) {
69 if (array[i].equals (key)) {
74 contains = (this.table).containsKey (key);
77 Clazz.defineMethod (c$, "remove",
82 }if (this.table != null) {
83 if (this.isArray ()) {
85 var array = this.table;
86 for (var i = array.length - 2; i >= 0; i -= 2) {
87 if (array[i].equals (key)) {
93 var tmp = new Array (array.length - 2);
94 System.arraycopy (array, 0, tmp, 0, index);
95 if (index < tmp.length) System.arraycopy (array, index + 2, tmp, index, tmp.length - index);
96 this.table = (tmp.length == 0) ? null : tmp;
98 value = (this.table).remove (key);
99 }if (this.size () == 7 && !this.isArray ()) {
103 Clazz.defineMethod (c$, "clear",
107 Clazz.overrideMethod (c$, "clone",
109 var newArrayTable = new javax.swing.ArrayTable ();
110 if (this.isArray ()) {
111 var array = this.table;
112 for (var i = 0; i < array.length - 1; i += 2) {
113 newArrayTable.put (array[i], array[i + 1]);
116 var tmp = this.table;
117 var keys = tmp.keys ();
118 while (keys.hasMoreElements ()) {
119 var o = keys.nextElement ();
120 newArrayTable.put (o, tmp.get (o));
122 }return newArrayTable;
124 Clazz.defineMethod (c$, "getKeys",
126 if (this.table == null) {
128 }if (this.isArray ()) {
129 var array = this.table;
131 keys = new Array (Clazz.doubleToInt (array.length / 2));
132 }for (var i = 0, index = 0; i < array.length - 1; i += 2, index++) {
133 keys[index] = array[i];
136 var tmp = this.table;
137 var enum_ = tmp.keys ();
138 var counter = tmp.size ();
140 keys = new Array (counter);
141 }while (counter > 0) {
142 keys[--counter] = enum_.nextElement ();
146 Clazz.defineMethod (c$, "isArray",
148 return (Clazz.instanceOf (this.table, Array));
150 Clazz.defineMethod (c$, "grow",
152 var array = this.table;
153 var tmp = new java.util.Hashtable (Clazz.doubleToInt (array.length / 2));
154 for (var i = 0; i < array.length; i += 2) {
155 tmp.put (array[i], array[i + 1]);
159 Clazz.defineMethod (c$, "shrink",
161 var tmp = this.table;
162 var array = new Array (tmp.size () * 2);
163 var keys = tmp.keys ();
165 while (keys.hasMoreElements ()) {
166 var o = keys.nextElement ();
168 array[j + 1] = tmp.get (o);
173 Clazz.defineStatics (c$,
174 "ARRAY_BOUNDARY", 8);