File size: 3,925 Bytes
233f6d4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | Clazz.load (["java.lang.Comparable", "$.Number"], "java.lang.Integer", null, function () {
java.lang.Integer = Integer = function () {
Clazz.instantialize (this, arguments);
};
Clazz.decorateAsType (Integer, "Integer", Number, Comparable, null, true);
Integer.prototype.valueOf = function () { return 0; };
Integer.toString = Integer.prototype.toString = function () {
if (arguments.length != 0) {
return "" + arguments[0];
} else if (this === Integer) {
return "class java.lang.Integer"; // Integer.class.toString
}
return "" + this.valueOf ();
};
Clazz.makeConstructor (Integer,
function () {
this.valueOf = function () {
return 0;
};
});
Clazz.makeConstructor (Integer,
function (value) {
var v = Math.round (value) & 0xffffffff;
this.valueOf = function () {
return v;
};
}, "Number");
Clazz.makeConstructor (Integer,
function (s) {
var value = Integer.parseInt (s, 10);
this.valueOf = function () {
return value;
};
}, "String");
Integer.serialVersionUID = Integer.prototype.serialVersionUID = 1360826667806852920;
Integer.MIN_VALUE = Integer.prototype.MIN_VALUE = -0x80000000;
Integer.MAX_VALUE = Integer.prototype.MAX_VALUE = 0x7fffffff;
Integer.TYPE = Integer.prototype.TYPE = Integer;
Clazz.defineMethod (Integer, "parseInt",
function (s, radix) {
if (s == null) {
throw new NumberFormatException ("null");
}if (radix < 2) {
throw new NumberFormatException ("radix " + radix + " less than Character.MIN_RADIX");
}if (radix > 36) {
throw new NumberFormatException ("radix " + radix + " greater than Character.MAX_RADIX");
}
var integer = parseInt (s, radix);
if(isNaN(integer)){
throw new NumberFormatException ("Not a Number : " + s);
}
return integer;
}, "String, Number");
Integer.parseInt = Integer.prototype.parseInt;
Clazz.defineMethod (Integer, "parseInt",
function (s) {
return Integer.parseInt (s, 10);
}, "String");
Integer.parseInt = Integer.prototype.parseInt;
/*
Clazz.defineMethod (Integer, "$valueOf",
function (s) {
return new Integer(Integer.parseInt (s, 10));
}, "String");
*/
Clazz.defineMethod (Integer, "$valueOf",
function (s) {
return new Integer(s);
}, "Number");
Clazz.defineMethod (Integer, "$valueOf",
function (s, r) {
return new Integer(Integer.parseInt (s, r));
}, "String, Number");
Integer.$valueOf = Integer.prototype.$valueOf;
Clazz.overrideMethod(Integer, "equals",
function (s) {
if(s == null || ! Clazz.instanceOf(s, Integer) ){
return false;
}
return s.valueOf() == this.valueOf();
}, "Object");
Integer.toHexString = Integer.prototype.toHexString = function (i) {
return i.toString (16);
};
Integer.toOctalString = Integer.prototype.toOctalString = function (i) {
return i.toString (8);
};
Integer.toBinaryString = Integer.prototype.toBinaryString = function (i) {
return i.toString (2);
};
Integer.decode = Clazz.defineMethod (Integer, "decode",
function (nm) {
var radix = 10;
var index = 0;
var negative = false;
var result;
if (nm.startsWith ("-")) {
negative = true;
index++;
}if (nm.startsWith ("0x", index) || nm.startsWith ("0X", index)) {
index += 2;
radix = 16;
} else if (nm.startsWith ("#", index)) {
index++;
radix = 16;
} else if (nm.startsWith ("0", index) && nm.length > 1 + index) {
index++;
radix = 8;
}if (nm.startsWith ("-", index)) throw new NumberFormatException ("Negative sign in wrong position");
try {
result = Integer.$valueOf (nm.substring (index), radix);
result = negative ? new Integer (-result.intValue ()) : result;
} catch (e) {
if (Clazz.instanceOf (e, NumberFormatException)) {
var constant = negative ? String.instantialize ("-" + nm.substring (index)) : nm.substring (index);
result = Integer.$valueOf (constant, radix);
} else {
throw e;
}
}
return result;
}, "~S");
Clazz.overrideMethod(Integer, "hashCode",
function () {
return this.valueOf ();
});
});
|