5ffe33be31e8ae46350b6cd375f39a54d45b8eb6
[jalviewjs.git] / site / swingjs / j2s / java / util / TimeZone.js
1 Clazz.declarePackage ("java.util");\r
2 Clazz.load (null, "java.util.TimeZone", ["java.lang.InternalError", "$.NullPointerException", "java.util.Date", "$.HashMap"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.ID = "GMT";\r
5 Clazz.instantialize (this, arguments);\r
6 }, java.util, "TimeZone", null, Cloneable);\r
7 Clazz.makeConstructor (c$, \r
8 function () {\r
9 });\r
10 Clazz.defineMethod (c$, "getOffset", \r
11 function (date) {\r
12 if (this.inDaylightTime ( new java.util.Date (date))) {\r
13 return this.getRawOffset () + this.getDSTSavings ();\r
14 }return this.getRawOffset ();\r
15 }, "~N");\r
16 Clazz.defineMethod (c$, "getOffsets", \r
17 function (date, offsets) {\r
18 var rawoffset = this.getRawOffset ();\r
19 var dstoffset = 0;\r
20 if (this.inDaylightTime ( new java.util.Date (date))) {\r
21 dstoffset = this.getDSTSavings ();\r
22 }if (offsets != null) {\r
23 offsets[0] = rawoffset;\r
24 offsets[1] = dstoffset;\r
25 }return rawoffset + dstoffset;\r
26 }, "~N,~A");\r
27 Clazz.defineMethod (c$, "getID", \r
28 function () {\r
29 return this.ID;\r
30 });\r
31 Clazz.defineMethod (c$, "setID", \r
32 function (ID) {\r
33 if (ID == null) {\r
34 throw  new NullPointerException ();\r
35 }this.ID = ID;\r
36 }, "~S");\r
37 Clazz.defineMethod (c$, "getDSTSavings", \r
38 function () {\r
39 if (this.useDaylightTime ()) {\r
40 return 3600000;\r
41 }return 0;\r
42 });\r
43 c$.getTimeZone = Clazz.defineMethod (c$, "getTimeZone", \r
44 function (ID) {\r
45 return java.util.TimeZone.getTimeZone (ID, true);\r
46 }, "~S");\r
47 c$.getTimeZone = Clazz.defineMethod (c$, "getTimeZone", \r
48  function (ID, fallback) {\r
49 var tz = null;\r
50 tz = java.util.TimeZone.parseCustomTimeZone (ID);\r
51 if (tz == null && fallback) {\r
52 tz =  new jssun.util.calendar.ZoneInfo ("GMT", 0);\r
53 }return tz;\r
54 }, "~S,~B");\r
55 c$.getAvailableIDs = Clazz.defineMethod (c$, "getAvailableIDs", \r
56 function (rawOffset) {\r
57 return null;\r
58 }, "~N");\r
59 c$.getAvailableIDs = Clazz.defineMethod (c$, "getAvailableIDs", \r
60 function () {\r
61 return null;\r
62 });\r
63 c$.getDefault = Clazz.defineMethod (c$, "getDefault", \r
64 function () {\r
65 return java.util.TimeZone.getDefaultRef ().clone ();\r
66 });\r
67 c$.getDefaultRef = Clazz.defineMethod (c$, "getDefaultRef", \r
68 function () {\r
69 if (java.util.TimeZone.defaultTimeZone == null) {\r
70 var ms = java.util.TimeZone.getTimeZoneOffsetMillis ();\r
71 var gmtOffsetID = java.util.TimeZone.getGMTID (ms);\r
72 java.util.TimeZone.defaultTimeZone = java.util.TimeZone.getTimeZone (gmtOffsetID, true);\r
73 java.util.TimeZone.addToCache (gmtOffsetID,  new jssun.util.calendar.ZoneInfo (gmtOffsetID, ms));\r
74 }return java.util.TimeZone.defaultTimeZone;\r
75 });\r
76 c$.getTimeZoneOffsetMillis = Clazz.defineMethod (c$, "getTimeZoneOffsetMillis", \r
77  function () {\r
78 {\r
79 return -(new Date()).getTimezoneOffset() * 60000;\r
80 }});\r
81 c$.setDefault = Clazz.defineMethod (c$, "setDefault", \r
82 function (zone) {\r
83 }, "java.util.TimeZone");\r
84 Clazz.defineMethod (c$, "hasSameRules", \r
85 function (other) {\r
86 return other != null && this.getRawOffset () == other.getRawOffset () && this.useDaylightTime () == other.useDaylightTime ();\r
87 }, "java.util.TimeZone");\r
88 Clazz.defineMethod (c$, "clone", \r
89 function () {\r
90 try {\r
91 var other = Clazz.superCall (this, java.util.TimeZone, "clone", []);\r
92 other.ID = this.ID;\r
93 return other;\r
94 } catch (e) {\r
95 if (Clazz.exceptionOf (e, CloneNotSupportedException)) {\r
96 throw  new InternalError ();\r
97 } else {\r
98 throw e;\r
99 }\r
100 }\r
101 });\r
102 c$.parseCustomTimeZone = Clazz.defineMethod (c$, "parseCustomTimeZone", \r
103  function (id) {\r
104 if ((id.length) < (5) || id.indexOf ("GMT") != 0) {\r
105 return null;\r
106 }var zi;\r
107 var neghrmin = java.util.TimeZone.getOffsetHHMM (id);\r
108 if (neghrmin == null) return null;\r
109 var gmtOffset = (neghrmin[0]) * (neghrmin[1] * 60 + neghrmin[2]) * 60 * 1000;\r
110 var gmtID = java.util.TimeZone.getGMTID (gmtOffset);\r
111 zi =  new jssun.util.calendar.ZoneInfo ();\r
112 if (gmtOffset == 0) {\r
113 } else {\r
114 zi.setRawOffsetReally (gmtOffset);\r
115 }zi.setID (gmtID);\r
116 return zi;\r
117 }, "~S");\r
118 c$.getOffsetHHMM = Clazz.defineMethod (c$, "getOffsetHHMM", \r
119  function (id) {\r
120 var index = 3;\r
121 var length = id.length;\r
122 var negative = false;\r
123 var c = id.charAt (index++);\r
124 if (c == '-') {\r
125 negative = true;\r
126 } else if (c != '+') {\r
127 return null;\r
128 }var hours = 0;\r
129 var num = 0;\r
130 var countDelim = 0;\r
131 var len = 0;\r
132 while (index < length) {\r
133 c = id.charAt (index++);\r
134 if (c == ':') {\r
135 if (countDelim > 0) {\r
136 return null;\r
137 }if (len > 2) {\r
138 return null;\r
139 }hours = num;\r
140 countDelim++;\r
141 num = 0;\r
142 len = 0;\r
143 continue;\r
144 }if (c < '0' || c > '9') {\r
145 return null;\r
146 }num = num * 10 + (c.charCodeAt (0) - 48);\r
147 len++;\r
148 }\r
149 if (index != length) {\r
150 return null;\r
151 }if (countDelim == 0) {\r
152 if (len <= 2) {\r
153 hours = num;\r
154 num = 0;\r
155 } else {\r
156 hours = Clazz.doubleToInt (num / 100);\r
157 num %= 100;\r
158 }} else {\r
159 if (len != 2) {\r
160 return null;\r
161 }}if (hours > 23 || num > 59) {\r
162 return null;\r
163 }return  Clazz.newIntArray (-1, [(negative ? -1 : 1), hours, num]);\r
164 }, "~S");\r
165 c$.getGMTID = Clazz.defineMethod (c$, "getGMTID", \r
166  function (gmtOffset) {\r
167 var isNegative = (gmtOffset < 0);\r
168 if (isNegative) gmtOffset = -gmtOffset;\r
169 gmtOffset = Clazz.doubleToInt (gmtOffset / 60000);\r
170 var hours = Clazz.doubleToInt (gmtOffset / 60);\r
171 var min = gmtOffset - hours * 60;\r
172 var NN = "00" + hours;\r
173 NN = NN.substring (NN.length - 2);\r
174 var MM = "00" + min;\r
175 MM = MM.substring (MM.length - 2);\r
176 return "GMT" + (isNegative ? "-" : "") + NN;\r
177 }, "~N");\r
178 c$.getCustomTimeZone = Clazz.defineMethod (c$, "getCustomTimeZone", \r
179 function (originalId, gmtOffset) {\r
180 var id = java.util.TimeZone.toCustomID (gmtOffset);\r
181 var zi = java.util.TimeZone.getFromCache (id);\r
182 if (zi == null) {\r
183 zi =  new jssun.util.calendar.ZoneInfo (id, gmtOffset);\r
184 zi = java.util.TimeZone.addToCache (id, zi);\r
185 if (originalId != null && !id.equals (originalId)) {\r
186 zi = java.util.TimeZone.addToCache (originalId, zi);\r
187 }}return zi.clone ();\r
188 }, "~S,~N");\r
189 c$.toCustomID = Clazz.defineMethod (c$, "toCustomID", \r
190 function (gmtOffset) {\r
191 var sign;\r
192 var offset = Clazz.doubleToInt (gmtOffset / 60000);\r
193 if (offset >= 0) {\r
194 sign = '+';\r
195 } else {\r
196 sign = '-';\r
197 offset = -offset;\r
198 }var hh = Clazz.doubleToInt (offset / 60);\r
199 var mm = offset % 60;\r
200 var buf =  Clazz.newCharArray (-1, ['G', 'M', 'T', sign, '0', '0', ':', '0', '0']);\r
201 if (hh >= 10) {\r
202 buf[4] = String.fromCharCode ((buf[4]).charCodeAt (0) + (Clazz.doubleToInt (hh / 10)));\r
203 }buf[5] = String.fromCharCode ((buf[5]).charCodeAt (0) + (hh % 10));\r
204 if (mm != 0) {\r
205 buf[7] = String.fromCharCode ((buf[7]).charCodeAt (0) + (Clazz.doubleToInt (mm / 10)));\r
206 buf[8] = String.fromCharCode ((buf[8]).charCodeAt (0) + (mm % 10));\r
207 }return  String.instantialize (buf);\r
208 }, "~N");\r
209 c$.getFromCache = Clazz.defineMethod (c$, "getFromCache", \r
210 function (id) {\r
211 if (java.util.TimeZone.zoneInfoObjects == null) {\r
212 return null;\r
213 }return java.util.TimeZone.zoneInfoObjects.get (id);\r
214 }, "~S");\r
215 c$.addToCache = Clazz.defineMethod (c$, "addToCache", \r
216 function (id, zi) {\r
217 if (java.util.TimeZone.zoneInfoObjects == null) {\r
218 java.util.TimeZone.zoneInfoObjects =  new java.util.HashMap ();\r
219 } else {\r
220 var zone = java.util.TimeZone.zoneInfoObjects.get (id);\r
221 if (zone != null) {\r
222 return zone;\r
223 }}java.util.TimeZone.zoneInfoObjects.put (id, zi);\r
224 return zi;\r
225 }, "~S,jssun.util.calendar.ZoneInfo");\r
226 Clazz.defineStatics (c$,\r
227 "SHORT", 0,\r
228 "LONG", 1,\r
229 "NO_TIMEZONE", null,\r
230 "defaultTimeZone", null,\r
231 "GMT_ID", "GMT",\r
232 "GMT_ID_LENGTH", 3,\r
233 "zoneInfoObjects", null);\r
234 });\r