4 // This library will be wrapped by an additional anonymous function using ANT in
5 // build_03_tojs.xml. This task will also modify variable names. References
6 // to Clazz._ will not be changed, but other Clazz.xxx will be changed to
7 // (local scope) Clazz_xxx, allowing them to be further compressed using
8 // Google Closure Compiler in that same ANT task.
10 // BH 5/31/2015 5:53:04 PM Number.compareTo added
11 // BH 5/21/2015 5:46:30 PM Number("0xFFFFFFFF") is not -1
12 // BH 4/23/2015 9:08:59 AM xx.getComponentType() is nonfunctional. Array.newInstance now defines a wrapper for .getClass().getComponentType() that works
13 // BH 4/12/2015 1:37:44 PM adding Math.rint = Math.round
14 // BH 1/16/2015 10:09:38 AM Chrome failure jqGrig due to new String("x").toString() not being a simple string
15 // BH 8/14/2014 6:49:22 PM Character class efficiencies
16 // BH 7/24/2014 9:02:18 AM most browsers do not support String.codePointAt()
17 // BH 7/11/2014 4:17:22 PM fix for Boolean.valueOf("false") not being false
18 // BH 5/27/2014 6:29:59 AM ensure floats and doubles have decimal point in toString
19 // BH 4/1/2014 12:23:41 PM Encoding moved to Clazz._Encoding;
20 // BH 4/1/2014 7:51:46 AM removing java.lang.B00lean
21 // BH 3/7/2014 9:17:10 AM removing Array.toString; moving that code here from j2sJmol.js
22 // BH 1/30/2014 9:04:25 AM adding Throwable.getStackTrace() as a STRING
23 // BH 12/4/2013 9:20:44 PM fix for reassigning Date.prototype.toString()
24 // BH 12/3/2013 11:43:10 AM bizarre Safari bug in reassigning Boolean (OK, I admit, we shouldn't have done that...)
25 // BH 12/1/2013 6:50:16 AM evit Number.prototype.toString assignment removed!
26 // BH 11/30/2013 1:46:31 PM fixing Byte, Short, Long, Integer, Float, Double to reflect proper bounds and error conditions
27 // BH 11/29/2013 8:58:49 PM removing Boolean.toString(boolean)
28 // BH 11/4/2013 7:34:26 AM changing "var nativeClazz" to "var nativeClass" to avoid ANT replacement of "nativeClazz." to "nativeClazz_"
29 // BH 10/19/2013 1:29:27 PM fixed String.$replace()
30 // BH 10/18/2013 6:09:23 PM fixed (Double|Float).valueOf(NaN).valueOf(), which should return NaN, not throw an error
31 // BH 10/12/2013 11:18:44 AM fixed bug in Double(String) and Float(String) that was returning typeof "string"
32 // BH 10/10/2013 2:40:20 PM added Math.log10
33 // BH 7/23/2013 7:24:01 AM fixing Number.shortValue() and Number.byteValue() for negative values
34 // BH 6/16/2013 1:31:30 PM adding /| in String.replace -- thank you David Koes
35 // BH 3/13/2013 12:49:23 PM setting Boolean.valueOf() "@"
36 // BH 3/2/2013 10:46:45 PM removed Double.valueOf(String)
37 // BH 11/6/2012 8:26:33 PM added instanceof Int32Array in String.instantialize
38 // BH 10/13/2012 11:38:07 PM corrected Integer.parseInt to allow only +-0123456789; created Integer.parseIntRadix
39 // BH 11/1/2012 added Short
40 // BH 9/10/2012 6:27:21 AM added java.net.URL... classes
41 // BH 1/7/2013 7:40:06 AM added Clazz.dateToString
45 // moved here from package.js
46 // these classes will be created as objects prior to any others
47 // and are then available immediately
49 Clazz._Loader.registerPackages("java", [ "io", "lang", "lang.reflect", "util" ]);
51 var sJU = "java.util";
54 //Clazz._Loader.registerPackages (sJU, ["regex", "zip"]);
57 var javautil = java.util;
59 Clazz._Loader.ignore([
60 "net.sf.j2s.ajax.HttpRequest",
61 sJU + ".MapEntry.Type",
62 //"java.net.UnknownServiceException",
64 "java.security.AccessController",
65 "java.security.PrivilegedExceptionAction",
67 "java.io.FileInputStream",
69 "java.io.OutputStreamWriter",
70 // sJU + ".Calendar", // bypassed in ModelCollection
71 // "java.text.SimpleDateFormat", // not used
72 // "java.text.DateFormat", // not used
73 sJU + ".concurrent.Executors"
76 Math.rint = Math.round;
78 Math.log10||(Math.log10=function(a){return Math.log(a)/2.302585092994046});
80 if(Clazz._supportsNativeObject){
81 // Number and Array are special -- do not override prototype.toString -- "length - 2" here
82 for(var i=0;i<Clazz._extendedObjectMethods.length - 2;i++){
83 var p=Clazz._extendedObjectMethods[i];
84 Array.prototype[p] = Clazz._O.prototype[p];
85 Number.prototype[p] = Clazz._O.prototype[p];
89 java.lang.Number=Number;
90 Number.__CLASS_NAME__="Number";
91 Clazz.implementOf(Number,java.io.Serializable);
92 Number.equals=Clazz._innerFunctions.equals;
93 Number.getName=Clazz._innerFunctions.getName;
94 Number.prototype.compareTo = function(x) { var a = this.value, b = x.value; return (a < b ? -1 : a == b ? 0 : 1) };
96 Clazz.defineMethod(Number,"shortValue",
98 var x = Math.round(this)&0xffff;
99 return (this < 0 && x > 0 ? x - 0x10000 : x);
102 Clazz.defineMethod(Number,"byteValue",
104 var x = Math.round(this)&0xff;
105 return (this < 0 && x > 0 ? x - 0x100 : x);
108 Clazz.defineMethod(Number,"intValue",
110 return Math.round(this)&0xffffffff;
113 Clazz.defineMethod(Number,"longValue",
115 return Math.round(this);
118 Clazz.defineMethod(Number,"floatValue",
120 return this.valueOf();
122 Clazz.defineMethod(Number,"doubleValue",
124 return parseFloat(this.valueOf());
127 Clazz.overrideMethod(Number,"hashCode",
129 return this.valueOf();
132 java.lang.Integer=Integer=function(){
133 Clazz.instantialize(this,arguments);
135 Clazz.decorateAsType(Integer,"Integer",Number,Comparable,null,true);
136 Integer.prototype.valueOf=function(){return 0;};
137 Integer.toString=Integer.prototype.toString=function(){
138 if(arguments.length!=0){
139 return""+arguments[0];
140 } else if(this===Integer){
141 return"class java.lang.Integer";
143 return""+this.valueOf();
148 Clazz.makeConstructor(Integer,
150 this.valueOf=function(){
157 Clazz.overrideConstructor(Integer, function(v){
158 v == null && (v = 0);
159 if (typeof v != "number")
160 v = Integer.parseIntRadix(v, 10);
161 this.valueOf=function(){return v;};
164 Clazz.makeConstructor(Integer,
166 var value=Integer.parseInt(s,10);
167 this.valueOf=function(){
172 Integer.MIN_VALUE=Integer.prototype.MIN_VALUE=-0x80000000;
173 Integer.MAX_VALUE=Integer.prototype.MAX_VALUE=0x7fffffff;
174 Integer.TYPE=Integer.prototype.TYPE=Integer;
177 Clazz.defineMethod(Integer,"bitCount",
179 i = i - ((i >>> 1) & 0x55555555);
180 i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);
181 i = (i + (i >>> 4)) & 0x0f0f0f0f;
186 Integer.bitCount=Integer.prototype.bitCount;
188 Clazz.defineMethod(Integer,"numberOfLeadingZeros",
190 if (i == 0) return 32;
192 if (i >>> 16 == 0) { n += 16; i <<= 16; }
193 if (i >>> 24 == 0) { n += 8; i <<= 8; }
194 if (i >>> 28 == 0) { n += 4; i <<= 4; }
195 if (i >>> 30 == 0) { n += 2; i <<= 2; }
199 Integer.numberOfLeadingZeros=Integer.prototype.numberOfLeadingZeros;
201 Clazz.defineMethod(Integer,"numberOfTrailingZeros",
203 if (i == 0) return 32;
205 var y = i <<16; if (y != 0) { n = n -16; i = y; }
206 y = i << 8; if (y != 0) { n = n - 8; i = y; }
207 y = i << 4; if (y != 0) { n = n - 4; i = y; }
208 y = i << 2; if (y != 0) { n = n - 2; i = y; }
209 return n - ((i << 1) >>> 31);
211 Integer.numberOfTrailingZeros=Integer.prototype.numberOfTrailingZeros;
213 Clazz.defineMethod(Integer,"parseIntRadix",
216 throw new NumberFormatException("null");
218 throw new NumberFormatException("radix "+radix+" less than Character.MIN_RADIX");
220 throw new NumberFormatException("radix "+radix+" greater than Character.MAX_RADIX");
223 for (var i = s.length; --i >= 0;) {
224 var c = s.charCodeAt(i);
225 if (c >= 48 && c <= 57) continue;
226 if (i > 0 || c != 43 && c != 45)
227 throw new NumberFormatException("Not a Number : "+s);
231 var i=parseInt(s,radix);
233 throw new NumberFormatException("Not a Number : "+s);
237 Integer.parseIntRadix=Integer.prototype.parseIntRadix;
239 Clazz.defineMethod(Integer,"parseInt",
241 return Integer.parseIntRadix(s,10);
243 Integer.parseInt=Integer.prototype.parseInt;
246 Clazz.defineMethod(Integer,"$valueOf",
248 return new Integer(Integer.parseIntRadix(s,10));
252 Clazz.overrideMethod(Integer,"$valueOf",
254 return new Integer(s);
258 Clazz.defineMethod(Integer,"$valueOf",
260 return new Integer(Integer.parseIntRadix(s,r));
264 Integer.$valueOf=Integer.prototype.$valueOf;
267 Clazz.overrideMethod(Integer,"equals",
269 if(s==null||!Clazz.instanceOf(s,Integer)){
272 return s.valueOf()==this.valueOf();
274 Integer.toHexString=Integer.prototype.toHexString=function(d){
275 if(d.valueOf)d=d.valueOf();
277 var b = d & 0xFFFFFF;
278 var c = ((d>>24)&0xFF);
279 return c._numberToString(16) + (b = "000000" + b._numberToString(16)).substring(b.length - 6);
281 return d._numberToString(16);};
282 Integer.toOctalString=Integer.prototype.toOctalString=function(d){if(d.valueOf)d=d.valueOf();return d._numberToString(8);};
283 Integer.toBinaryString=Integer.prototype.toBinaryString=function(d){if(d.valueOf)d=d.valueOf();return d._numberToString(2);};
285 Integer.decodeRaw=Clazz.defineMethod(Integer,"decodeRaw", function(n){
286 if (n.indexOf(".") >= 0)n = "";
287 var i = (n.startsWith("-") ? 1 : 0);
288 n = n.replace(/\#/, "0x").toLowerCase();
289 var radix=(n.startsWith("0x", i) ? 16 : n.startsWith("0", i) ? 8 : 10);
290 // The general problem with parseInt is that is not strict -- ParseInt("10whatever") == 10.
291 // Number is strict, but Number("055") does not work, though ParseInt("055", 8) does.
292 // need to make sure negative numbers are negative
293 n = Number(n) & 0xFFFFFFFF;
294 return (radix == 8 ? parseInt(n, 8) : n);
297 Integer.decode=Clazz.defineMethod(Integer,"decode", function(n){
298 n = Integer.decodeRaw(n);
299 if (isNaN(n) || n < Integer.MIN_VALUE|| n > Integer.MAX_VALUE)
300 throw new NumberFormatException("Invalid Integer");
301 return new Integer(n);
304 Clazz.overrideMethod(Integer,"hashCode",
306 return this.valueOf();
309 // Note that Long is problematic in JavaScript
311 java.lang.Long=Long=function(){
312 Clazz.instantialize(this,arguments);
314 Clazz.decorateAsType(Long,"Long",Number,Comparable,null,true);
315 Long.prototype.valueOf=function(){return 0;};
316 Long.toString=Long.prototype.toString=function(){
317 if(arguments.length!=0){
318 return""+arguments[0];
319 }else if(this===Long){
320 return"class java.lang.Long";
322 return""+this.valueOf();
325 Clazz.overrideConstructor(Long, function(v){
326 v == null && (v = 0);
327 v = (typeof v == "number" ? Math.round(v) : Integer.parseIntRadix(v, 10));
328 this.valueOf=function(){return v;};
331 //Long.MIN_VALUE=Long.prototype.MIN_VALUE=-0x8000000000000000;
332 //Long.MAX_VALUE=Long.prototype.MAX_VALUE=0x7fffffffffffffff;
333 Long.TYPE=Long.prototype.TYPE=Long;
335 Clazz.defineMethod(Long,"parseLong",
337 return Integer.parseInt(s, radix || 10);
340 Long.parseLong=Long.prototype.parseLong;
342 Clazz.overrideMethod(Long,"$valueOf",
347 Clazz.defineMethod(Long,"$valueOf",
352 Clazz.defineMethod(Long,"$valueOf",
354 return new Long(Long.parseLong(s,r));
357 Long.$valueOf=Long.prototype.$valueOf;
358 Clazz.overrideMethod(Long,"equals",
360 if(s==null||!Clazz.instanceOf(s,Long)){
363 return s.valueOf()==this.valueOf();
365 Long.toHexString=Long.prototype.toHexString=function(i){
366 return i.toString(16);
368 Long.toOctalString=Long.prototype.toOctalString=function(i){
369 return i.toString(8);
371 Long.toBinaryString=Long.prototype.toBinaryString=function(i){
372 return i.toString(2);
376 Long.decode=Clazz.defineMethod(Long,"decode",
378 n = Integer.decodeRaw(n);
380 throw new NumberFormatException("Invalid Long");
384 java.lang.Short = Short = function () {
385 Clazz.instantialize (this, arguments);
387 Clazz.decorateAsType (Short, "Short", Number, Comparable, null, true);
388 Short.prototype.valueOf = function () { return 0; };
389 Short.toString = Short.prototype.toString = function () {
390 if (arguments.length != 0) {
391 return "" + arguments[0];
392 } else if (this === Short) {
393 return "class java.lang.Short"; // Short.class.toString
395 return "" + this.valueOf ();
398 Clazz.overrideConstructor(Short,
400 v == null && (v = 0);
401 if (typeof v != "number")
402 v = Integer.parseIntRadix(v, 10);
404 this.valueOf = function () {return v;};
408 Short.MIN_VALUE = Short.prototype.MIN_VALUE = -32768;
409 Short.MAX_VALUE = Short.prototype.MAX_VALUE = 32767;
410 Short.TYPE = Short.prototype.TYPE = Short;
412 Clazz.defineMethod(Short, "parseShortRadix",
413 function (s, radix) {
414 return Integer.parseIntRadix(s, radix).shortValue();
415 }, "String, Number");
416 Short.parseShortRadix = Short.prototype.parseShortRadix;
418 Clazz.defineMethod(Short, "parseShort",
420 return Short.parseShortRadix (s, 10);
423 Short.parseShort = Short.prototype.parseShort;
426 Clazz.defineMethod(Short, "$valueOf",
428 return new Short(Short.parseShort (s, 10));
432 Clazz.overrideMethod(Short, "$valueOf",
438 Clazz.defineMethod(Short, "$valueOf",
440 return new Short(Short.parseShort (s, r));
441 }, "String, Number");
444 Short.$valueOf = Short.prototype.$valueOf;
445 Clazz.overrideMethod(Short, "equals",
447 if(s == null || !Clazz.instanceOf(s, Short) ){
450 return s.valueOf() == this.valueOf();
452 Short.toHexString = Short.prototype.toHexString = function (i) {
453 return i.toString (16);
455 Short.toOctalString = Short.prototype.toOctalString = function (i) {
456 return i.toString (8);
458 Short.toBinaryString = Short.prototype.toBinaryString = function (i) {
459 return i.toString (2);
461 Short.decode = Clazz.defineMethod(Short, "decode",
463 n = Integer.decodeRaw(n);
464 if (isNaN(n) || n < -32768|| n > 32767)
465 throw new NumberFormatException("Invalid Short");
469 java.lang.Byte=Byte=function(){
470 Clazz.instantialize(this,arguments);
472 Clazz.decorateAsType(Byte,"Byte",Number,Comparable,null,true);
473 Byte.prototype.valueOf=function(){return 0;};
474 Byte.toString=Byte.prototype.toString=function(){
475 if(arguments.length!=0){
476 return""+arguments[0];
477 }else if(this===Byte){
478 return"class java.lang.Byte";
480 return""+this.valueOf();
482 Clazz.makeConstructor(Byte,
484 if (typeof v != "number")
485 v = Integer.parseIntRadix(v, 10);
487 this.valueOf=function(){
492 Byte.serialVersionUID=Byte.prototype.serialVersionUID=-7183698231559129828;
493 Byte.MIN_VALUE=Byte.prototype.MIN_VALUE=-128;
494 Byte.MAX_VALUE=Byte.prototype.MAX_VALUE=127;
495 Byte.SIZE=Byte.prototype.SIZE=8;
496 Byte.TYPE=Byte.prototype.TYPE=Byte;
498 Clazz.defineMethod(Byte,"parseByteRadix",
500 return Integer.parseIntRadix(s, radix).byteValue();
502 Byte.parseByteRadix=Byte.prototype.parseByteRadix;
504 Clazz.defineMethod(Byte,"parseByte",
506 return Byte.parseByte(s,10);
509 Byte.parseByte=Byte.prototype.parseByte;
511 Clazz.overrideMethod(Byte, "$valueOf",
516 Byte.$valueOf=Byte.prototype.$valueOf;
517 Clazz.overrideMethod(Byte,"equals",
519 if(s==null||!Clazz.instanceOf(s,Byte)){
522 return s.valueOf()==this.valueOf();
524 Byte.toHexString=Byte.prototype.toHexString=function(i){
525 return i.toString(16);
527 Byte.toOctalString=Byte.prototype.toOctalString=function(i){
528 return i.toString(8);
530 Byte.toBinaryString=Byte.prototype.toBinaryString=function(i){
531 return i.toString(2);
533 Byte.decode=Clazz.defineMethod(Byte,"decode",
535 n = Integer.decodeRaw(n);
536 if (isNaN(n) || n < -128|| n > 127)
537 throw new NumberFormatException("Invalid Byte");
541 Clazz._floatToString = function(f) {
543 if (s.indexOf(".") < 0 && s.indexOf("e") < 0)
548 java.lang.Float=Float=function(){
549 Clazz.instantialize(this,arguments);
551 Clazz.decorateAsType(Float,"Float",Number,Comparable,null,true);
552 Float.prototype.valueOf=function(){return 0;};
553 Float.toString=Float.prototype.toString=function(){
554 if(arguments.length!=0){
555 return Clazz._floatToString(arguments[0]);
556 }else if(this===Float){
557 return"class java.lang.Float";
559 return Clazz._floatToString(this.valueOf());
562 Clazz.overrideConstructor(Float, function(v){
563 v == null && (v = 0);
564 if (typeof v != "number")
566 this.valueOf=function(){return v;}
569 Float.serialVersionUID=Float.prototype.serialVersionUID=-2671257302660747028;
570 Float.MIN_VALUE=Float.prototype.MIN_VALUE=3.4028235e+38;
571 Float.MAX_VALUE=Float.prototype.MAX_VALUE=1.4e-45;
572 Float.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY;
573 Float.POSITIVE_INFINITY=Number.POSITIVE_INFINITY;
574 Float.NaN=Number.NaN;
575 Float.TYPE=Float.prototype.TYPE=Float;
577 Clazz.defineMethod(Float,"parseFloat",
580 throw new NumberFormatException("null");
582 if (typeof s == "number")return s; // important -- typeof NaN is "number" and is OK here
583 var floatVal=Number(s);
585 throw new NumberFormatException("Not a Number : "+s);
589 Float.parseFloat=Float.prototype.parseFloat;
591 Clazz.overrideMethod(Float,"$valueOf",
596 Float.$valueOf=Float.prototype.$valueOf;
598 Clazz.defineMethod(Float,"isNaN",
602 Float.isNaN=Float.prototype.isNaN;
603 Clazz.defineMethod(Float,"isInfinite",
605 return!isFinite(num);
607 Float.isInfinite=Float.prototype.isInfinite;
609 Clazz.overrideMethod(Float,"equals",
611 if(s==null||!Clazz.instanceOf(s,Float)){
614 return s.valueOf()==this.valueOf();
617 java.lang.Double=Double=function(){
618 Clazz.instantialize(this,arguments);
620 Clazz.decorateAsType(Double,"Double",Number,Comparable,null,true);
621 Double.prototype.valueOf=function(){return 0;};
622 Double.toString=Double.prototype.toString=function(){
623 if(arguments.length!=0){
624 return Clazz._floatToString(arguments[0]);
625 }else if(this===Double){
626 return"class java.lang.Double";
628 return Clazz._floatToString(this.valueOf());
631 Clazz.overrideConstructor(Double, function(v){
632 v == null && (v = 0);
633 if (typeof v != "number")
634 v = Double.parseDouble(v);
635 this.valueOf=function(){return v;};
638 Double.serialVersionUID=Double.prototype.serialVersionUID=-9172774392245257468;
639 Double.MIN_VALUE=Double.prototype.MIN_VALUE=4.9e-324;
640 Double.MAX_VALUE=Double.prototype.MAX_VALUE=1.7976931348623157e+308;
641 Double.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY;
642 Double.POSITIVE_INFINITY=Number.POSITIVE_INFINITY;
643 Double.NaN=Number.NaN;
644 Double.TYPE=Double.prototype.TYPE=Double;
646 Clazz.defineMethod(Double,"isNaN",
650 Double.isNaN=Double.prototype.isNaN;
651 Clazz.defineMethod(Double,"isInfinite",
653 return!isFinite(num);
655 Double.isInfinite=Double.prototype.isInfinite;
657 Clazz.defineMethod(Double,"parseDouble",
660 throw new NumberFormatException("null");
662 if (typeof s == "number")return s; // important -- typeof NaN is "number" and is OK here
663 var doubleVal=Number(s);
664 if(isNaN(doubleVal)){
665 throw new NumberFormatException("Not a Number : "+s);
669 Double.parseDouble=Double.prototype.parseDouble;
672 Clazz.defineMethod(Double,"$valueOf",
674 return new Double(this.parseDouble(s));
678 Clazz.defineMethod(Double,"$valueOf",
680 return new Double(v);
683 Double.$valueOf=Double.prototype.$valueOf;
685 Clazz.overrideMethod(Double,"equals",
687 if(s==null||!Clazz.instanceOf(s,Double)){
690 return s.valueOf()==this.valueOf();
694 //java.lang.B00lean = Boolean; ?? BH why this?
695 Boolean = java.lang.Boolean = Boolean || function () {Clazz.instantialize (this, arguments);};
696 if (Clazz._supportsNativeObject) {
697 for (var i = 0; i < Clazz._extendedObjectMethods.length; i++) {
698 var p = Clazz._extendedObjectMethods[i];
699 Boolean.prototype[p] = Clazz._O.prototype[p];
702 Boolean.__CLASS_NAME__="Boolean";
703 Clazz.implementOf(Boolean,[java.io.Serializable,java.lang.Comparable]);
704 Boolean.equals=Clazz._innerFunctions.equals;
705 Boolean.getName=Clazz._innerFunctions.getName;
706 Boolean.serialVersionUID=Boolean.prototype.serialVersionUID=-3665804199014368530;
708 //Clazz.makeConstructor(Boolean,
710 //this.valueOf=function(){
715 Clazz.overrideConstructor(Boolean,
717 var b = ((typeof s == "string" ? Boolean.toBoolean(s) : s) ? true : false);
718 this.valueOf=function(){return b;};
721 Boolean.parseBoolean=Clazz.defineMethod(Boolean,"parseBoolean",
723 return Boolean.toBoolean(s);
725 Clazz.defineMethod(Boolean,"booleanValue",
727 return this.valueOf();
729 Boolean.$valueOf=Clazz.overrideMethod(Boolean,"$valueOf",
731 return((typeof b == "string"? "true".equalsIgnoreCase(b) : b)?Boolean.TRUE:Boolean.FALSE);
735 Boolean.toString=Clazz.defineMethod(Boolean,"toString",
737 return b?"true":"false";
741 Clazz.overrideMethod(Boolean,"toString",
743 return this.valueOf()?"true":"false";
745 Clazz.overrideMethod(Boolean,"hashCode",
747 return this.valueOf()?1231:1237;
749 Clazz.overrideMethod(Boolean,"equals",
751 if(Clazz.instanceOf(obj,Boolean)){
752 return this.booleanValue()==obj.booleanValue();
755 Boolean.getBoolean=Clazz.defineMethod(Boolean,"getBoolean",
759 result=Boolean.toBoolean(System.getProperty(name));
761 if(Clazz.instanceOf(e,IllegalArgumentException)){
762 }else if(Clazz.instanceOf(e,NullPointerException)){
769 Clazz.overrideMethod(Boolean,"compareTo",
771 return(b.value==this.value?0:(this.value?1:-1));
773 Boolean.toBoolean=Clazz.defineMethod(Boolean,"toBoolean",
775 return((name!=null)&&name.equalsIgnoreCase("true"));
776 },$fz.isPrivate=true,$fz),"~S");
777 Boolean.TRUE=Boolean.prototype.TRUE=new Boolean(true);
778 Boolean.FALSE=Boolean.prototype.FALSE=new Boolean(false);
779 Boolean.TYPE=Boolean.prototype.TYPE=Boolean;
782 Clazz._Encoding=new Object();
784 (function(Encoding) {
786 Encoding.UTF8="utf-8";
787 Encoding.UTF16="utf-16";
788 Encoding.ASCII="ascii";
791 Encoding.guessEncoding=function(str){
792 if(str.charCodeAt(0)==0xEF&&str.charCodeAt(1)==0xBB&&str.charCodeAt(2)==0xBF){
793 return Encoding.UTF8;
794 }else if(str.charCodeAt(0)==0xFF&&str.charCodeAt(1)==0xFE){
795 return Encoding.UTF16;
797 return Encoding.ASCII;
801 Encoding.readUTF8=function(str){
802 var encoding=this.guessEncoding(str);
804 if(encoding==Encoding.UTF8){
806 }else if(encoding==Encoding.UTF16){
809 var arrs=new Array();
810 for(var i=startIdx;i<str.length;i++){
811 var charCode=str.charCodeAt(i);
813 arrs[arrs.length]=str.charAt(i);
814 }else if(charCode>0xc0&&charCode<0xe0){
815 var c1=charCode&0x1f;
817 var c2=str.charCodeAt(i)&0x3f;
819 arrs[arrs.length]=String.fromCharCode(c);
820 }else if(charCode>=0xe0){
821 var c1=charCode&0x0f;
823 var c2=str.charCodeAt(i)&0x3f;
825 var c3=str.charCodeAt(i)&0x3f;
826 var c=(c1<<12)+(c2<<6)+c3;
827 arrs[arrs.length]=String.fromCharCode(c);
830 return arrs.join('');
833 Encoding.convert2UTF8=function(str){
834 var encoding=this.guessEncoding(str);
836 if(encoding==Encoding.UTF8){
838 }else if(encoding==Encoding.UTF16){
843 var arrs=new Array(offset+str.length-startIdx);
845 for(var i=startIdx;i<str.length;i++){
846 var charCode=str.charCodeAt(i);
848 arrs[offset+i-startIdx]=str.charAt(i);
849 }else if(charCode<=0x07ff){
850 var c1=0xc0+((charCode&0x07c0)>>6);
851 var c2=0x80+(charCode&0x003f);
852 arrs[offset+i-startIdx]=String.fromCharCode(c1)+String.fromCharCode(c2);
854 var c1=0xe0+((charCode&0xf000)>>12);
855 var c2=0x80+((charCode&0x0fc0)>>6);
856 var c3=0x80+(charCode&0x003f);
857 arrs[offset+i-startIdx]=String.fromCharCode(c1)+String.fromCharCode(c2)+String.fromCharCode(c3);
860 return arrs.join('');
862 Encoding.base64Chars=new Array(
863 'A','B','C','D','E','F','G','H',
864 'I','J','K','L','M','N','O','P',
865 'Q','R','S','T','U','V','W','X',
866 'Y','Z','a','b','c','d','e','f',
867 'g','h','i','j','k','l','m','n',
868 'o','p','q','r','s','t','u','v',
869 'w','x','y','z','0','1','2','3',
870 '4','5','6','7','8','9','+','/'
872 Encoding.encodeBase64=function(str){
873 if(str==null||str.length==0)return str;
874 var b64=Encoding.base64Chars;
875 var length=str.length;
880 c0=str.charCodeAt(index++);
881 buf[buf.length]=b64[c0>>2];
883 c1=str.charCodeAt(index++);
884 buf[buf.length]=b64[((c0<<4)&0x30)|(c1>>4)];
886 c2=str.charCodeAt(index++);
887 buf[buf.length]=b64[((c1<<2)&0x3c)|(c2>>6)];
888 buf[buf.length]=b64[c2&0x3F];
890 buf[buf.length]=b64[((c1<<2)&0x3c)];
894 buf[buf.length]=b64[(c0<<4)&0x30];
901 Encoding.decodeBase64=function(str){
902 if(str==null||str.length==0)return str;
903 var b64=Encoding.base64Chars;
904 var xb64=Encoding.xBase64Chars;
905 if(Encoding.xBase64Chars==null){
907 for(var i=0;i<b64.length;i++){
910 Encoding.xBase64Chars=xb64;
912 var length=str.length;
917 while(index<length&&c++<60000){
918 c0=xb64[str.charAt(index++)];
919 c1=xb64[str.charAt(index++)];
920 c2=xb64[str.charAt(index++)];
921 c3=xb64[str.charAt(index++)];
922 buf[buf.length]=String.fromCharCode(((c0<<2)&0xff)|c1>>4);
924 buf[buf.length]=String.fromCharCode(((c1<<4)&0xff)|c2>>2);
926 buf[buf.length]=String.fromCharCode(((c2<<6)&0xff)|c3);
933 if(String.prototype.$replace==null){
934 java.lang.String=String;
935 if(Clazz._supportsNativeObject){
936 for(var i=0;i<Clazz._extendedObjectMethods.length;i++){
937 var p=Clazz._extendedObjectMethods[i];
938 if("to$tring"==p||"toString"==p||"equals"==p||"hashCode"==p){
941 String.prototype[p]=Clazz._O.prototype[p];
945 Clazz.implementOf(String,[java.io.Serializable,CharSequence,Comparable]);
947 String.getName=Clazz._innerFunctions.getName;
949 String.serialVersionUID=String.prototype.serialVersionUID=-6849794470754667710;
954 sp.$replace=function(c1,c2){
955 if (c1 == c2 || this.indexOf (c1) < 0) return "" + this;
956 if (c1.length == 1) {
957 if ("\\$.*+|?^{}()[]".indexOf(c1) >= 0) c1 = "\\" + c1;
959 c1=c1.replace(/([\\\$\.\*\+\|\?\^\{\}\(\)\[\]])/g,function($0,$1){return"\\"+$1;});
961 return this.replace(new RegExp(c1,"gm"),c2);
963 sp.$generateExpFunction=function(str){
969 for(;i<str.length;i++){
970 var ch=str.charAt(i);
971 if(i!=str.length-1&&ch=='\\'){
978 }else if(i!=str.length-1&&ch=='$'){
980 orders[idx]=parseInt(str.charAt(i));
995 var funStr="f = function (";
996 var max=Math.max.apply({},orders);
1003 funStr+=") { return ";
1004 for(i=0;i<arr.length-1;i++){
1005 funStr+="\""+arr[i]+"\" + $"+orders[i]+" + ";
1007 funStr+="\""+arr[i]+"\"; }";
1013 sp.replaceAll=function(exp,str){
1014 var regExp=new RegExp(exp,"gm");
1015 return this.replace(regExp,this.$generateExpFunction(str));
1017 sp.replaceFirst=function(exp,str){
1018 var regExp=new RegExp(exp,"m");
1019 return this.replace(regExp,this.$generateExpFunction(str));
1021 sp.matches=function(exp){
1025 var regExp=new RegExp(exp,"gm");
1026 var m=this.match(regExp);
1027 return m!=null&&m.length!=0;
1029 sp.regionMatches=function(ignoreCase,toffset,
1032 if(typeof ignoreCase=="number"
1033 ||(ignoreCase!=true&&ignoreCase!=false)){
1043 if((ooffset<0)||(toffset<0)||(toffset>this.length-len)||
1044 (ooffset>other.length-len)){
1047 var s1=this.substring(toffset,toffset+len);
1048 var s2=other.substring(ooffset,ooffset+len);
1050 s1=s1.toLowerCase();
1051 s2=s2.toLowerCase();
1058 sp.$plit=function(regex,limit){
1059 if (!limit && regex == " ")
1060 return this.split(regex);
1062 if(limit!=null&&limit>0){
1066 var regExp=new RegExp("("+regex+")","gm");
1068 var s=this.replace(regExp,function($0,$1){
1072 }else if(count>limit){
1078 regExp=new RegExp(regex,"gm");
1079 var arr=this.split(regExp);
1080 if(arr.length>limit){
1081 arr[limit-1]=s.substring(s.indexOf("@@_@@")+5);
1086 var regExp=new RegExp(regex,"gm");
1087 return this.split(regExp);
1092 var len=this.length;
1095 while((st<len)&&(this.charAt(st)<=' ')){
1098 while((st<len)&&(this.charAt(len-1)<=' ')){
1101 return((st>0)||(len<len))?this.substring(st,len):this;
1109 return this.replace(/^\s+/g,'').replace(/\s+$/g,'');
1112 if (!sp.startsWith || !sp.endsWith) {
1113 var sn=function(s, prefix,toffset){
1116 var pc=prefix.length;
1118 if((toffset<0)||(toffset>s.length-pc)){
1122 if(s.charAt(to++)!=prefix.charAt(po++)){
1129 sp.startsWith=function(prefix){
1130 if(arguments.length==1){
1131 return sn(this,arguments[0],0);
1132 }else if(arguments.length==2){
1133 return sn(this,arguments[0],arguments[1]);
1139 sp.endsWith=function(suffix){
1140 return sn(this, suffix,this.length-suffix.length);
1145 sp.equals=function(anObject){
1146 return this.valueOf()==anObject;
1149 sp.equalsIgnoreCase=function(anotherString){
1150 return(anotherString==null)?false:(this==anotherString
1151 ||this.toLowerCase()==anotherString.toLowerCase());
1157 sp.hashCode=function(){
1161 var len=this.length;
1162 for(var i=0;i<len;i++){
1163 h=31*h+this.charCodeAt(off++);
1171 sp.getBytes=function(){
1172 if(arguments.length==4){
1173 return this.getChars(arguments[0],arguments[1],arguments[2],arguments[3]);
1176 if(arguments.length==1){
1177 var cs=arguments[0].toString().toLowerCase();
1179 "utf-8","UTF8","us-ascii","iso-8859-1","8859_1","gb2312","gb18030","gbk"
1182 for(var i=0;i<charset.length;i++){
1189 throw new java.io.UnsupportedEncodingException();
1191 if(cs=="utf-8"||cs=="utf8"){
1192 s=Encoding.convert2UTF8(this);
1195 var arrs=new Array(s.length);
1197 for(var i=0;i<s.length;i++){
1202 arrs[ii+2]=(c&0xff00)>>8;
1213 sp.compareTo=function(anotherString){
1214 if(anotherString==null){
1215 throw new java.lang.NullPointerException();
1217 var len1=this.length;
1218 var len2=anotherString.length;
1219 var n=Math.min(len1,len2);
1222 var c1=this.charCodeAt(k);
1223 var c2=anotherString.charCodeAt(k);
1234 sp.contains = function(a) {return this.indexOf(a) >= 0} // bh added
1235 sp.compareTo = function(a){return this > a ? 1 : this < a ? -1 : 0} // bh added
1239 sp.toCharArray=function(){
1240 var result=new Array(this.length);
1241 for(var i=0;i<this.length;i++){
1242 result[i]=this.charAt(i);
1246 String.value0f=String.valueOf;
1247 String.valueOf=function(o){
1249 return String.value0f();
1251 if(o instanceof Array){
1252 if(arguments.length==1){
1255 var off=arguments[1];
1256 var len=arguments[2];
1257 var oo=new Array(len);
1258 for(var i=0;i<len;i++){
1267 sp.subSequence=function(beginIndex,endIndex){
1268 return this.substring(beginIndex,endIndex);
1271 sp.compareToIgnoreCase=function(str){
1273 throw new NullPointerException();
1275 var s1=this.toUpperCase();
1276 var s2=str.toUpperCase();
1280 var s1=this.toLowerCase();
1281 var s2=str.toLowerCase();
1292 sp.contentEquals=function(sb){
1293 if(this.length!=sb.length()){
1296 var v=sb.getValue();
1301 if(this.charCodeAt(i++)!=v[j++]){
1308 sp.getChars=function(srcBegin,srcEnd,dst,dstBegin){
1310 throw new StringIndexOutOfBoundsException(srcBegin);
1312 if(srcEnd>this.length){
1313 throw new StringIndexOutOfBoundsException(srcEnd);
1315 if(srcBegin>srcEnd){
1316 throw new StringIndexOutOfBoundsException(srcEnd-srcBegin);
1319 throw new NullPointerException();
1321 for(var i=0;i<srcEnd-srcBegin;i++){
1322 dst[dstBegin+i]=this.charAt(srcBegin+i);
1325 sp.$concat=sp.concat;
1326 sp.concat=function(s){
1328 throw new NullPointerException();
1330 return this.$concat(s);
1333 sp.$lastIndexOf=sp.lastIndexOf;
1334 sp.lastIndexOf=function(s,last){
1335 if(last!=null&&last+this.length<=0){
1339 return this.$lastIndexOf(s,last);
1341 return this.$lastIndexOf(s);
1345 sp.intern=function(){
1346 return this.valueOf();
1348 String.copyValueOf=sp.copyValueOf=function(){
1349 if(arguments.length==1){
1350 return String.instantialize(arguments[0]);
1352 return String.instantialize(arguments[0],arguments[1],arguments[2]);
1356 sp.codePointAt || (sp.codePointAt = sp.charCodeAt); // Firefox only
1359 })(String.prototype);
1363 String.indexOf=function(source,sourceOffset,sourceCount,
1364 target,targetOffset,targetCount,fromIndex){
1365 if(fromIndex>=sourceCount){
1366 return(targetCount==0?sourceCount:-1);
1375 var first=target[targetOffset];
1376 var i=sourceOffset+fromIndex;
1377 var max=sourceOffset+(sourceCount-targetCount);
1379 startSearchForFirstChar:
1382 while(i<=max&&source[i]!=first){
1391 var end=j+targetCount-1;
1392 var k=targetOffset+1;
1394 if(source[j++]!=target[k++]){
1397 continue startSearchForFirstChar;
1400 return i-sourceOffset;
1406 String.instantialize=function(){
1407 if(arguments.length==0){
1408 return new String();
1409 }else if(arguments.length==1){
1411 if(typeof x=="string"||x instanceof String){
1412 return new String(x);
1413 }else if(x instanceof Array){
1414 if(x.length>0&&typeof x[0]=="number"){
1415 var arr=new Array(x.length);
1416 for(var i=0;i<x.length;i++){
1417 arr[i]=String.fromCharCode(x[i]&0xff);
1419 return Encoding.readUTF8(arr.join(''));
1422 }else if(x.__CLASS_NAME__=="StringBuffer"
1423 ||x.__CLASS_NAME__=="java.lang.StringBuffer"){
1424 var value=x.shareValue();
1425 var length=x.length();
1426 var valueCopy=new Array(length);
1427 for(var i=0;i<length;i++){
1428 valueCopy[i]=value[i];
1430 return valueCopy.join('')
1435 }else if(arguments.length==2){
1437 var hibyte=arguments[1];
1438 if(typeof hibyte=="string"){
1439 return String.instantialize(x,0,x.length,hibyte);
1441 return String.instantialize(x,hibyte,0,x.length);
1443 }else if(arguments.length==3){
1444 var bytes=arguments[0];
1445 var offset=arguments[1];
1446 var length=arguments[2];
1447 if(arguments[2]instanceof Array){
1449 offset=arguments[0];
1450 length=arguments[1];
1452 var arr=new Array(length);
1453 if(offset<0||length+offset>bytes.length){
1454 throw new IndexOutOfBoundsException();
1457 var isChar=(bytes[offset].length!=null);
1459 for(var i=0;i<length;i++){
1460 arr[i]=bytes[offset+i];
1463 for(var i=0;i<length;i++){
1464 arr[i]=String.fromCharCode(bytes[offset+i]);
1468 return arr.join('');
1469 }else if(arguments.length==4){
1470 var bytes=arguments[0];
1472 if(typeof y=="string"||y instanceof String){
1473 var offset=arguments[1];
1474 var length=arguments[2];
1475 var arr=new Array(length);
1476 for(var i=0;i<length;i++){
1477 arr[i]=bytes[offset+i];
1478 if(typeof arr[i]=="number"){
1479 arr[i]=String.fromCharCode(arr[i]&0xff);
1482 var cs=y.toLowerCase();
1483 if(cs=="utf-8"||cs=="utf8"){
1484 return Encoding.readUTF8(arr.join(''));
1486 return arr.join('');
1489 var count=arguments[3];
1490 var offset=arguments[2];
1491 var hibyte=arguments[1];
1492 var value=new Array(count);
1494 for(var i=count;i-->0;){
1495 value[i]=String.fromCharCode(bytes[i+offset]&0xff);
1499 for(var i=count;i-->0;){
1500 value[i]=String.fromCharCode(hibyte|(bytes[i+offset]&0xff));
1503 return value.join('');
1507 for(var i=0;i<arguments.length;i++){
1518 String.instantialize=function(){
1519 switch (arguments.length) {
1521 return new String();
1524 if(typeof x=="string"||x instanceof String){
1525 return new String(x);
1527 if(x instanceof Array || x instanceof Int32Array){
1530 if(typeof x[0]!="number")
1532 var arr=new Array(x.length);
1533 for(var i=0;i<x.length;i++)
1534 arr[i]=String.fromCharCode(x[i]&0xff);
1535 return Encoding.readUTF8(arr.join(''));
1537 if(x.__CLASS_NAME__=="StringBuffer"||x.__CLASS_NAME__=="java.lang.StringBuffer"){
1538 var value=x.shareValue();
1539 var length=x.length();
1540 var valueCopy=new Array(length);
1541 for(var i=0;i<length;i++){
1542 valueCopy[i]=value[i];
1544 return valueCopy.join('')
1549 var hibyte=arguments[1];
1550 if(typeof hibyte=="string"){
1551 return String.instantialize(x,0,x.length,hibyte);
1553 return String.instantialize(x,hibyte,0,x.length);
1555 var bytes=arguments[0];
1556 var offset=arguments[1];
1557 var length=arguments[2];
1558 if(arguments[2]instanceof Array){
1560 offset=arguments[0];
1561 length=arguments[1];
1563 var arr=new Array(length);
1564 if(offset<0||length+offset>bytes.length){
1565 throw new IndexOutOfBoundsException();
1568 var isChar=(bytes[offset].length!=null);
1570 for(var i=0;i<length;i++){
1571 arr[i]=bytes[offset+i];
1574 for(var i=0;i<length;i++){
1575 arr[i]=String.fromCharCode(bytes[offset+i]);
1579 return arr.join('');
1581 var bytes=arguments[0];
1583 if(typeof y=="string"||y instanceof String){
1584 var offset=arguments[1];
1585 var length=arguments[2];
1586 var arr=new Array(length);
1587 for(var i=0;i<length;i++){
1588 arr[i]=bytes[offset+i];
1589 if(typeof arr[i]=="number"){
1590 arr[i]=String.fromCharCode(arr[i]&0xff);
1593 var cs=y.toLowerCase();
1594 if(cs=="utf-8"||cs=="utf8"){
1595 return Encoding.readUTF8(arr.join(''));
1597 return arr.join('');
1599 var count=arguments[3];
1600 var offset=arguments[2];
1601 var hibyte=arguments[1];
1602 var value=new Array(count);
1604 for(var i=count;i-->0;){
1605 value[i]=String.fromCharCode(bytes[i+offset]&0xff);
1609 for(var i=count;i-->0;){
1610 value[i]=String.fromCharCode(hibyte|(bytes[i+offset]&0xff));
1613 return value.join('');
1616 for(var i=0;i<arguments.length;i++){
1623 if(navigator.userAgent.toLowerCase().indexOf("chrome")!=-1){
1624 String.prototype.toString=function(){return this.valueOf();};
1629 })(Clazz._Encoding);
1633 c$=Clazz.decorateAsClass(function(){
1635 Clazz.instantialize(this,arguments);
1636 },java.lang,"Character",null,[java.io.Serializable,Comparable]);
1637 Clazz.makeConstructor(c$,
1641 Clazz.defineMethod(c$,"charValue",
1645 Clazz.overrideMethod(c$,"hashCode",
1647 return(this.value).charCodeAt(0);
1649 Clazz.overrideMethod(c$,"equals",
1651 if(Clazz.instanceOf(obj,Character)){
1652 return(this.value).charCodeAt(0)==((obj).charValue()).charCodeAt(0);
1655 Clazz.overrideMethod(c$,"compareTo",
1657 return(this.value).charCodeAt(0)-(c.value).charCodeAt(0);
1659 c$.toLowerCase=Clazz.defineMethod(c$,"toLowerCase",
1661 return(""+c).toLowerCase().charAt(0);
1663 c$.toUpperCase=Clazz.defineMethod(c$,"toUpperCase",
1665 return(""+c).toUpperCase().charAt(0);
1667 c$.isDigit=Clazz.defineMethod(c$,"isDigit",
1669 c = c.charCodeAt(0);
1670 return (48 <= c && c <= 57);
1672 c$.isUpperCase=Clazz.defineMethod(c$,"isUpperCase",
1674 c = c.charCodeAt(0);
1675 return (65 <= c && c <= 90);
1677 c$.isLowerCase=Clazz.defineMethod(c$,"isLowerCase",
1679 c = c.charCodeAt(0);
1680 return (97 <= c && c <= 122);
1682 c$.isWhitespace=Clazz.defineMethod(c$,"isWhitespace",
1684 c = (c).charCodeAt(0);
1685 return (c >= 0x1c && c <= 0x20 || c >= 0x9 && c <= 0xd || c == 0x1680
1686 || c >= 0x2000 && c != 0x2007 && (c <= 0x200b || c == 0x2028 || c == 0x2029 || c == 0x3000));
1688 c$.isLetter=Clazz.defineMethod(c$,"isLetter",
1690 c = c.charCodeAt(0);
1691 return (65 <= c && c <= 90 || 97 <= c && c <= 122);
1693 c$.isLetterOrDigit=Clazz.defineMethod(c$,"isLetterOrDigit",
1695 c = c.charCodeAt(0);
1696 return (65 <= c && c <= 90 || 97 <= c && c <= 122 || 48 <= c && c <= 57);
1698 c$.isSpaceChar=Clazz.defineMethod(c$,"isSpaceChar",
1700 var i = c.charCodeAt(0);
1701 if(i==0x20||i==0xa0||i==0x1680)return true;
1702 if(i<0x2000)return false;
1703 return i<=0x200b||i==0x2028||i==0x2029||i==0x202f||i==0x3000;
1705 c$.digit=Clazz.defineMethod(c$,"digit",
1707 var i = c.charCodeAt(0);
1708 if(radix >= 2 && radix <= 36){
1711 if(48 <= i && i <= 57){
1713 }else if(97 <= i && i <= 122){
1715 }else if(65 <= i && i <= 90){
1718 return (result < radix ? result : -1);
1723 Clazz.overrideMethod(c$,"toString",
1725 var buf=[this.value];
1726 return String.valueOf(buf);
1728 c$.toString=Clazz.overrideMethod(c$,"toString",
1731 if(this===Character){
1732 return"class java.lang.Character";
1734 }return String.valueOf(c);
1736 Clazz.defineStatics(c$,
1737 "MIN_VALUE",'\u0000',
1738 "MAX_VALUE",'\uffff',
1743 java.lang.Character.TYPE=java.lang.Character.prototype.TYPE=java.lang.Character;
1747 Clazz._ArrayWrapper = function(a, type) {
1750 __CLASS_NAME__:"Array",
1752 getComponentType: function() {return type},
1753 instanceOf: function(o) { return Clazz.instanceOf(type, o) },
1754 getName: function() { return this.__CLASS_NAME__ }
1757 c$=Clazz_declareType(java.lang.reflect,"Array");
1758 c$.newInstance=Clazz_defineMethod(c$,"newInstance",
1759 function(componentType,size){
1760 var a = Clazz_newArray(size);
1761 a.getClass = function() { return new Clazz._ArrayWrapper(this, componentType);};
1766 Date.TYPE="javautil.Date";
1767 Date.__CLASS_NAME__="Date";
1768 Clazz.implementOf(Date,[java.io.Serializable,java.lang.Comparable]);
1770 Clazz.defineMethod(javautil.Date,"clone",
1772 return new Date(this.getTime());
1775 Clazz.defineMethod(javautil.Date,"before",
1777 return this.getTime()<when.getTime();
1779 Clazz.defineMethod(javautil.Date,"after",
1781 return this.getTime()>when.getTime();
1783 Clazz.defineMethod(javautil.Date,"equals",
1785 return Clazz.instanceOf(obj,javautil.Date)&&this.getTime()==(obj).getTime();
1787 Clazz.defineMethod(javautil.Date,"compareTo",
1788 function(anotherDate){
1789 var thisTime=this.getTime();
1790 var anotherTime=anotherDate.getTime();
1791 return(thisTime<anotherTime?-1:(thisTime==anotherTime?0:1));
1793 Clazz.defineMethod(javautil.Date,"compareTo",
1795 return this.compareTo(o);
1797 Clazz.overrideMethod(javautil.Date,"hashCode",
1799 var ht=this.getTime();
1800 return parseInt(ht)^parseInt((ht>>32));
1803 c$=Clazz.decorateAsClass(function(){
1805 Clazz.instantialize(this,arguments);
1806 },javautil,"EventObject",null,java.io.Serializable);
1807 Clazz.makeConstructor(c$,
1809 if(source!=null)this.source=source;
1810 else throw new IllegalArgumentException();
1812 Clazz.defineMethod(c$,"getSource",
1816 Clazz.overrideMethod(c$,"toString",
1818 return this.getClass().getName()+"[source="+String.valueOf(this.source)+']';
1820 Clazz.declareInterface(javautil,"EventListener");
1822 c$=Clazz.decorateAsClass(function(){
1824 Clazz.instantialize(this,arguments);
1825 },javautil,"EventListenerProxy",null,javautil.EventListener);
1826 Clazz.makeConstructor(c$,
1828 this.listener=listener;
1829 },"javautil.EventListener");
1830 Clazz.defineMethod(c$,"getListener",
1832 return this.listener;
1834 Clazz.declareInterface(javautil,"Iterator");
1836 Clazz.declareInterface(javautil,"ListIterator",javautil.Iterator);
1837 Clazz.declareInterface(javautil,"Enumeration");
1838 Clazz.declareInterface(javautil,"Collection",Iterable);
1840 Clazz.declareInterface(javautil,"Set",javautil.Collection);
1841 Clazz.declareInterface(javautil,"Map");
1842 Clazz.declareInterface(javautil.Map,"Entry");
1844 Clazz.declareInterface(javautil,"List",javautil.Collection);
1846 Clazz.declareInterface(javautil,"Queue",javautil.Collection);
1847 Clazz.declareInterface(javautil,"RandomAccess");
1848 c$=Clazz.decorateAsClass(function(){
1849 this.detailMessage=null;
1851 this.stackTrace=null;
1852 Clazz.instantialize(this,arguments);
1853 },java.lang,"Throwable",null,java.io.Serializable);
1854 Clazz.prepareFields(c$,function(){
1856 //alert("e0 "+ arguments.callee.caller.caller.caller.caller.caller)
1858 Clazz.makeConstructor(c$,
1860 this.fillInStackTrace();
1862 Clazz.makeConstructor(c$,
1864 this.fillInStackTrace();
1865 this.detailMessage=message;
1867 Clazz.makeConstructor(c$,
1868 function(message,cause){
1869 this.fillInStackTrace();
1870 this.detailMessage=message;
1873 Clazz.makeConstructor(c$,
1875 this.fillInStackTrace();
1876 this.detailMessage=(cause==null?null:cause.toString());
1879 Clazz.defineMethod(c$,"getMessage",
1881 return (this.message || this.detailMessage || this.toString());
1883 Clazz.defineMethod(c$,"getLocalizedMessage",
1885 return this.getMessage();
1887 Clazz.defineMethod(c$,"getCause",
1889 return(this.cause===this?null:this.cause);
1891 Clazz.defineMethod(c$,"initCause",
1893 if(this.cause!==this)throw new IllegalStateException("Can't overwrite cause");
1894 if(cause===this)throw new IllegalArgumentException("Self-causation not permitted");
1898 Clazz.overrideMethod(c$,"toString",
1900 var s=this.getClass().getName();
1901 var message=this.message || this.detailMessage;
1902 return(message ? s+": "+message : s);
1904 Clazz.defineMethod(c$,"printStackTrace",
1906 System.err.println(this.getStackTrace ? this.getStackTrace() : this.message + " " + Clazz.getStackTrace());
1909 Clazz.defineMethod(c$,"getStackTrace",
1911 var s = "" + this + "\n";
1912 for(var i=0;i<this.stackTrace.length;i++){
1913 var t=this.stackTrace[i];
1914 var x=t.methodName.indexOf("(");
1915 var n=t.methodName.substring(0,x).replace(/\s+/g,"");
1916 if(n!="construct"||t.nativeClazz==null
1917 ||Clazz.getInheritedLevel(t.nativeClazz,Throwable)<0){
1925 Clazz.defineMethod(c$,"printStackTrace",
1927 this.printStackTrace();
1928 },"java.io.PrintStream");
1929 Clazz.defineMethod(c$,"printStackTrace",
1931 this.printStackTrace();
1932 },"java.io.PrintWriter");
1933 Clazz.defineMethod(c$,"fillInStackTrace",
1935 this.stackTrace=new Array();
1936 var caller=arguments.callee.caller;
1937 var superCaller=null;
1938 var callerList=new Array();
1939 var index=Clazz._callingStackTraces.length-1;
1941 while(index>-1||caller!=null){
1943 var nativeClass=null;
1944 if(!noLooping||caller==Clazz.tryToSearchAndExecute||caller==Clazz.superCall||caller==null){
1949 superCaller=Clazz._callingStackTraces[index].caller;
1950 nativeClass=Clazz._callingStackTraces[index].owner;
1954 if(superCaller.claxxOwner!=null){
1955 nativeClass=superCaller.claxxOwner;
1956 }else if(superCaller.exClazz!=null){
1957 nativeClass=superCaller.exClazz;
1960 var st=new StackTraceElement(
1961 ((nativeClass!=null&&nativeClass.__CLASS_NAME__.length!=0)?
1962 nativeClass.__CLASS_NAME__:"anonymous"),
1963 ((superCaller.exName==null)?"anonymous":superCaller.exName)
1964 +" ("+Clazz.getParamsType(superCaller.arguments)+")",
1966 st.nativeClazz=nativeClass;
1967 this.stackTrace[this.stackTrace.length]=st;
1968 for(var i=0;i<callerList.length;i++){
1969 if(callerList[i]==superCaller){
1971 var st=new StackTraceElement("lost","missing",null,-3);
1972 st.nativeClazz=null;
1973 this.stackTrace[this.stackTrace.length]=st;
1978 if(superCaller!=null){
1979 callerList[callerList.length]=superCaller;
1981 caller=superCaller.arguments.callee.caller;
1983 Clazz._initializingException=false;
1986 Clazz.defineMethod(c$,"setStackTrace",
1987 function(stackTrace){
1988 var defensiveCopy=stackTrace.clone();
1989 for(var i=0;i<defensiveCopy.length;i++)if(defensiveCopy[i]==null)throw new NullPointerException("stackTrace["+i+"]");
1991 this.stackTrace=defensiveCopy;
1994 c$=Clazz.decorateAsClass(function(){
1995 this.declaringClass=null;
1996 this.methodName=null;
1999 Clazz.instantialize(this,arguments);
2000 },java.lang,"StackTraceElement",null,java.io.Serializable);
2001 Clazz.makeConstructor(c$,
2002 function(cls,method,file,line){
2003 if(cls==null||method==null){
2004 throw new NullPointerException();
2005 }this.declaringClass=cls;
2006 this.methodName=method;
2008 this.lineNumber=line;
2010 Clazz.overrideMethod(c$,"equals",
2012 if(!(Clazz.instanceOf(obj,StackTraceElement))){
2015 if((this.methodName==null)||(castObj.methodName==null)){
2017 }if(!this.getMethodName().equals(castObj.getMethodName())){
2019 }if(!this.getClassName().equals(castObj.getClassName())){
2021 }var localFileName=this.getFileName();
2022 if(localFileName==null){
2023 if(castObj.getFileName()!=null){
2026 if(!localFileName.equals(castObj.getFileName())){
2028 }}if(this.getLineNumber()!=castObj.getLineNumber()){
2032 Clazz.defineMethod(c$,"getClassName",
2034 return(this.declaringClass==null)?"<unknown class>":this.declaringClass;
2036 Clazz.defineMethod(c$,"getFileName",
2038 return this.fileName;
2040 Clazz.defineMethod(c$,"getLineNumber",
2042 return this.lineNumber;
2044 Clazz.defineMethod(c$,"getMethodName",
2046 return(this.methodName==null)?"<unknown method>":this.methodName;
2048 Clazz.overrideMethod(c$,"hashCode",
2050 if(this.methodName==null){
2052 }return this.methodName.hashCode()^this.declaringClass.hashCode();
2054 Clazz.defineMethod(c$,"isNativeMethod",
2056 return this.lineNumber==-2;
2058 Clazz.overrideMethod(c$,"toString",
2060 var buf=new StringBuilder(80);
2061 buf.append(this.getClassName());
2063 buf.append(this.getMethodName());
2064 if(this.isNativeMethod()){
2065 buf.append("(Native Method)");
2067 var fName=this.getFileName();
2069 buf.append("(Unknown Source)");
2071 var lineNum=this.getLineNumber();
2076 buf.append(lineNum);
2078 }}return buf.toString();
2080 TypeError.prototype.getMessage || (TypeError.prototype.getMessage = function(){ return (this.message || this.toString()) + (this.getStackTrace ? this.getStackTrace() : Clazz.getStackTrace())});
2081 c$=Clazz.declareType(java.lang,"Error",Throwable);
2083 c$=Clazz.declareType(java.lang,"LinkageError",Error);
2085 c$=Clazz.declareType(java.lang,"IncompatibleClassChangeError",LinkageError);
2087 c$=Clazz.declareType(java.lang,"AbstractMethodError",IncompatibleClassChangeError);
2089 c$=Clazz.declareType(java.lang,"AssertionError",Error);
2090 Clazz.makeConstructor(c$,
2091 function(detailMessage){
2092 Clazz.superConstructor(this,AssertionError,[String.valueOf(detailMessage),(Clazz.instanceOf(detailMessage,Throwable)?detailMessage:null)]);
2094 Clazz.makeConstructor(c$,
2095 function(detailMessage){
2096 this.construct("" + detailMessage);
2098 Clazz.makeConstructor(c$,
2099 function(detailMessage){
2100 this.construct("" + detailMessage);
2103 c$=Clazz.declareType(java.lang,"ClassCircularityError",LinkageError);
2105 c$=Clazz.declareType(java.lang,"ClassFormatError",LinkageError);
2107 c$=Clazz.decorateAsClass(function(){
2108 this.exception=null;
2109 Clazz.instantialize(this,arguments);
2110 },java.lang,"ExceptionInInitializerError",LinkageError);
2111 Clazz.makeConstructor(c$,
2113 Clazz.superConstructor(this,ExceptionInInitializerError);
2114 this.initCause(null);
2116 Clazz.makeConstructor(c$,
2117 function(detailMessage){
2118 Clazz.superConstructor(this,ExceptionInInitializerError,[detailMessage]);
2119 this.initCause(null);
2121 Clazz.makeConstructor(c$,
2122 function(exception){
2123 Clazz.superConstructor(this,ExceptionInInitializerError);
2124 this.exception=exception;
2125 this.initCause(exception);
2127 Clazz.defineMethod(c$,"getException",
2129 return this.exception;
2131 Clazz.overrideMethod(c$,"getCause",
2133 return this.exception;
2136 c$=Clazz.declareType(java.lang,"IllegalAccessError",IncompatibleClassChangeError);
2138 c$=Clazz.declareType(java.lang,"InstantiationError",IncompatibleClassChangeError);
2140 c$=Clazz.declareType(java.lang,"VirtualMachineError",Error);
2142 c$=Clazz.declareType(java.lang,"InternalError",VirtualMachineError);
2144 c$=Clazz.declareType(java.lang,"NoClassDefFoundError",LinkageError);
2146 c$=Clazz.declareType(java.lang,"NoSuchFieldError",IncompatibleClassChangeError);
2148 c$=Clazz.declareType(java.lang,"NoSuchMethodError",IncompatibleClassChangeError);
2150 c$=Clazz.declareType(java.lang,"OutOfMemoryError",VirtualMachineError);
2152 c$=Clazz.declareType(java.lang,"StackOverflowError",VirtualMachineError);
2154 c$=Clazz.declareType(java.lang,"UnknownError",VirtualMachineError);
2156 c$=Clazz.declareType(java.lang,"UnsatisfiedLinkError",LinkageError);
2158 c$=Clazz.declareType(java.lang,"UnsupportedClassVersionError",ClassFormatError);
2160 c$=Clazz.declareType(java.lang,"VerifyError",LinkageError);
2162 c$=Clazz.declareType(java.lang,"ThreadDeath",Error);
2163 Clazz.makeConstructor(c$,
2165 Clazz.superConstructor(this,ThreadDeath,[]);
2168 c$=Clazz.declareType(java.lang,"Exception",Throwable);
2170 c$=Clazz.declareType(java.lang,"RuntimeException",Exception);
2172 c$=Clazz.declareType(java.lang,"ArithmeticException",RuntimeException);
2174 c$=Clazz.declareType(java.lang,"IndexOutOfBoundsException",RuntimeException);
2176 c$=Clazz.declareType(java.lang,"ArrayIndexOutOfBoundsException",IndexOutOfBoundsException);
2177 Clazz.makeConstructor(c$,
2179 Clazz.superConstructor(this,ArrayIndexOutOfBoundsException,["Array index out of range: "+index]);
2182 c$=Clazz.declareType(java.lang,"ArrayStoreException",RuntimeException);
2184 c$=Clazz.declareType(java.lang,"ClassCastException",RuntimeException);
2186 c$=Clazz.decorateAsClass(function(){
2188 Clazz.instantialize(this,arguments);
2189 },java.lang,"ClassNotFoundException",Exception);
2190 Clazz.makeConstructor(c$,
2192 Clazz.superConstructor(this,ClassNotFoundException,[Clazz.castNullAs("Throwable")]);
2194 Clazz.makeConstructor(c$,
2195 function(detailMessage){
2196 Clazz.superConstructor(this,ClassNotFoundException,[detailMessage,null]);
2198 Clazz.makeConstructor(c$,
2199 function(detailMessage,exception){
2200 Clazz.superConstructor(this,ClassNotFoundException,[detailMessage]);
2203 Clazz.defineMethod(c$,"getException",
2207 Clazz.overrideMethod(c$,"getCause",
2212 c$=Clazz.declareType(java.lang,"CloneNotSupportedException",Exception);
2214 c$=Clazz.declareType(java.lang,"IllegalAccessException",Exception);
2216 c$=Clazz.declareType(java.lang,"IllegalArgumentException",RuntimeException);
2217 Clazz.makeConstructor(c$,
2219 Clazz.superConstructor(this,IllegalArgumentException,[(cause==null?null:cause.toString()),cause]);
2222 c$=Clazz.declareType(java.lang,"IllegalMonitorStateException",RuntimeException);
2224 c$=Clazz.declareType(java.lang,"IllegalStateException",RuntimeException);
2225 Clazz.makeConstructor(c$,
2227 Clazz.superConstructor(this,IllegalStateException,[(cause==null?null:cause.toString()),cause]);
2230 c$=Clazz.declareType(java.lang,"IllegalThreadStateException",IllegalArgumentException);
2232 c$=Clazz.declareType(java.lang,"InstantiationException",Exception);
2234 c$=Clazz.declareType(java.lang,"InterruptedException",Exception);
2236 c$=Clazz.declareType(java.lang,"NegativeArraySizeException",RuntimeException);
2238 c$=Clazz.declareType(java.lang,"NoSuchFieldException",Exception);
2240 c$=Clazz.declareType(java.lang,"NoSuchMethodException",Exception);
2242 c$=Clazz.declareType(java.lang,"NullPointerException",RuntimeException);
2244 c$=Clazz.declareType(java.lang,"NumberFormatException",IllegalArgumentException);
2246 c$=Clazz.declareType(java.lang,"SecurityException",RuntimeException);
2247 Clazz.makeConstructor(c$,
2249 Clazz.superConstructor(this,SecurityException,[(cause==null?null:cause.toString()),cause]);
2252 c$=Clazz.declareType(java.lang,"StringIndexOutOfBoundsException",IndexOutOfBoundsException);
2253 Clazz.makeConstructor(c$,
2255 Clazz.superConstructor(this,StringIndexOutOfBoundsException,["String index out of range: "+index]);
2258 c$=Clazz.declareType(java.lang,"UnsupportedOperationException",RuntimeException);
2259 Clazz.makeConstructor(c$,
2261 Clazz.superConstructor(this,UnsupportedOperationException,[]);
2263 Clazz.makeConstructor(c$,
2265 Clazz.superConstructor(this,UnsupportedOperationException,[(cause==null?null:cause.toString()),cause]);
2268 c$=Clazz.decorateAsClass(function(){
2270 Clazz.instantialize(this,arguments);
2271 },java.lang.reflect,"InvocationTargetException",Exception);
2272 Clazz.makeConstructor(c$,
2274 Clazz.superConstructor(this,java.lang.reflect.InvocationTargetException,[Clazz.castNullAs("Throwable")]);
2276 Clazz.makeConstructor(c$,
2277 function(exception){
2278 Clazz.superConstructor(this,java.lang.reflect.InvocationTargetException,[null,exception]);
2279 this.target=exception;
2281 Clazz.makeConstructor(c$,
2282 function(exception,detailMessage){
2283 Clazz.superConstructor(this,java.lang.reflect.InvocationTargetException,[detailMessage,exception]);
2284 this.target=exception;
2286 Clazz.defineMethod(c$,"getTargetException",
2290 Clazz.overrideMethod(c$,"getCause",
2295 c$=Clazz.decorateAsClass(function(){
2296 this.undeclaredThrowable=null;
2297 Clazz.instantialize(this,arguments);
2298 },java.lang.reflect,"UndeclaredThrowableException",RuntimeException);
2299 Clazz.makeConstructor(c$,
2300 function(exception){
2301 Clazz.superConstructor(this,java.lang.reflect.UndeclaredThrowableException);
2302 this.undeclaredThrowable=exception;
2303 this.initCause(exception);
2305 Clazz.makeConstructor(c$,
2306 function(exception,detailMessage){
2307 Clazz.superConstructor(this,java.lang.reflect.UndeclaredThrowableException,[detailMessage]);
2308 this.undeclaredThrowable=exception;
2309 this.initCause(exception);
2311 Clazz.defineMethod(c$,"getUndeclaredThrowable",
2313 return this.undeclaredThrowable;
2315 Clazz.overrideMethod(c$,"getCause",
2317 return this.undeclaredThrowable;
2320 c$=Clazz.declareType(java.io,"IOException",Exception);
2323 c$=Clazz.declareType(java.io,"CharConversionException",java.io.IOException);
2325 c$=Clazz.declareType(java.io,"EOFException",java.io.IOException);
2327 c$=Clazz.declareType(java.io,"FileNotFoundException",java.io.IOException);
2329 c$=Clazz.decorateAsClass(function(){
2330 this.bytesTransferred=0;
2331 Clazz.instantialize(this,arguments);
2332 },java.io,"InterruptedIOException",java.io.IOException);
2334 c$=Clazz.declareType(java.io,"ObjectStreamException",java.io.IOException);
2336 c$=Clazz.decorateAsClass(function(){
2337 this.classname=null;
2338 Clazz.instantialize(this,arguments);
2339 },java.io,"InvalidClassException",java.io.ObjectStreamException);
2340 Clazz.makeConstructor(c$,
2341 function(className,detailMessage){
2342 Clazz.superConstructor(this,java.io.InvalidClassException,[detailMessage]);
2343 this.classname=className;
2345 Clazz.defineMethod(c$,"getMessage",
2347 var msg=Clazz.superCall(this,java.io.InvalidClassException,"getMessage",[]);
2348 if(this.classname!=null){
2349 msg=this.classname+';' + ' '+msg;
2353 c$=Clazz.declareType(java.io,"InvalidObjectException",java.io.ObjectStreamException);
2355 c$=Clazz.declareType(java.io,"NotActiveException",java.io.ObjectStreamException);
2357 c$=Clazz.declareType(java.io,"NotSerializableException",java.io.ObjectStreamException);
2359 c$=Clazz.decorateAsClass(function(){
2362 Clazz.instantialize(this,arguments);
2363 },java.io,"OptionalDataException",java.io.ObjectStreamException);
2365 c$=Clazz.declareType(java.io,"StreamCorruptedException",java.io.ObjectStreamException);
2367 c$=Clazz.declareType(java.io,"SyncFailedException",java.io.IOException);
2369 c$=Clazz.declareType(java.io,"UnsupportedEncodingException",java.io.IOException);
2371 c$=Clazz.declareType(java.io,"UTFDataFormatException",java.io.IOException);
2373 c$=Clazz.decorateAsClass(function(){
2375 Clazz.instantialize(this,arguments);
2376 },java.io,"WriteAbortedException",java.io.ObjectStreamException);
2377 Clazz.makeConstructor(c$,
2378 function(detailMessage,rootCause){
2379 Clazz.superConstructor(this,java.io.WriteAbortedException,[detailMessage]);
2380 this.detail=rootCause;
2381 this.initCause(rootCause);
2383 Clazz.defineMethod(c$,"getMessage",
2385 var msg=Clazz.superCall(this,java.io.WriteAbortedException,"getMessage",[]);
2386 return (this.detail ? msg + "; "+this.detail.toString() : msg);
2388 Clazz.overrideMethod(c$,"getCause",
2393 c$=Clazz.declareType(javautil,"ConcurrentModificationException",RuntimeException);
2394 Clazz.makeConstructor(c$,
2396 Clazz.superConstructor(this,javautil.ConcurrentModificationException,[]);
2399 c$=Clazz.declareType(javautil,"EmptyStackException",RuntimeException);
2401 c$=Clazz.decorateAsClass(function(){
2402 this.className=null;
2404 Clazz.instantialize(this,arguments);
2405 },javautil,"MissingResourceException",RuntimeException);
2406 Clazz.makeConstructor(c$,
2407 function(detailMessage,className,resourceName){
2408 Clazz.superConstructor(this,javautil.MissingResourceException,[detailMessage]);
2409 this.className=className;
2410 this.key=resourceName;
2412 Clazz.defineMethod(c$,"getClassName",
2414 return this.className;
2416 Clazz.defineMethod(c$,"getKey",
2421 c$=Clazz.declareType(javautil,"NoSuchElementException",RuntimeException);
2423 c$=Clazz.declareType(javautil,"TooManyListenersException",Exception);
2425 c$=Clazz.declareType(java.lang,"Void");
2426 Clazz.defineStatics(c$,
2429 java.lang.Void.TYPE=java.lang.Void;
2430 }Clazz.declareInterface(java.lang.reflect,"GenericDeclaration");
2431 Clazz.declareInterface(java.lang.reflect,"AnnotatedElement");
2433 c$=Clazz.declareType(java.lang.reflect,"AccessibleObject",null,java.lang.reflect.AnnotatedElement);
2434 Clazz.makeConstructor(c$,
2437 Clazz.defineMethod(c$,"isAccessible",
2441 c$.setAccessible=Clazz.defineMethod(c$,"setAccessible",
2442 function(objects,flag){
2445 Clazz.defineMethod(c$,"setAccessible",
2449 Clazz.overrideMethod(c$,"isAnnotationPresent",
2450 function(annotationType){
2453 Clazz.overrideMethod(c$,"getDeclaredAnnotations",
2455 return new Array(0);
2457 Clazz.overrideMethod(c$,"getAnnotations",
2459 return new Array(0);
2461 Clazz.overrideMethod(c$,"getAnnotation",
2462 function(annotationType){
2465 c$.marshallArguments=Clazz.defineMethod(c$,"marshallArguments",
2466 function(parameterTypes,args){
2469 Clazz.defineMethod(c$,"invokeV",
2470 function(receiver,args){
2473 Clazz.defineMethod(c$,"invokeL",
2474 function(receiver,args){
2477 Clazz.defineMethod(c$,"invokeI",
2478 function(receiver,args){
2481 Clazz.defineMethod(c$,"invokeJ",
2482 function(receiver,args){
2485 Clazz.defineMethod(c$,"invokeF",
2486 function(receiver,args){
2489 Clazz.defineMethod(c$,"invokeD",
2490 function(receiver,args){
2493 c$.emptyArgs=c$.prototype.emptyArgs=new Array(0);
2494 Clazz.declareInterface(java.lang.reflect,"InvocationHandler");
2495 c$=Clazz.declareInterface(java.lang.reflect,"Member");
2496 Clazz.defineStatics(c$,
2500 c$=Clazz.declareType(java.lang.reflect,"Modifier");
2501 Clazz.makeConstructor(c$,
2504 c$.isAbstract=Clazz.defineMethod(c$,"isAbstract",
2505 function(modifiers){
2506 return((modifiers&1024)!=0);
2508 c$.isFinal=Clazz.defineMethod(c$,"isFinal",
2509 function(modifiers){
2510 return((modifiers&16)!=0);
2512 c$.isInterface=Clazz.defineMethod(c$,"isInterface",
2513 function(modifiers){
2514 return((modifiers&512)!=0);
2516 c$.isNative=Clazz.defineMethod(c$,"isNative",
2517 function(modifiers){
2518 return((modifiers&256)!=0);
2520 c$.isPrivate=Clazz.defineMethod(c$,"isPrivate",
2521 function(modifiers){
2522 return((modifiers&2)!=0);
2524 c$.isProtected=Clazz.defineMethod(c$,"isProtected",
2525 function(modifiers){
2526 return((modifiers&4)!=0);
2528 c$.isPublic=Clazz.defineMethod(c$,"isPublic",
2529 function(modifiers){
2530 return((modifiers&1)!=0);
2532 c$.isStatic=Clazz.defineMethod(c$,"isStatic",
2533 function(modifiers){
2534 return((modifiers&8)!=0);
2536 c$.isStrict=Clazz.defineMethod(c$,"isStrict",
2537 function(modifiers){
2538 return((modifiers&2048)!=0);
2540 c$.isSynchronized=Clazz.defineMethod(c$,"isSynchronized",
2541 function(modifiers){
2542 return((modifiers&32)!=0);
2544 c$.isTransient=Clazz.defineMethod(c$,"isTransient",
2545 function(modifiers){
2546 return((modifiers&128)!=0);
2548 c$.isVolatile=Clazz.defineMethod(c$,"isVolatile",
2549 function(modifiers){
2550 return((modifiers&64)!=0);
2552 c$.toString=Clazz.defineMethod(c$,"toString",
2553 function(modifiers){
2554 var sb=new Array(0);
2555 if(java.lang.reflect.Modifier.isPublic(modifiers))sb[sb.length]="public";
2556 if(java.lang.reflect.Modifier.isProtected(modifiers))sb[sb.length]="protected";
2557 if(java.lang.reflect.Modifier.isPrivate(modifiers))sb[sb.length]="private";
2558 if(java.lang.reflect.Modifier.isAbstract(modifiers))sb[sb.length]="abstract";
2559 if(java.lang.reflect.Modifier.isStatic(modifiers))sb[sb.length]="static";
2560 if(java.lang.reflect.Modifier.isFinal(modifiers))sb[sb.length]="final";
2561 if(java.lang.reflect.Modifier.isTransient(modifiers))sb[sb.length]="transient";
2562 if(java.lang.reflect.Modifier.isVolatile(modifiers))sb[sb.length]="volatile";
2563 if(java.lang.reflect.Modifier.isSynchronized(modifiers))sb[sb.length]="synchronized";
2564 if(java.lang.reflect.Modifier.isNative(modifiers))sb[sb.length]="native";
2565 if(java.lang.reflect.Modifier.isStrict(modifiers))sb[sb.length]="strictfp";
2566 if(java.lang.reflect.Modifier.isInterface(modifiers))sb[sb.length]="interface";
2568 return sb.join(" ");
2571 Clazz.defineStatics(c$,
2577 "SYNCHRONIZED",0x20,
2587 "ANNOTATION",0x2000,
2590 c$=Clazz.decorateAsClass(function(){
2592 this.parameterTypes=null;
2593 this.exceptionTypes=null;
2595 Clazz.instantialize(this,arguments);
2596 },java.lang.reflect,"Constructor",java.lang.reflect.AccessibleObject,[java.lang.reflect.GenericDeclaration,java.lang.reflect.Member]);
2597 Clazz.makeConstructor(c$,
2598 function(declaringClass,parameterTypes,checkedExceptions,modifiers){
2599 Clazz.superConstructor(this,java.lang.reflect.Constructor,[]);
2600 this.clazz=declaringClass;
2601 this.parameterTypes=parameterTypes;
2602 this.exceptionTypes=checkedExceptions;
2603 this.modifiers=modifiers;
2604 },"Class,~A,~A,~N");
2605 Clazz.overrideMethod(c$,"getTypeParameters",
2609 Clazz.defineMethod(c$,"toGenericString",
2613 Clazz.defineMethod(c$,"getGenericParameterTypes",
2617 Clazz.defineMethod(c$,"getGenericExceptionTypes",
2621 Clazz.defineMethod(c$,"getParameterAnnotations",
2625 Clazz.defineMethod(c$,"isVarArgs",
2629 Clazz.overrideMethod(c$,"isSynthetic",
2633 Clazz.overrideMethod(c$,"equals",
2635 if(object!=null&&Clazz.instanceOf(object,java.lang.reflect.Constructor)){
2637 if(this.getDeclaringClass()===other.getDeclaringClass()){
2638 var params1=this.parameterTypes;
2639 var params2=other.parameterTypes;
2640 if(params1.length==params2.length){
2641 for(var i=0;i<params1.length;i++){
2642 if(params1[i]!==params2[i])return false;
2647 Clazz.overrideMethod(c$,"getDeclaringClass",
2651 Clazz.defineMethod(c$,"getExceptionTypes",
2653 return this.exceptionTypes;
2655 Clazz.overrideMethod(c$,"getModifiers",
2657 return this.modifiers;
2659 Clazz.overrideMethod(c$,"getName",
2661 return this.getDeclaringClass().getName();
2663 Clazz.defineMethod(c$,"getParameterTypes",
2665 return this.parameterTypes;
2667 Clazz.overrideMethod(c$,"hashCode",
2669 return this.getDeclaringClass().getName().hashCode();
2671 Clazz.defineMethod(c$,"newInstance",
2673 var instance=new this.clazz(Clazz.inheritArgs);
2674 Clazz.instantialize(instance,args);
2677 Clazz.overrideMethod(c$,"toString",
2682 c$=Clazz.declareType(java.lang.reflect,"Field",java.lang.reflect.AccessibleObject,java.lang.reflect.Member);
2683 Clazz.overrideMethod(c$,"isSynthetic",
2687 Clazz.defineMethod(c$,"toGenericString",
2691 Clazz.defineMethod(c$,"isEnumConstant",
2695 Clazz.defineMethod(c$,"getGenericType",
2699 Clazz.overrideMethod(c$,"equals",
2703 Clazz.overrideMethod(c$,"getDeclaringClass",
2707 Clazz.overrideMethod(c$,"getName",
2711 Clazz.defineMethod(c$,"getType",
2715 Clazz.overrideMethod(c$,"hashCode",
2719 Clazz.overrideMethod(c$,"toString",
2724 c$=Clazz.decorateAsClass(function(){
2727 this.returnType=null;
2728 this.parameterTypes=null;
2729 this.exceptionTypes=null;
2731 Clazz.instantialize(this,arguments);
2732 },java.lang.reflect,"Method",java.lang.reflect.AccessibleObject,[java.lang.reflect.GenericDeclaration,java.lang.reflect.Member]);
2733 Clazz.makeConstructor(c$,
2734 function(declaringClass,name,parameterTypes,returnType,checkedExceptions,modifiers){
2735 Clazz.superConstructor(this,java.lang.reflect.Method,[]);
2736 this.clazz=declaringClass;
2738 this.parameterTypes=parameterTypes;
2739 this.returnType=returnType;
2740 this.exceptionTypes=checkedExceptions;
2741 this.modifiers=modifiers;
2742 },"Class,~S,~A,Class,~A,~N");
2743 Clazz.overrideMethod(c$,"getTypeParameters",
2747 Clazz.defineMethod(c$,"toGenericString",
2751 Clazz.defineMethod(c$,"getGenericParameterTypes",
2755 Clazz.defineMethod(c$,"getGenericExceptionTypes",
2759 Clazz.defineMethod(c$,"getGenericReturnType",
2763 Clazz.defineMethod(c$,"getParameterAnnotations",
2767 Clazz.defineMethod(c$,"isVarArgs",
2771 Clazz.defineMethod(c$,"isBridge",
2775 Clazz.overrideMethod(c$,"isSynthetic",
2779 Clazz.defineMethod(c$,"getDefaultValue",
2783 Clazz.overrideMethod(c$,"equals",
2785 if(object!=null&&Clazz.instanceOf(object,java.lang.reflect.Method)){
2787 if((this.getDeclaringClass()===other.getDeclaringClass())&&(this.getName()===other.getName())){
2788 var params1=this.parameterTypes;
2789 var params2=other.parameterTypes;
2790 if(params1.length==params2.length){
2791 for(var i=0;i<params1.length;i++){
2792 if(params1[i]!==params2[i])return false;
2797 Clazz.overrideMethod(c$,"getDeclaringClass",
2801 Clazz.defineMethod(c$,"getExceptionTypes",
2803 return this.exceptionTypes;
2805 Clazz.overrideMethod(c$,"getModifiers",
2807 return this.modifiers;
2809 Clazz.overrideMethod(c$,"getName",
2813 Clazz.defineMethod(c$,"getParameterTypes",
2815 return this.parameterTypes;
2817 Clazz.defineMethod(c$,"getReturnType",
2819 return this.returnType;
2821 Clazz.overrideMethod(c$,"hashCode",
2823 return this.getDeclaringClass().getName().hashCode()^this.getName().hashCode();
2825 Clazz.defineMethod(c$,"invoke",
2826 function(receiver,args){
2827 var m=this.clazz.prototype[this.getName()];
2829 m=this.clazz[this.getName()];
2832 m.apply(receiver,args);
2837 Clazz.overrideMethod(c$,"toString",