JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / bin / javajs / util / AU.js
1 Clazz.declarePackage ("javajs.util");\r
2 Clazz.load (null, "javajs.util.AU", ["java.util.Arrays", "javajs.util.Lst"], function () {\r
3 c$ = Clazz.declareType (javajs.util, "AU");\r
4 c$.ensureLength = Clazz.defineMethod (c$, "ensureLength", \r
5 function (array, minimumLength) {\r
6 if (array != null && javajs.util.AU.getLength (array) >= minimumLength) return array;\r
7 return javajs.util.AU.arrayCopyObject (array, minimumLength);\r
8 }, "~O,~N");\r
9 c$.ensureLengthS = Clazz.defineMethod (c$, "ensureLengthS", \r
10 function (array, minimumLength) {\r
11 if (array != null && array.length >= minimumLength) return array;\r
12 return javajs.util.AU.arrayCopyS (array, minimumLength);\r
13 }, "~A,~N");\r
14 c$.ensureLengthA = Clazz.defineMethod (c$, "ensureLengthA", \r
15 function (array, minimumLength) {\r
16 if (array != null && array.length >= minimumLength) return array;\r
17 return javajs.util.AU.arrayCopyF (array, minimumLength);\r
18 }, "~A,~N");\r
19 c$.ensureLengthI = Clazz.defineMethod (c$, "ensureLengthI", \r
20 function (array, minimumLength) {\r
21 if (array != null && array.length >= minimumLength) return array;\r
22 return javajs.util.AU.arrayCopyI (array, minimumLength);\r
23 }, "~A,~N");\r
24 c$.ensureLengthShort = Clazz.defineMethod (c$, "ensureLengthShort", \r
25 function (array, minimumLength) {\r
26 if (array != null && array.length >= minimumLength) return array;\r
27 return javajs.util.AU.arrayCopyShort (array, minimumLength);\r
28 }, "~A,~N");\r
29 c$.ensureLengthByte = Clazz.defineMethod (c$, "ensureLengthByte", \r
30 function (array, minimumLength) {\r
31 if (array != null && array.length >= minimumLength) return array;\r
32 return javajs.util.AU.arrayCopyByte (array, minimumLength);\r
33 }, "~A,~N");\r
34 c$.doubleLength = Clazz.defineMethod (c$, "doubleLength", \r
35 function (array) {\r
36 return javajs.util.AU.arrayCopyObject (array, (array == null ? 16 : 2 * javajs.util.AU.getLength (array)));\r
37 }, "~O");\r
38 c$.doubleLengthS = Clazz.defineMethod (c$, "doubleLengthS", \r
39 function (array) {\r
40 return javajs.util.AU.arrayCopyS (array, (array == null ? 16 : 2 * array.length));\r
41 }, "~A");\r
42 c$.doubleLengthF = Clazz.defineMethod (c$, "doubleLengthF", \r
43 function (array) {\r
44 return javajs.util.AU.arrayCopyF (array, (array == null ? 16 : 2 * array.length));\r
45 }, "~A");\r
46 c$.doubleLengthI = Clazz.defineMethod (c$, "doubleLengthI", \r
47 function (array) {\r
48 return javajs.util.AU.arrayCopyI (array, (array == null ? 16 : 2 * array.length));\r
49 }, "~A");\r
50 c$.doubleLengthShort = Clazz.defineMethod (c$, "doubleLengthShort", \r
51 function (array) {\r
52 return javajs.util.AU.arrayCopyShort (array, (array == null ? 16 : 2 * array.length));\r
53 }, "~A");\r
54 c$.doubleLengthByte = Clazz.defineMethod (c$, "doubleLengthByte", \r
55 function (array) {\r
56 return javajs.util.AU.arrayCopyByte (array, (array == null ? 16 : 2 * array.length));\r
57 }, "~A");\r
58 c$.doubleLengthBool = Clazz.defineMethod (c$, "doubleLengthBool", \r
59 function (array) {\r
60 return javajs.util.AU.arrayCopyBool (array, (array == null ? 16 : 2 * array.length));\r
61 }, "~A");\r
62 c$.deleteElements = Clazz.defineMethod (c$, "deleteElements", \r
63 function (array, firstElement, nElements) {\r
64 if (nElements == 0 || array == null) return array;\r
65 var oldLength = javajs.util.AU.getLength (array);\r
66 if (firstElement >= oldLength) return array;\r
67 var n = oldLength - (firstElement + nElements);\r
68 if (n < 0) n = 0;\r
69 var t = javajs.util.AU.newInstanceO (array, firstElement + n);\r
70 if (firstElement > 0) System.arraycopy (array, 0, t, 0, firstElement);\r
71 if (n > 0) System.arraycopy (array, firstElement + nElements, t, firstElement, n);\r
72 return t;\r
73 }, "~O,~N,~N");\r
74 c$.arrayCopyObject = Clazz.defineMethod (c$, "arrayCopyObject", \r
75 function (array, newLength) {\r
76 if (array == null) {\r
77 return null;\r
78 }var oldLength = javajs.util.AU.getLength (array);\r
79 if (newLength == oldLength) return array;\r
80 var t = javajs.util.AU.newInstanceO (array, newLength);\r
81 System.arraycopy (array, 0, t, 0, oldLength < newLength ? oldLength : newLength);\r
82 return t;\r
83 }, "~O,~N");\r
84 c$.newInstanceO = Clazz.defineMethod (c$, "newInstanceO", \r
85 ($fz = function (array, n) {\r
86 {\r
87 if (!array.getClass().getComponentType)\r
88 return new Array(n);\r
89 }}, $fz.isPrivate = true, $fz), "~O,~N");\r
90 c$.getLength = Clazz.defineMethod (c$, "getLength", \r
91 function (array) {\r
92 {\r
93 return array.length\r
94 }}, "~O");\r
95 c$.arrayCopyS = Clazz.defineMethod (c$, "arrayCopyS", \r
96 function (array, newLength) {\r
97 if (newLength < 0) newLength = array.length;\r
98 var t =  new Array (newLength);\r
99 if (array != null) {\r
100 var oldLength = array.length;\r
101 System.arraycopy (array, 0, t, 0, oldLength < newLength ? oldLength : newLength);\r
102 }return t;\r
103 }, "~A,~N");\r
104 c$.arrayCopyII = Clazz.defineMethod (c$, "arrayCopyII", \r
105 function (array, newLength) {\r
106 var t = javajs.util.AU.newInt2 (newLength);\r
107 if (array != null) {\r
108 var oldLength = array.length;\r
109 System.arraycopy (array, 0, t, 0, oldLength < newLength ? oldLength : newLength);\r
110 }return t;\r
111 }, "~A,~N");\r
112 c$.arrayCopyPt = Clazz.defineMethod (c$, "arrayCopyPt", \r
113 function (array, newLength) {\r
114 if (newLength < 0) newLength = array.length;\r
115 var t =  new Array (newLength);\r
116 if (array != null) {\r
117 var oldLength = array.length;\r
118 System.arraycopy (array, 0, t, 0, oldLength < newLength ? oldLength : newLength);\r
119 }return t;\r
120 }, "~A,~N");\r
121 c$.arrayCopyF = Clazz.defineMethod (c$, "arrayCopyF", \r
122 function (array, newLength) {\r
123 if (newLength < 0) newLength = array.length;\r
124 var t =  Clazz.newFloatArray (newLength, 0);\r
125 if (array != null) {\r
126 var oldLength = array.length;\r
127 System.arraycopy (array, 0, t, 0, oldLength < newLength ? oldLength : newLength);\r
128 }return t;\r
129 }, "~A,~N");\r
130 c$.arrayCopyI = Clazz.defineMethod (c$, "arrayCopyI", \r
131 function (array, newLength) {\r
132 if (newLength < 0) newLength = array.length;\r
133 var t =  Clazz.newIntArray (newLength, 0);\r
134 if (array != null) {\r
135 var oldLength = array.length;\r
136 System.arraycopy (array, 0, t, 0, oldLength < newLength ? oldLength : newLength);\r
137 }return t;\r
138 }, "~A,~N");\r
139 c$.arrayCopyRangeI = Clazz.defineMethod (c$, "arrayCopyRangeI", \r
140 function (array, i0, n) {\r
141 if (array == null) return null;\r
142 var oldLength = array.length;\r
143 if (n == -1) n = oldLength;\r
144 if (n == -2) n = Clazz.doubleToInt (oldLength / 2);\r
145 n = n - i0;\r
146 var t =  Clazz.newIntArray (n, 0);\r
147 System.arraycopy (array, i0, t, 0, n);\r
148 return t;\r
149 }, "~A,~N,~N");\r
150 c$.arrayCopyRangeRevI = Clazz.defineMethod (c$, "arrayCopyRangeRevI", \r
151 function (array, i0, n) {\r
152 if (array == null) return null;\r
153 var t = javajs.util.AU.arrayCopyRangeI (array, i0, n);\r
154 if (n < 0) n = array.length;\r
155 for (var i = Clazz.doubleToInt (n / 2); --i >= 0; ) javajs.util.AU.swapInt (t, i, n - 1 - i);\r
156 \r
157 return t;\r
158 }, "~A,~N,~N");\r
159 c$.arrayCopyShort = Clazz.defineMethod (c$, "arrayCopyShort", \r
160 function (array, newLength) {\r
161 if (newLength < 0) newLength = array.length;\r
162 var t =  Clazz.newShortArray (newLength, 0);\r
163 if (array != null) {\r
164 var oldLength = array.length;\r
165 System.arraycopy (array, 0, t, 0, oldLength < newLength ? oldLength : newLength);\r
166 }return t;\r
167 }, "~A,~N");\r
168 c$.arrayCopyByte = Clazz.defineMethod (c$, "arrayCopyByte", \r
169 function (array, newLength) {\r
170 if (newLength < 0) newLength = array.length;\r
171 var t =  Clazz.newByteArray (newLength, 0);\r
172 if (array != null) {\r
173 var oldLength = array.length;\r
174 System.arraycopy (array, 0, t, 0, oldLength < newLength ? oldLength : newLength);\r
175 }return t;\r
176 }, "~A,~N");\r
177 c$.arrayCopyBool = Clazz.defineMethod (c$, "arrayCopyBool", \r
178 function (array, newLength) {\r
179 if (newLength < 0) newLength = array.length;\r
180 var t =  Clazz.newBooleanArray (newLength, false);\r
181 if (array != null) {\r
182 var oldLength = array.length;\r
183 System.arraycopy (array, 0, t, 0, oldLength < newLength ? oldLength : newLength);\r
184 }return t;\r
185 }, "~A,~N");\r
186 c$.swapInt = Clazz.defineMethod (c$, "swapInt", \r
187 function (array, indexA, indexB) {\r
188 var t = array[indexA];\r
189 array[indexA] = array[indexB];\r
190 array[indexB] = t;\r
191 }, "~A,~N,~N");\r
192 c$.dumpArray = Clazz.defineMethod (c$, "dumpArray", \r
193 function (msg, A, x1, x2, y1, y2) {\r
194 var s = "dumpArray: " + msg + "\n";\r
195 for (var x = x1; x <= x2; x++) s += "\t*" + x + "*";\r
196 \r
197 for (var y = y2; y >= y1; y--) {\r
198 s += "\n*" + y + "*";\r
199 for (var x = x1; x <= x2; x++) s += "\t" + (x < A.length && y < A[x].length ? A[x][y] : NaN);\r
200 \r
201 }\r
202 return s;\r
203 }, "~S,~A,~N,~N,~N,~N");\r
204 c$.dumpIntArray = Clazz.defineMethod (c$, "dumpIntArray", \r
205 function (A, n) {\r
206 var str = "";\r
207 for (var i = 0; i < n; i++) str += " " + A[i];\r
208 \r
209 return str;\r
210 }, "~A,~N");\r
211 c$.sortedItem = Clazz.defineMethod (c$, "sortedItem", \r
212 function (v, n) {\r
213 if (v.size () == 0) return null;\r
214 if (v.size () == 1) return v.get (0);\r
215 var keys = v.toArray ( new Array (v.size ()));\r
216 java.util.Arrays.sort (keys);\r
217 return keys[n % keys.length];\r
218 }, "javajs.util.Lst,~N");\r
219 c$.createArrayOfArrayList = Clazz.defineMethod (c$, "createArrayOfArrayList", \r
220 function (size) {\r
221 return  new Array (size);\r
222 }, "~N");\r
223 c$.createArrayOfHashtable = Clazz.defineMethod (c$, "createArrayOfHashtable", \r
224 function (size) {\r
225 return  new Array (size);\r
226 }, "~N");\r
227 c$.swap = Clazz.defineMethod (c$, "swap", \r
228 function (o, i, j) {\r
229 var oi = o[i];\r
230 o[i] = o[j];\r
231 o[j] = oi;\r
232 }, "~A,~N,~N");\r
233 c$.newFloat2 = Clazz.defineMethod (c$, "newFloat2", \r
234 function (n) {\r
235 {\r
236 return Clazz.newArray(n, null);\r
237 }}, "~N");\r
238 c$.newInt2 = Clazz.defineMethod (c$, "newInt2", \r
239 function (n) {\r
240 {\r
241 return Clazz.newArray(n, null);\r
242 }}, "~N");\r
243 c$.newInt3 = Clazz.defineMethod (c$, "newInt3", \r
244 function (nx, ny) {\r
245 {\r
246 return Clazz.newArray(nx, null);\r
247 }}, "~N,~N");\r
248 c$.newFloat3 = Clazz.defineMethod (c$, "newFloat3", \r
249 function (nx, ny) {\r
250 {\r
251 return Clazz.newArray(nx, null);\r
252 }}, "~N,~N");\r
253 c$.newInt4 = Clazz.defineMethod (c$, "newInt4", \r
254 function (n) {\r
255 {\r
256 return Clazz.newArray(n, null);\r
257 }}, "~N");\r
258 c$.newShort2 = Clazz.defineMethod (c$, "newShort2", \r
259 function (n) {\r
260 {\r
261 return Clazz.newArray(n, null);\r
262 }}, "~N");\r
263 c$.newByte2 = Clazz.defineMethod (c$, "newByte2", \r
264 function (n) {\r
265 {\r
266 return Clazz.newArray(n, null);\r
267 }}, "~N");\r
268 c$.newDouble2 = Clazz.defineMethod (c$, "newDouble2", \r
269 function (n) {\r
270 {\r
271 return Clazz.newArray(n, null);\r
272 }}, "~N");\r
273 c$.removeMapKeys = Clazz.defineMethod (c$, "removeMapKeys", \r
274 function (map, root) {\r
275 var list =  new javajs.util.Lst ();\r
276 for (var key, $key = map.keySet ().iterator (); $key.hasNext () && ((key = $key.next ()) || true);) if (key.startsWith (root)) list.addLast (key);\r
277 \r
278 for (var i = list.size (); --i >= 0; ) map.remove (list.get (i));\r
279 \r
280 return list.size ();\r
281 }, "java.util.Map,~S");\r
282 c$.isAS = Clazz.defineMethod (c$, "isAS", \r
283 function (x) {\r
284 {\r
285 return Clazz.isAS(x);\r
286 }}, "~O");\r
287 c$.isASS = Clazz.defineMethod (c$, "isASS", \r
288 function (x) {\r
289 {\r
290 return Clazz.isASS(x);\r
291 }}, "~O");\r
292 c$.isAP = Clazz.defineMethod (c$, "isAP", \r
293 function (x) {\r
294 {\r
295 return Clazz.isAP(x);\r
296 }}, "~O");\r
297 c$.isAF = Clazz.defineMethod (c$, "isAF", \r
298 function (x) {\r
299 {\r
300 return Clazz.isAF(x);\r
301 }}, "~O");\r
302 c$.isAFloat = Clazz.defineMethod (c$, "isAFloat", \r
303 function (x) {\r
304 {\r
305 return Clazz.isAFloat(x);\r
306 }}, "~O");\r
307 c$.isAD = Clazz.defineMethod (c$, "isAD", \r
308 function (x) {\r
309 {\r
310 return Clazz.isAF(x);\r
311 }}, "~O");\r
312 c$.isADD = Clazz.defineMethod (c$, "isADD", \r
313 function (x) {\r
314 {\r
315 return Clazz.isAFF(x);\r
316 }}, "~O");\r
317 c$.isAB = Clazz.defineMethod (c$, "isAB", \r
318 function (x) {\r
319 {\r
320 return Clazz.isAI(x);\r
321 }}, "~O");\r
322 c$.isAI = Clazz.defineMethod (c$, "isAI", \r
323 function (x) {\r
324 {\r
325 return Clazz.isAI(x);\r
326 }}, "~O");\r
327 c$.isAII = Clazz.defineMethod (c$, "isAII", \r
328 function (x) {\r
329 {\r
330 return Clazz.isAII(x);\r
331 }}, "~O");\r
332 c$.isAFF = Clazz.defineMethod (c$, "isAFF", \r
333 function (x) {\r
334 {\r
335 return Clazz.isAFF(x);\r
336 }}, "~O");\r
337 c$.isAFFF = Clazz.defineMethod (c$, "isAFFF", \r
338 function (x) {\r
339 {\r
340 return Clazz.isAFFF(x);\r
341 }}, "~O");\r
342 c$.ensureSignedBytes = Clazz.defineMethod (c$, "ensureSignedBytes", \r
343 function (b) {\r
344 {\r
345 for (var i = b.length; --i >= 0;) {\r
346 var j = b[i] & 0xFF;\r
347 if (j >= 0x80) j -= 0x100;\r
348 b[i] = j;\r
349 }\r
350 }}, "~A");\r
351 });\r