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