1 Clazz.declarePackage ("javajs.util");
2 Clazz.load (null, "javajs.util.PT", ["java.lang.Boolean", "$.Double", "$.Float", "$.Number", "java.util.Map", "javajs.api.JSONEncodable", "javajs.util.AU", "$.DF", "$.Lst", "$.M34", "$.M4", "$.SB"], function () {
3 c$ = Clazz.declareType (javajs.util, "PT");
4 c$.parseInt = Clazz.defineMethod (c$, "parseInt",
6 return javajs.util.PT.parseIntNext (str, Clazz.newIntArray (-1, [0]));
8 c$.parseIntNext = Clazz.defineMethod (c$, "parseIntNext",
11 if (next[0] < 0 || next[0] >= cch) return -2147483648;
12 return javajs.util.PT.parseIntChecked (str, cch, next);
14 c$.parseIntChecked = Clazz.defineMethod (c$, "parseIntChecked",
15 function (str, ichMax, next) {
16 var digitSeen = false;
19 if (ich < 0) return -2147483648;
21 while (ich < ichMax && javajs.util.PT.isWhiteSpace (str, ich)) ++ich;
24 if (ich < ichMax && str.charCodeAt (ich) == 45) {
27 }while (ich < ichMax && (ch = str.charCodeAt (ich)) >= 48 && ch <= 57) {
28 value = value * 10 + (ch - 48);
32 if (!digitSeen) value = -2147483648;
33 else if (negative) value = -value;
37 c$.isWhiteSpace = Clazz.defineMethod (c$, "isWhiteSpace",
40 return (ich >= 0 && ((ch = str.charAt (ich)) == ' ' || ch == '\t' || ch == '\n'));
42 c$.parseFloatChecked = Clazz.defineMethod (c$, "parseFloatChecked",
43 function (str, ichMax, next, isStrict) {
44 var digitSeen = false;
46 if (isStrict && str.indexOf ('\n') != str.lastIndexOf ('\n')) return NaN;
47 while (ich < ichMax && javajs.util.PT.isWhiteSpace (str, ich)) ++ich;
50 if (ich < ichMax && str.charAt (ich) == '-') {
56 while (ich < ichMax && (ch = str.charCodeAt (ich)) >= 48 && ch <= 57) {
57 ival = (ival * 10) + (ch - 48) * 1;
61 var isDecimal = false;
63 var nzero = (ival == 0 ? -1 : 0);
66 while (++ich < ichMax && (ch = str.charCodeAt (ich)) >= 48 && ch <= 57) {
73 }if (iscale < javajs.util.PT.decimalScale.length) {
74 ival2 = (ival2 * 10) + (ch - 48) * 1;
80 } else if (ival2 > 0) {
81 value = ival2 * javajs.util.PT.decimalScale[iscale - 1];
83 if (nzero - 2 < javajs.util.PT.decimalScale.length) {
84 value *= javajs.util.PT.decimalScale[nzero - 2];
86 value *= Math.pow (10, 1 - nzero);
91 }var isExponent = false;
92 if (ich < ichMax && (ch == 69 || ch == 101 || ch == 68)) {
94 if (++ich >= ichMax) return NaN;
95 ch = str.charCodeAt (ich);
96 if ((ch == 43) && (++ich >= ichMax)) return NaN;
98 var exponent = javajs.util.PT.parseIntChecked (str, ichMax, next);
99 if (exponent == -2147483648) return NaN;
100 if (exponent > 0 && exponent <= javajs.util.PT.tensScale.length) value *= javajs.util.PT.tensScale[exponent - 1];
101 else if (exponent < 0 && -exponent <= javajs.util.PT.decimalScale.length) value *= javajs.util.PT.decimalScale[-exponent - 1];
102 else if (exponent != 0) value *= Math.pow (10, exponent);
105 }if (negative) value = -value;
106 if (value == Infinity) value = 3.4028235E38;
107 return (!isStrict || (!isExponent || isDecimal) && javajs.util.PT.checkTrailingText (str, next[0], ichMax) ? value : NaN);
109 c$.checkTrailingText = Clazz.defineMethod (c$, "checkTrailingText",
110 function (str, ich, ichMax) {
112 while (ich < ichMax && (javajs.util.PT.isWhitespace (ch = str.charAt (ich)) || ch == ';')) ++ich;
114 return (ich == ichMax);
116 c$.parseFloatArray = Clazz.defineMethod (c$, "parseFloatArray",
118 return javajs.util.PT.parseFloatArrayNext (str, Clazz.newIntArray (1, 0), null, null, null);
120 c$.parseFloatArrayInfested = Clazz.defineMethod (c$, "parseFloatArrayInfested",
121 function (tokens, data) {
122 var len = data.length;
123 var nTokens = tokens.length;
126 for (var i = 0; i >= 0 && i < len && n < nTokens; i++) {
128 while (Float.isNaN (f = javajs.util.PT.parseFloat (tokens[n++])) && n < nTokens) {
130 if (!Float.isNaN (f)) data[(max = i)] = f;
131 if (n == nTokens) break;
135 c$.parseFloatArrayNext = Clazz.defineMethod (c$, "parseFloatArrayNext",
136 function (str, next, f, strStart, strEnd) {
140 if (strStart != null) {
141 var p = str.indexOf (strStart, pt);
142 if (p >= 0) next[0] = p + strStart.length;
143 }str = str.substring (next[0]);
144 pt = (strEnd == null ? -1 : str.indexOf (strEnd));
145 if (pt < 0) pt = str.length;
146 else str = str.substring (0, pt);
148 var tokens = javajs.util.PT.getTokens (str);
149 if (f == null) f = Clazz.newFloatArray (tokens.length, 0);
150 n = javajs.util.PT.parseFloatArrayInfested (tokens, f);
151 }if (f == null) return Clazz.newFloatArray (0, 0);
152 for (var i = n; i < f.length; i++) f[i] = NaN;
155 }, "~S,~A,~A,~S,~S");
156 c$.parseFloatRange = Clazz.defineMethod (c$, "parseFloatRange",
157 function (str, ichMax, next) {
158 var cch = str.length;
159 if (ichMax > cch) ichMax = cch;
160 if (next[0] < 0 || next[0] >= ichMax) return NaN;
161 return javajs.util.PT.parseFloatChecked (str, ichMax, next, false);
163 c$.parseFloatNext = Clazz.defineMethod (c$, "parseFloatNext",
164 function (str, next) {
165 var cch = (str == null ? -1 : str.length);
166 return (next[0] < 0 || next[0] >= cch ? NaN : javajs.util.PT.parseFloatChecked (str, cch, next, false));
168 c$.parseFloatStrict = Clazz.defineMethod (c$, "parseFloatStrict",
170 var cch = str.length;
171 if (cch == 0) return NaN;
172 return javajs.util.PT.parseFloatChecked (str, cch, Clazz.newIntArray (-1, [0]), true);
174 c$.parseFloat = Clazz.defineMethod (c$, "parseFloat",
176 return javajs.util.PT.parseFloatNext (str, Clazz.newIntArray (-1, [0]));
178 c$.parseIntRadix = Clazz.defineMethod (c$, "parseIntRadix",
181 return Integer.parseIntRadix(s, i);
183 c$.getTokens = Clazz.defineMethod (c$, "getTokens",
185 return javajs.util.PT.getTokensAt (line, 0);
187 c$.parseToken = Clazz.defineMethod (c$, "parseToken",
189 return javajs.util.PT.parseTokenNext (str, Clazz.newIntArray (-1, [0]));
191 c$.parseTrimmed = Clazz.defineMethod (c$, "parseTrimmed",
193 return javajs.util.PT.parseTrimmedRange (str, 0, str.length);
195 c$.parseTrimmedAt = Clazz.defineMethod (c$, "parseTrimmedAt",
196 function (str, ichStart) {
197 return javajs.util.PT.parseTrimmedRange (str, ichStart, str.length);
199 c$.parseTrimmedRange = Clazz.defineMethod (c$, "parseTrimmedRange",
200 function (str, ichStart, ichMax) {
201 var cch = str.length;
202 if (ichMax < cch) cch = ichMax;
203 if (cch < ichStart) return "";
204 return javajs.util.PT.parseTrimmedChecked (str, ichStart, cch);
206 c$.getTokensAt = Clazz.defineMethod (c$, "getTokensAt",
207 function (line, ich) {
208 if (line == null) return null;
209 var cchLine = line.length;
210 if (ich < 0 || ich > cchLine) return null;
211 var tokenCount = javajs.util.PT.countTokens (line, ich);
212 var tokens = new Array (tokenCount);
213 var next = Clazz.newIntArray (1, 0);
215 for (var i = 0; i < tokenCount; ++i) tokens[i] = javajs.util.PT.parseTokenChecked (line, cchLine, next);
219 c$.countChar = Clazz.defineMethod (c$, "countChar",
223 while ((pt = line.indexOf (c, pt + 1)) >= 0) tokenCount++;
227 c$.countTokens = Clazz.defineMethod (c$, "countTokens",
228 function (line, ich) {
231 var ichMax = line.length;
233 while (ich < ichMax && javajs.util.PT.isWhiteSpace (line, ich)) ++ich;
235 if (ich == ichMax) break;
239 } while (ich < ichMax && !javajs.util.PT.isWhiteSpace (line, ich));
243 c$.parseTokenNext = Clazz.defineMethod (c$, "parseTokenNext",
244 function (str, next) {
245 var cch = str.length;
246 return (next[0] < 0 || next[0] >= cch ? null : javajs.util.PT.parseTokenChecked (str, cch, next));
248 c$.parseTokenRange = Clazz.defineMethod (c$, "parseTokenRange",
249 function (str, ichMax, next) {
250 var cch = str.length;
251 if (ichMax > cch) ichMax = cch;
252 return (next[0] < 0 || next[0] >= ichMax ? null : javajs.util.PT.parseTokenChecked (str, ichMax, next));
254 c$.parseTokenChecked = Clazz.defineMethod (c$, "parseTokenChecked",
255 function (str, ichMax, next) {
257 while (ich < ichMax && javajs.util.PT.isWhiteSpace (str, ich)) ++ich;
259 var ichNonWhite = ich;
260 while (ich < ichMax && !javajs.util.PT.isWhiteSpace (str, ich)) ++ich;
263 return (ichNonWhite == ich ? null : str.substring (ichNonWhite, ich));
265 c$.parseTrimmedChecked = Clazz.defineMethod (c$, "parseTrimmedChecked",
266 function (str, ich, ichMax) {
267 while (ich < ichMax && javajs.util.PT.isWhiteSpace (str, ich)) ++ich;
269 var ichLast = ichMax - 1;
270 while (ichLast >= ich && javajs.util.PT.isWhiteSpace (str, ichLast)) --ichLast;
272 return (ichLast < ich ? "" : str.substring (ich, ichLast + 1));
274 c$.dVal = Clazz.defineMethod (c$, "dVal",
278 throw new NumberFormatException("null");
281 throw new NumberFormatException("Not a Number : "+s);
284 c$.fVal = Clazz.defineMethod (c$, "fVal",
289 c$.parseIntRange = Clazz.defineMethod (c$, "parseIntRange",
290 function (str, ichMax, next) {
291 var cch = str.length;
292 if (ichMax > cch) ichMax = cch;
293 return (next[0] < 0 || next[0] >= ichMax ? -2147483648 : javajs.util.PT.parseIntChecked (str, ichMax, next));
295 c$.parseFloatArrayData = Clazz.defineMethod (c$, "parseFloatArrayData",
296 function (tokens, data) {
297 javajs.util.PT.parseFloatArrayDataN (tokens, data, data.length);
299 c$.parseFloatArrayDataN = Clazz.defineMethod (c$, "parseFloatArrayDataN",
300 function (tokens, data, nData) {
301 for (var i = nData; --i >= 0; ) data[i] = (i >= tokens.length ? NaN : javajs.util.PT.parseFloat (tokens[i]));
304 c$.split = Clazz.defineMethod (c$, "split",
305 function (text, run) {
306 if (text.length == 0) return new Array (0);
308 var i = text.indexOf (run);
310 var runLen = run.length;
311 if (i < 0 || runLen == 0) {
312 lines = new Array (1);
315 }var len = text.length - runLen;
316 for (; i >= 0 && i < len; n++) i = text.indexOf (run, i + runLen);
318 lines = new Array (n);
322 for (; (ipt = text.indexOf (run, i)) >= 0 && pt + 1 < n; ) {
323 lines[pt++] = text.substring (i, ipt);
326 if (text.indexOf (run, len) != len) len += runLen;
327 lines[pt] = text.substring (i, len);
330 c$.getQuotedStringAt = Clazz.defineMethod (c$, "getQuotedStringAt",
331 function (line, ipt0) {
332 var next = Clazz.newIntArray (-1, [ipt0]);
333 return javajs.util.PT.getQuotedStringNext (line, next);
335 c$.getQuotedStringNext = Clazz.defineMethod (c$, "getQuotedStringNext",
336 function (line, next) {
338 if (i < 0 || (i = line.indexOf ("\"", i)) < 0) return "";
340 var len = line.length;
341 while (++i < len && line.charAt (i) != '"') if (line.charAt (i) == '\\') i++;
344 return line.substring (pt, i);
346 c$.getCSVString = Clazz.defineMethod (c$, "getCSVString",
347 function (line, next) {
349 if (i < 0 || (i = line.indexOf ("\"", i)) < 0) return null;
350 var pt = next[0] = i;
351 var len = line.length;
353 var haveEscape = false;
354 while (++i < len && (line.charAt (i) != '"' || (escaped = (i + 1 < len && line.charAt (i + 1) == '"')))) if (escaped) {
363 var s = line.substring (pt + 1, i);
364 return (haveEscape ? javajs.util.PT.rep (javajs.util.PT.rep (s, "\"\"", "\0"), "\0", "\"") : s);
366 c$.isOneOf = Clazz.defineMethod (c$, "isOneOf",
367 function (key, semiList) {
368 if (semiList.length == 0) return false;
369 if (semiList.charAt (0) != ';') semiList = ";" + semiList + ";";
370 return key.indexOf (";") < 0 && semiList.indexOf (';' + key + ';') >= 0;
372 c$.getQuotedAttribute = Clazz.defineMethod (c$, "getQuotedAttribute",
373 function (info, name) {
374 var i = info.indexOf (name + "=");
375 return (i < 0 ? null : javajs.util.PT.getQuotedStringAt (info, i));
377 c$.approx = Clazz.defineMethod (c$, "approx",
379 return Math.round (f * n) / n;
381 c$.rep = Clazz.defineMethod (c$, "rep",
382 function (str, strFrom, strTo) {
383 if (str == null || strFrom.length == 0 || str.indexOf (strFrom) < 0) return str;
384 var isOnce = (strTo.indexOf (strFrom) >= 0);
386 str = str.$replace (strFrom, strTo);
387 } while (!isOnce && str.indexOf (strFrom) >= 0);
390 c$.formatF = Clazz.defineMethod (c$, "formatF",
391 function (value, width, precision, alignLeft, zeroPad) {
392 return javajs.util.PT.formatS (javajs.util.DF.formatDecimal (value, precision), width, 0, alignLeft, zeroPad);
393 }, "~N,~N,~N,~B,~B");
394 c$.formatD = Clazz.defineMethod (c$, "formatD",
395 function (value, width, precision, alignLeft, zeroPad, allowOverflow) {
396 return javajs.util.PT.formatS (javajs.util.DF.formatDecimal (value, -1 - precision), width, 0, alignLeft, zeroPad);
397 }, "~N,~N,~N,~B,~B,~B");
398 c$.formatS = Clazz.defineMethod (c$, "formatS",
399 function (value, width, precision, alignLeft, zeroPad) {
400 if (value == null) return "";
401 var len = value.length;
402 if (precision != 2147483647 && precision > 0 && precision < len) value = value.substring (0, precision);
403 else if (precision < 0 && len + precision >= 0) value = value.substring (len + precision + 1);
404 var padLength = width - value.length;
405 if (padLength <= 0) return value;
406 var isNeg = (zeroPad && !alignLeft && value.charAt (0) == '-');
407 var padChar = (zeroPad ? '0' : ' ');
408 var padChar0 = (isNeg ? '-' : padChar);
409 var sb = new javajs.util.SB ();
410 if (alignLeft) sb.append (value);
411 sb.appendC (padChar0);
412 for (var i = padLength; --i > 0; ) sb.appendC (padChar);
414 if (!alignLeft) sb.append (isNeg ? padChar + value.substring (1) : value);
415 return sb.toString ();
416 }, "~S,~N,~N,~B,~B");
417 c$.replaceWithCharacter = Clazz.defineMethod (c$, "replaceWithCharacter",
418 function (str, strFrom, chTo) {
419 if (str == null) return null;
420 for (var i = strFrom.length; --i >= 0; ) str = str.$replace (strFrom.charAt (i), chTo);
424 c$.replaceAllCharacters = Clazz.defineMethod (c$, "replaceAllCharacters",
425 function (str, strFrom, strTo) {
426 for (var i = strFrom.length; --i >= 0; ) {
427 var chFrom = strFrom.substring (i, i + 1);
428 str = javajs.util.PT.rep (str, chFrom, strTo);
432 c$.trim = Clazz.defineMethod (c$, "trim",
433 function (str, chars) {
434 if (str == null || str.length == 0) return str;
435 if (chars.length == 0) return str.trim ();
436 var len = str.length;
438 while (k < len && chars.indexOf (str.charAt (k)) >= 0) k++;
440 var m = str.length - 1;
441 while (m > k && chars.indexOf (str.charAt (m)) >= 0) m--;
443 return str.substring (k, m + 1);
445 c$.trimQuotes = Clazz.defineMethod (c$, "trimQuotes",
447 return (value != null && value.length > 1 && value.startsWith ("\"") && value.endsWith ("\"") ? value.substring (1, value.length - 1) : value);
449 c$.isNonStringPrimitive = Clazz.defineMethod (c$, "isNonStringPrimitive",
451 return Clazz.instanceOf (info, Number) || Clazz.instanceOf (info, Boolean);
453 c$.arrayGet = Clazz.defineMethod (c$, "arrayGet",
454 ($fz = function (info, i) {
457 }}, $fz.isPrivate = true, $fz), "~O,~N");
458 c$.toJSON = Clazz.defineMethod (c$, "toJSON",
459 function (infoType, info) {
460 if (info == null) return javajs.util.PT.packageJSON (infoType, null);
461 if (javajs.util.PT.isNonStringPrimitive (info)) return javajs.util.PT.packageJSON (infoType, info.toString ());
465 if (Clazz.instanceOf (info, String)) {
468 if (typeof s == "undefined") s = "null"
469 }if (s.indexOf ("{\"") != 0) {
470 s = javajs.util.PT.rep (s, "\"", "\\\"");
471 s = javajs.util.PT.rep (s, "\n", "\\n");
474 }if (Clazz.instanceOf (info, javajs.api.JSONEncodable)) {
475 if ((s = (info).toJSON ()) == null) s = "null";
477 }sb = new javajs.util.SB ();
478 if (Clazz.instanceOf (info, java.util.Map)) {
481 for (var key, $key = (info).keySet ().iterator (); $key.hasNext () && ((key = $key.next ()) || true);) {
482 sb.append (sep).append (javajs.util.PT.packageJSON (key, javajs.util.PT.toJSON (null, (info).get (key))));
487 }if (Clazz.instanceOf (info, javajs.util.Lst)) {
489 var n = (info).size ();
490 for (var i = 0; i < n; i++) {
491 if (i > 0) sb.appendC (',');
492 sb.append (javajs.util.PT.toJSON (null, (info).get (i)));
496 }if (Clazz.instanceOf (info, javajs.util.M34)) {
497 var len = (Clazz.instanceOf (info, javajs.util.M4) ? 4 : 3);
498 var x = Clazz.newFloatArray (len, 0);
501 for (var i = 0; i < len; i++) {
502 if (i > 0) sb.appendC (',');
504 sb.append (javajs.util.PT.toJSON (null, x));
508 }s = javajs.util.PT.nonArrayString (info);
511 var n = javajs.util.AU.getLength (info);
512 for (var i = 0; i < n; i++) {
513 if (i > 0) sb.appendC (',');
514 sb.append (javajs.util.PT.toJSON (null, javajs.util.PT.arrayGet (info, i)));
518 }info = info.toString ();
520 return javajs.util.PT.packageJSON (infoType, (s == null ? sb.toString () : s));
522 c$.nonArrayString = Clazz.defineMethod (c$, "nonArrayString",
525 var s = x.toString(); return (s.startsWith("[object") &&
526 s.endsWith("Array]") ? null : s);
528 c$.byteArrayToJSON = Clazz.defineMethod (c$, "byteArrayToJSON",
530 var sb = new javajs.util.SB ();
533 for (var i = 0; i < n; i++) {
534 if (i > 0) sb.appendC (',');
535 sb.appendI (data[i] & 0xFF);
538 return sb.toString ();
540 c$.packageJSON = Clazz.defineMethod (c$, "packageJSON",
541 function (infoType, info) {
542 return (infoType == null ? info : "\"" + infoType + "\": " + info);
544 c$.escapeUrl = Clazz.defineMethod (c$, "escapeUrl",
546 url = javajs.util.PT.rep (url, "\n", "");
547 url = javajs.util.PT.rep (url, "%", "%25");
548 url = javajs.util.PT.rep (url, "#", "%23");
549 url = javajs.util.PT.rep (url, "[", "%5B");
550 url = javajs.util.PT.rep (url, "]", "%5D");
551 url = javajs.util.PT.rep (url, " ", "%20");
554 c$.esc = Clazz.defineMethod (c$, "esc",
556 if (str == null || str.length == 0) return "\"\"";
557 var haveEscape = false;
559 for (; i < "\\\\\tt\rr\nn\"\"".length; i += 2) if (str.indexOf ("\\\\\tt\rr\nn\"\"".charAt (i)) >= 0) {
563 if (haveEscape) while (i < "\\\\\tt\rr\nn\"\"".length) {
565 var ch = "\\\\\tt\rr\nn\"\"".charAt (i++);
566 var ch2 = "\\\\\tt\rr\nn\"\"".charAt (i++);
567 var sb = new javajs.util.SB ();
569 while ((pt = str.indexOf (ch, pt + 1)) >= 0) {
570 sb.append (str.substring (pt0, pt)).appendC ('\\').appendC (ch2);
573 sb.append (str.substring (pt0, str.length));
574 str = sb.toString ();
576 return "\"" + javajs.util.PT.escUnicode (str) + "\"";
578 c$.escUnicode = Clazz.defineMethod (c$, "escUnicode",
580 for (var i = str.length; --i >= 0; ) if (str.charCodeAt (i) > 0x7F) {
581 var s = "0000" + Integer.toHexString (str.charCodeAt (i));
582 str = str.substring (0, i) + "\\u" + s.substring (s.length - 4) + str.substring (i + 1);
586 c$.escF = Clazz.defineMethod (c$, "escF",
590 if (sf.indexOf(".") < 0 && sf.indexOf("e") < 0)
594 c$.join = Clazz.defineMethod (c$, "join",
595 function (s, c, i0) {
596 if (s.length < i0) return null;
597 var sb = new javajs.util.SB ();
599 for (var i = i0; i < s.length; i++) sb.appendC (c).append (s[i]);
601 return sb.toString ();
603 c$.isLike = Clazz.defineMethod (c$, "isLike",
605 var areEqual = a.equals (b);
606 if (areEqual) return true;
607 var isStart = b.startsWith ("*");
608 var isEnd = b.endsWith ("*");
609 return (!isStart && !isEnd) ? areEqual : isStart && isEnd ? b.length == 1 || a.contains (b.substring (1, b.length - 1)) : isStart ? a.endsWith (b.substring (1)) : a.startsWith (b.substring (0, b.length - 1));
611 c$.getMapValueNoCase = Clazz.defineMethod (c$, "getMapValueNoCase",
613 if ("this".equals (key)) return h;
614 var val = h.get (key);
615 if (val == null) for (var e, $e = h.entrySet ().iterator (); $e.hasNext () && ((e = $e.next ()) || true);) if (e.getKey ().equalsIgnoreCase (key)) return e.getValue ();
618 }, "java.util.Map,~S");
619 c$.clean = Clazz.defineMethod (c$, "clean",
621 return javajs.util.PT.rep (javajs.util.PT.replaceAllCharacters (s, " \t\n\r", " "), " ", " ").trim ();
623 c$.fdup = Clazz.defineMethod (c$, "fdup",
624 function (f, pt, n) {
627 for (var i = pt; --i >= 1; ) {
628 if (javajs.util.PT.isDigit (ch = f.charAt (i))) continue;
631 if (count++ != 0) return f;
634 if (i != 1 && f.charAt (i - 1) != '.') return f;
640 var s = f.substring (0, pt + 1);
641 var sb = new javajs.util.SB ();
642 for (var i = 0; i < n; i++) sb.append (s);
644 sb.append (f.substring (pt + 1));
645 return sb.toString ();
647 c$.formatString = Clazz.defineMethod (c$, "formatString",
648 function (strFormat, key, strT, floatT, doubleT, doOne) {
649 if (strFormat == null) return null;
650 if ("".equals (strFormat)) return "";
651 var len = key.length;
652 if (strFormat.indexOf ("%") < 0 || len == 0 || strFormat.indexOf (key) < 0) return strFormat;
657 for (ich = 0; (ichPercent = strFormat.indexOf ('%', ich)) >= 0 && (ichKey = strFormat.indexOf (key, ichPercent + 1)) >= 0; ) {
658 if (ich != ichPercent) strLabel += strFormat.substring (ich, ichPercent);
659 ich = ichPercent + 1;
660 if (ichKey > ichPercent + 6) {
664 var alignLeft = false;
665 if (strFormat.charAt (ich) == '-') {
668 }var zeroPad = false;
669 if (strFormat.charAt (ich) == '0') {
674 while ((ch = strFormat.charAt (ich)) >= '0' && (ch <= '9')) {
675 width = (10 * width) + (ch.charCodeAt (0) - 48);
678 var precision = 2147483647;
679 var isExponential = false;
680 if (strFormat.charAt (ich) == '.') {
682 if ((ch = strFormat.charAt (ich)) == '-') {
683 isExponential = true;
685 }if ((ch = strFormat.charAt (ich)) >= '0' && ch <= '9') {
686 precision = ch.charCodeAt (0) - 48;
688 }if (isExponential) precision = -precision - (strT == null ? 1 : 0);
689 }var st = strFormat.substring (ich, ich + len);
690 if (!st.equals (key)) {
691 ich = ichPercent + 1;
695 if (!Float.isNaN (floatT)) strLabel += javajs.util.PT.formatF (floatT, width, precision, alignLeft, zeroPad);
696 else if (strT != null) strLabel += javajs.util.PT.formatS (strT, width, precision, alignLeft, zeroPad);
697 else if (!Double.isNaN (doubleT)) strLabel += javajs.util.PT.formatD (doubleT, width, precision, alignLeft, zeroPad, true);
700 if (Clazz.exceptionOf (ioobe, IndexOutOfBoundsException)) {
708 strLabel += strFormat.substring (ich);
710 }, "~S,~S,~S,~N,~N,~B");
711 c$.formatStringS = Clazz.defineMethod (c$, "formatStringS",
712 function (strFormat, key, strT) {
713 return javajs.util.PT.formatString (strFormat, key, strT, NaN, NaN, false);
715 c$.formatStringF = Clazz.defineMethod (c$, "formatStringF",
716 function (strFormat, key, floatT) {
717 return javajs.util.PT.formatString (strFormat, key, null, floatT, NaN, false);
719 c$.formatStringI = Clazz.defineMethod (c$, "formatStringI",
720 function (strFormat, key, intT) {
721 return javajs.util.PT.formatString (strFormat, key, "" + intT, NaN, NaN, false);
723 c$.sprintf = Clazz.defineMethod (c$, "sprintf",
724 function (strFormat, list, values) {
725 if (values == null) return strFormat;
727 if (n == values.length) try {
728 for (var o = 0; o < n; o++) {
729 if (values[o] == null) continue;
730 switch (list.charAt (o)) {
732 strFormat = javajs.util.PT.formatString (strFormat, "s", values[o], NaN, NaN, true);
735 strFormat = javajs.util.PT.formatString (strFormat, "f", null, (values[o]).floatValue (), NaN, true);
738 strFormat = javajs.util.PT.formatString (strFormat, "d", "" + values[o], NaN, NaN, true);
739 strFormat = javajs.util.PT.formatString (strFormat, "i", "" + values[o], NaN, NaN, true);
742 strFormat = javajs.util.PT.formatString (strFormat, "e", null, NaN, (values[o]).doubleValue (), true);
745 var pVal = values[o];
746 strFormat = javajs.util.PT.formatString (strFormat, "p", null, pVal.x, NaN, true);
747 strFormat = javajs.util.PT.formatString (strFormat, "p", null, pVal.y, NaN, true);
748 strFormat = javajs.util.PT.formatString (strFormat, "p", null, pVal.z, NaN, true);
751 var qVal = values[o];
752 strFormat = javajs.util.PT.formatString (strFormat, "q", null, qVal.x, NaN, true);
753 strFormat = javajs.util.PT.formatString (strFormat, "q", null, qVal.y, NaN, true);
754 strFormat = javajs.util.PT.formatString (strFormat, "q", null, qVal.z, NaN, true);
755 strFormat = javajs.util.PT.formatString (strFormat, "q", null, qVal.w, NaN, true);
758 var sVal = values[o];
759 for (var i = 0; i < sVal.length; i++) strFormat = javajs.util.PT.formatString (strFormat, "s", sVal[i], NaN, NaN, true);
763 var fVal = values[o];
764 for (var i = 0; i < fVal.length; i++) strFormat = javajs.util.PT.formatString (strFormat, "f", null, fVal[i], NaN, true);
768 var iVal = values[o];
769 for (var i = 0; i < iVal.length; i++) strFormat = javajs.util.PT.formatString (strFormat, "d", "" + iVal[i], NaN, NaN, true);
771 for (var i = 0; i < iVal.length; i++) strFormat = javajs.util.PT.formatString (strFormat, "i", "" + iVal[i], NaN, NaN, true);
775 var dVal = values[o];
776 for (var i = 0; i < dVal.length; i++) strFormat = javajs.util.PT.formatString (strFormat, "e", null, NaN, dVal[i], true);
780 return javajs.util.PT.rep (strFormat, "%%", "%");
782 if (Clazz.exceptionOf (e, Exception)) {
787 System.out.println ("TextFormat.sprintf error " + list + " " + strFormat);
788 return javajs.util.PT.rep (strFormat, "%", "?");
790 c$.formatCheck = Clazz.defineMethod (c$, "formatCheck",
791 function (strFormat) {
792 if (strFormat == null || strFormat.indexOf ('p') < 0 && strFormat.indexOf ('q') < 0) return strFormat;
793 strFormat = javajs.util.PT.rep (strFormat, "%%", "\1");
794 strFormat = javajs.util.PT.rep (strFormat, "%p", "%6.2p");
795 strFormat = javajs.util.PT.rep (strFormat, "%q", "%6.2q");
796 var format = javajs.util.PT.split (strFormat, "%");
797 var sb = new javajs.util.SB ();
798 sb.append (format[0]);
799 for (var i = 1; i < format.length; i++) {
800 var f = "%" + format[i];
803 if ((pt = f.indexOf ('p')) >= 0) f = javajs.util.PT.fdup (f, pt, 3);
804 if ((pt = f.indexOf ('q')) >= 0) f = javajs.util.PT.fdup (f, pt, 4);
807 return sb.toString ().$replace ('\1', '%');
809 c$.leftJustify = Clazz.defineMethod (c$, "leftJustify",
810 function (s, s1, s2) {
812 var n = s1.length - s2.length;
813 if (n > 0) s.append (s1.substring (0, n));
814 }, "javajs.util.SB,~S,~S");
815 c$.rightJustify = Clazz.defineMethod (c$, "rightJustify",
816 function (s, s1, s2) {
817 var n = s1.length - s2.length;
818 if (n > 0) s.append (s1.substring (0, n));
820 }, "javajs.util.SB,~S,~S");
821 c$.safeTruncate = Clazz.defineMethod (c$, "safeTruncate",
823 if (f > -0.001 && f < 0.001) f = 0;
824 return (f + " ").substring (0, n);
826 c$.isWild = Clazz.defineMethod (c$, "isWild",
828 return s != null && (s.indexOf ("*") >= 0 || s.indexOf ("?") >= 0);
830 c$.isMatch = Clazz.defineMethod (c$, "isMatch",
831 function (search, match, checkStar, allowInitialStar) {
832 if (search.equals (match)) return true;
833 var mLen = match.length;
834 if (mLen == 0) return false;
835 var isStar0 = (checkStar && allowInitialStar ? match.charAt (0) == '*' : false);
836 if (mLen == 1 && isStar0) return true;
837 var isStar1 = (checkStar && match.endsWith ("*"));
838 var haveQ = (match.indexOf ('?') >= 0);
840 if (isStar0) return (isStar1 ? (mLen < 3 || search.indexOf (match.substring (1, mLen - 1)) >= 0) : search.endsWith (match.substring (1)));
841 else if (isStar1) return search.startsWith (match.substring (0, mLen - 1));
842 }var sLen = search.length;
851 match = qqqq + match.substring (1);
854 match = match.substring (0, mLen - 1) + qqqq;
856 }}if (mLen < sLen) return false;
858 while (mLen > sLen) {
859 if (allowInitialStar && match.charAt (ich) == '?') {
861 } else if (match.charAt (ich + mLen - 1) != '?') {
865 for (var i = sLen; --i >= 0; ) {
866 var chm = match.charAt (ich + i);
867 if (chm == '?') continue;
868 var chs = search.charAt (i);
869 if (chm != chs && (chm != '\1' || chs != '?')) return false;
873 c$.replaceQuotedStrings = Clazz.defineMethod (c$, "replaceQuotedStrings",
874 function (s, list, newList) {
875 var n = list.size ();
876 for (var i = 0; i < n; i++) {
877 var name = list.get (i);
878 var newName = newList.get (i);
879 if (!newName.equals (name)) s = javajs.util.PT.rep (s, "\"" + name + "\"", "\"" + newName + "\"");
882 }, "~S,javajs.util.Lst,javajs.util.Lst");
883 c$.replaceStrings = Clazz.defineMethod (c$, "replaceStrings",
884 function (s, list, newList) {
885 var n = list.size ();
886 for (var i = 0; i < n; i++) {
887 var name = list.get (i);
888 var newName = newList.get (i);
889 if (!newName.equals (name)) s = javajs.util.PT.rep (s, name, newName);
892 }, "~S,javajs.util.Lst,javajs.util.Lst");
893 c$.isDigit = Clazz.defineMethod (c$, "isDigit",
895 var c = (ch).charCodeAt (0);
896 return (48 <= c && c <= 57);
898 c$.isUpperCase = Clazz.defineMethod (c$, "isUpperCase",
900 var c = (ch).charCodeAt (0);
901 return (65 <= c && c <= 90);
903 c$.isLowerCase = Clazz.defineMethod (c$, "isLowerCase",
905 var c = (ch).charCodeAt (0);
906 return (97 <= c && c <= 122);
908 c$.isLetter = Clazz.defineMethod (c$, "isLetter",
910 var c = (ch).charCodeAt (0);
911 return (65 <= c && c <= 90 || 97 <= c && c <= 122);
913 c$.isLetterOrDigit = Clazz.defineMethod (c$, "isLetterOrDigit",
915 var c = (ch).charCodeAt (0);
916 return (65 <= c && c <= 90 || 97 <= c && c <= 122 || 48 <= c && c <= 57);
918 c$.isWhitespace = Clazz.defineMethod (c$, "isWhitespace",
920 var c = (ch).charCodeAt (0);
921 return (c >= 0x1c && c <= 0x20 || c >= 0x9 && c <= 0xd);
923 c$.fixPtFloats = Clazz.defineMethod (c$, "fixPtFloats",
925 pt.x = Math.round (pt.x * f) / f;
926 pt.y = Math.round (pt.y * f) / f;
927 pt.z = Math.round (pt.z * f) / f;
928 }, "javajs.util.T3,~N");
929 c$.fixDouble = Clazz.defineMethod (c$, "fixDouble",
931 return Math.round (d * f) / f;
933 c$.parseFloatFraction = Clazz.defineMethod (c$, "parseFloatFraction",
935 var pt = s.indexOf ("/");
936 return (pt < 0 ? javajs.util.PT.parseFloat (s) : javajs.util.PT.parseFloat (s.substring (0, pt)) / javajs.util.PT.parseFloat (s.substring (pt + 1)));
938 Clazz.defineStatics (c$,
939 "tensScale", Clazz.newFloatArray (-1, [10, 100, 1000, 10000, 100000, 1000000]),
940 "decimalScale", Clazz.newFloatArray (-1, [0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001, 0.0000001, 0.00000001, 0.000000001]),
941 "FLOAT_MIN_SAFE", 2E-45,
942 "escapable", "\\\\\tt\rr\nn\"\"",
943 "FRACTIONAL_PRECISION", 100000,
944 "CARTESIAN_PRECISION", 10000);