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
5 Clazz.instantialize (this, arguments);
\r
6 }, java.util, "TimeZone", null, Cloneable);
\r
7 Clazz.makeConstructor (c$,
\r
10 Clazz.defineMethod (c$, "getOffset",
\r
12 if (this.inDaylightTime ( new java.util.Date (date))) {
\r
13 return this.getRawOffset () + this.getDSTSavings ();
\r
14 }return this.getRawOffset ();
\r
16 Clazz.defineMethod (c$, "getOffsets",
\r
17 function (date, offsets) {
\r
18 var rawoffset = this.getRawOffset ();
\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
27 Clazz.defineMethod (c$, "getID",
\r
31 Clazz.defineMethod (c$, "setID",
\r
34 throw new NullPointerException ();
\r
37 Clazz.defineMethod (c$, "getDSTSavings",
\r
39 if (this.useDaylightTime ()) {
\r
43 c$.getTimeZone = Clazz.defineMethod (c$, "getTimeZone",
\r
45 return java.util.TimeZone.getTimeZone (ID, true);
\r
47 c$.getTimeZone = Clazz.defineMethod (c$, "getTimeZone",
\r
48 function (ID, fallback) {
\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
55 c$.getAvailableIDs = Clazz.defineMethod (c$, "getAvailableIDs",
\r
56 function (rawOffset) {
\r
59 c$.getAvailableIDs = Clazz.defineMethod (c$, "getAvailableIDs",
\r
63 c$.getDefault = Clazz.defineMethod (c$, "getDefault",
\r
65 return java.util.TimeZone.getDefaultRef ().clone ();
\r
67 c$.getDefaultRef = Clazz.defineMethod (c$, "getDefaultRef",
\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
76 c$.getTimeZoneOffsetMillis = Clazz.defineMethod (c$, "getTimeZoneOffsetMillis",
\r
79 return -(new Date()).getTimezoneOffset() * 60000;
\r
81 c$.setDefault = Clazz.defineMethod (c$, "setDefault",
\r
83 }, "java.util.TimeZone");
\r
84 Clazz.defineMethod (c$, "hasSameRules",
\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
91 var other = Clazz.superCall (this, java.util.TimeZone, "clone", []);
\r
95 if (Clazz.exceptionOf (e, CloneNotSupportedException)) {
\r
96 throw new InternalError ();
\r
102 c$.parseCustomTimeZone = Clazz.defineMethod (c$, "parseCustomTimeZone",
\r
104 if ((id.length) < (5) || id.indexOf ("GMT") != 0) {
\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
114 zi.setRawOffsetReally (gmtOffset);
\r
118 c$.getOffsetHHMM = Clazz.defineMethod (c$, "getOffsetHHMM",
\r
121 var length = id.length;
\r
122 var negative = false;
\r
123 var c = id.charAt (index++);
\r
126 } else if (c != '+') {
\r
130 var countDelim = 0;
\r
132 while (index < length) {
\r
133 c = id.charAt (index++);
\r
135 if (countDelim > 0) {
\r
144 }if (c < '0' || c > '9') {
\r
146 }num = num * 10 + (c.charCodeAt (0) - 48);
\r
149 if (index != length) {
\r
151 }if (countDelim == 0) {
\r
156 hours = Clazz.doubleToInt (num / 100);
\r
161 }}if (hours > 23 || num > 59) {
\r
163 }return Clazz.newIntArray (-1, [(negative ? -1 : 1), hours, num]);
\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
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
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
189 c$.toCustomID = Clazz.defineMethod (c$, "toCustomID",
\r
190 function (gmtOffset) {
\r
192 var offset = Clazz.doubleToInt (gmtOffset / 60000);
\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
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
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
209 c$.getFromCache = Clazz.defineMethod (c$, "getFromCache",
\r
211 if (java.util.TimeZone.zoneInfoObjects == null) {
\r
213 }return java.util.TimeZone.zoneInfoObjects.get (id);
\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
220 var zone = java.util.TimeZone.zoneInfoObjects.get (id);
\r
221 if (zone != null) {
\r
223 }}java.util.TimeZone.zoneInfoObjects.put (id, zi);
\r
225 }, "~S,jssun.util.calendar.ZoneInfo");
\r
226 Clazz.defineStatics (c$,
\r
229 "NO_TIMEZONE", null,
\r
230 "defaultTimeZone", null,
\r
232 "GMT_ID_LENGTH", 3,
\r
233 "zoneInfoObjects", null);
\r