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