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