5258f78950151d7d53740c3a7595445ebf41c6ae
[jalviewjs.git] / site / j2s / java / util / Calendar.js
1 Clazz.declarePackage ("java.util");\r
2 Clazz.load (["java.util.Hashtable"], "java.util.Calendar", ["java.lang.IllegalArgumentException", "$.InternalError", "$.NullPointerException", "$.StringBuilder", "java.util.Date", "$.HashMap", "java.text.DateFormatSymbols", "java.util.Locale", "$.TimeZone", "jssun.util.calendar.ZoneInfo", "jssun.util.resources.LocaleData"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.fields = null;\r
5 this.$isSet = null;\r
6 this.stamp = null;\r
7 this.time = 0;\r
8 this.isTimeSet = false;\r
9 this.areFieldsSet = false;\r
10 this.areAllFieldsSet = false;\r
11 this.lenient = true;\r
12 this.zone = null;\r
13 this.sharedZone = false;\r
14 this.firstDayOfWeek = 0;\r
15 this.minimalDaysInFirstWeek = 0;\r
16 this.nextStamp = 2;\r
17 this.serialVersionOnStream = 1;\r
18 Clazz.instantialize (this, arguments);\r
19 }, java.util, "Calendar", null, [Cloneable, Comparable]);\r
20 Clazz.makeConstructor (c$, \r
21 function () {\r
22 this.construct (java.util.TimeZone.getDefaultRef (), java.util.Locale.getDefault ());\r
23 this.sharedZone = true;\r
24 });\r
25 Clazz.makeConstructor (c$, \r
26 function (zone, aLocale) {\r
27 this.fields =  Clazz.newIntArray (17, 0);\r
28 this.$isSet =  Clazz.newBooleanArray (17, false);\r
29 this.stamp =  Clazz.newIntArray (17, 0);\r
30 this.zone = zone;\r
31 this.setWeekCountData (aLocale);\r
32 }, "java.util.TimeZone,java.util.Locale");\r
33 c$.getInstance = Clazz.defineMethod (c$, "getInstance", \r
34 function () {\r
35 var cal = java.util.Calendar.createCalendar (java.util.TimeZone.getDefaultRef (), java.util.Locale.getDefault ());\r
36 cal.sharedZone = true;\r
37 return cal;\r
38 });\r
39 c$.getInstance = Clazz.defineMethod (c$, "getInstance", \r
40 function (zone) {\r
41 return java.util.Calendar.createCalendar (zone, java.util.Locale.getDefault ());\r
42 }, "java.util.TimeZone");\r
43 c$.getInstance = Clazz.defineMethod (c$, "getInstance", \r
44 function (aLocale) {\r
45 var cal = java.util.Calendar.createCalendar (java.util.TimeZone.getDefaultRef (), aLocale);\r
46 cal.sharedZone = true;\r
47 return cal;\r
48 }, "java.util.Locale");\r
49 c$.getInstance = Clazz.defineMethod (c$, "getInstance", \r
50 function (zone, aLocale) {\r
51 return java.util.Calendar.createCalendar (zone, aLocale);\r
52 }, "java.util.TimeZone,java.util.Locale");\r
53 c$.createCalendar = Clazz.defineMethod (c$, "createCalendar", \r
54  function (zone, aLocale) {\r
55 return  new java.util.GregorianCalendar (zone, aLocale);\r
56 }, "java.util.TimeZone,java.util.Locale");\r
57 Clazz.defineMethod (c$, "getTime", \r
58 function () {\r
59 return  new java.util.Date (this.getTimeInMillis ());\r
60 });\r
61 Clazz.defineMethod (c$, "setTime", \r
62 function (date) {\r
63 this.setTimeInMillis (date.getTime ());\r
64 }, "java.util.Date");\r
65 Clazz.defineMethod (c$, "getTimeInMillis", \r
66 function () {\r
67 if (!this.isTimeSet) {\r
68 this.updateTime ();\r
69 }return this.time;\r
70 });\r
71 Clazz.defineMethod (c$, "setTimeInMillis", \r
72 function (millis) {\r
73 if (this.time == millis && this.isTimeSet && this.areFieldsSet && this.areAllFieldsSet && (Clazz.instanceOf (this.zone, jssun.util.calendar.ZoneInfo)) && !(this.zone).isDirty ()) {\r
74 return;\r
75 }this.time = millis;\r
76 this.isTimeSet = true;\r
77 this.areFieldsSet = false;\r
78 this.computeFields ();\r
79 this.areAllFieldsSet = this.areFieldsSet = true;\r
80 }, "~N");\r
81 Clazz.defineMethod (c$, "get", \r
82 function (field) {\r
83 this.complete ();\r
84 return this.internalGet (field);\r
85 }, "~N");\r
86 Clazz.defineMethod (c$, "internalGet", \r
87 function (field) {\r
88 return this.fields[field];\r
89 }, "~N");\r
90 Clazz.defineMethod (c$, "internalSet", \r
91 function (field, value) {\r
92 this.fields[field] = value;\r
93 }, "~N,~N");\r
94 Clazz.defineMethod (c$, "set", \r
95 function (field, value) {\r
96 if (this.isLenient () && this.areFieldsSet && !this.areAllFieldsSet) {\r
97 this.computeFields ();\r
98 }this.internalSet (field, value);\r
99 this.isTimeSet = false;\r
100 this.areFieldsSet = false;\r
101 this.$isSet[field] = true;\r
102 this.stamp[field] = this.nextStamp++;\r
103 if (this.nextStamp == 2147483647) {\r
104 this.adjustStamp ();\r
105 }}, "~N,~N");\r
106 Clazz.defineMethod (c$, "set", \r
107 function (year, month, date) {\r
108 this.set (1, year);\r
109 this.set (2, month);\r
110 this.set (5, date);\r
111 }, "~N,~N,~N");\r
112 Clazz.defineMethod (c$, "set", \r
113 function (year, month, date, hourOfDay, minute) {\r
114 this.set (1, year);\r
115 this.set (2, month);\r
116 this.set (5, date);\r
117 this.set (11, hourOfDay);\r
118 this.set (12, minute);\r
119 }, "~N,~N,~N,~N,~N");\r
120 Clazz.defineMethod (c$, "set", \r
121 function (year, month, date, hourOfDay, minute, second) {\r
122 this.set (1, year);\r
123 this.set (2, month);\r
124 this.set (5, date);\r
125 this.set (11, hourOfDay);\r
126 this.set (12, minute);\r
127 this.set (13, second);\r
128 }, "~N,~N,~N,~N,~N,~N");\r
129 Clazz.defineMethod (c$, "clear", \r
130 function () {\r
131 for (var i = 0; i < this.fields.length; ) {\r
132 this.stamp[i] = this.fields[i] = 0;\r
133 this.$isSet[i++] = false;\r
134 }\r
135 this.areAllFieldsSet = this.areFieldsSet = false;\r
136 this.isTimeSet = false;\r
137 });\r
138 Clazz.defineMethod (c$, "clear", \r
139 function (field) {\r
140 this.fields[field] = 0;\r
141 this.stamp[field] = 0;\r
142 this.$isSet[field] = false;\r
143 this.areAllFieldsSet = this.areFieldsSet = false;\r
144 this.isTimeSet = false;\r
145 }, "~N");\r
146 Clazz.defineMethod (c$, "isSet", \r
147 function (field) {\r
148 return this.stamp[field] != 0;\r
149 }, "~N");\r
150 Clazz.defineMethod (c$, "getDisplayName", \r
151 function (field, style, locale) {\r
152 if (!this.checkDisplayNameParams (field, style, 0, 2, locale, 645)) {\r
153 return null;\r
154 }var symbols = java.text.DateFormatSymbols.getInstance (locale);\r
155 var strings = this.getFieldStrings (field, style, symbols);\r
156 if (strings != null) {\r
157 var fieldValue = this.get (field);\r
158 if (fieldValue < strings.length) {\r
159 return strings[fieldValue];\r
160 }}return null;\r
161 }, "~N,~N,java.util.Locale");\r
162 Clazz.defineMethod (c$, "getDisplayNames", \r
163 function (field, style, locale) {\r
164 if (!this.checkDisplayNameParams (field, style, 0, 2, locale, 645)) {\r
165 return null;\r
166 }if (style == 0) {\r
167 var shortNames = this.getDisplayNamesImpl (field, 1, locale);\r
168 if (field == 0 || field == 9) {\r
169 return shortNames;\r
170 }var longNames = this.getDisplayNamesImpl (field, 2, locale);\r
171 if (shortNames == null) {\r
172 return longNames;\r
173 }if (longNames != null) {\r
174 shortNames.putAll (longNames);\r
175 }return shortNames;\r
176 }return this.getDisplayNamesImpl (field, style, locale);\r
177 }, "~N,~N,java.util.Locale");\r
178 Clazz.defineMethod (c$, "getDisplayNamesImpl", \r
179  function (field, style, locale) {\r
180 var symbols = java.text.DateFormatSymbols.getInstance (locale);\r
181 var strings = this.getFieldStrings (field, style, symbols);\r
182 if (strings != null) {\r
183 var names =  new java.util.HashMap ();\r
184 for (var i = 0; i < strings.length; i++) {\r
185 if (strings[i].length == 0) {\r
186 continue;\r
187 }names.put (strings[i], new Integer (i));\r
188 }\r
189 return names;\r
190 }return null;\r
191 }, "~N,~N,java.util.Locale");\r
192 Clazz.defineMethod (c$, "checkDisplayNameParams", \r
193 function (field, style, minStyle, maxStyle, locale, fieldMask) {\r
194 if (field < 0 || field >= this.fields.length || style < minStyle || style > maxStyle) {\r
195 throw  new IllegalArgumentException ();\r
196 }if (locale == null) {\r
197 throw  new NullPointerException ();\r
198 }return java.util.Calendar.isFieldSet (fieldMask, field);\r
199 }, "~N,~N,~N,~N,java.util.Locale,~N");\r
200 Clazz.defineMethod (c$, "getFieldStrings", \r
201  function (field, style, symbols) {\r
202 var strings = null;\r
203 switch (field) {\r
204 case 0:\r
205 strings = symbols.getEras ();\r
206 break;\r
207 case 2:\r
208 strings = (style == 2) ? symbols.getMonths () : symbols.getShortMonths ();\r
209 break;\r
210 case 7:\r
211 strings = (style == 2) ? symbols.getWeekdays () : symbols.getShortWeekdays ();\r
212 break;\r
213 case 9:\r
214 strings = symbols.getAmPmStrings ();\r
215 break;\r
216 }\r
217 return strings;\r
218 }, "~N,~N,java.text.DateFormatSymbols");\r
219 Clazz.defineMethod (c$, "complete", \r
220 function () {\r
221 if (!this.isTimeSet) this.updateTime ();\r
222 if (!this.areFieldsSet || !this.areAllFieldsSet) {\r
223 this.computeFields ();\r
224 this.areAllFieldsSet = this.areFieldsSet = true;\r
225 }});\r
226 Clazz.defineMethod (c$, "isExternallySet", \r
227 function (field) {\r
228 return this.stamp[field] >= 2;\r
229 }, "~N");\r
230 Clazz.defineMethod (c$, "getSetStateFields", \r
231 function () {\r
232 var mask = 0;\r
233 for (var i = 0; i < this.fields.length; i++) {\r
234 if (this.stamp[i] != 0) {\r
235 mask |= 1 << i;\r
236 }}\r
237 return mask;\r
238 });\r
239 Clazz.defineMethod (c$, "setFieldsComputed", \r
240 function (fieldMask) {\r
241 if (fieldMask == 131071) {\r
242 for (var i = 0; i < this.fields.length; i++) {\r
243 this.stamp[i] = 1;\r
244 this.$isSet[i] = true;\r
245 }\r
246 this.areFieldsSet = this.areAllFieldsSet = true;\r
247 } else {\r
248 for (var i = 0; i < this.fields.length; i++) {\r
249 if ((fieldMask & 1) == 1) {\r
250 this.stamp[i] = 1;\r
251 this.$isSet[i] = true;\r
252 } else {\r
253 if (this.areAllFieldsSet && !this.$isSet[i]) {\r
254 this.areAllFieldsSet = false;\r
255 }}fieldMask >>>= 1;\r
256 }\r
257 }}, "~N");\r
258 Clazz.defineMethod (c$, "setFieldsNormalized", \r
259 function (fieldMask) {\r
260 if (fieldMask != 131071) {\r
261 for (var i = 0; i < this.fields.length; i++) {\r
262 if ((fieldMask & 1) == 0) {\r
263 this.stamp[i] = this.fields[i] = 0;\r
264 this.$isSet[i] = false;\r
265 }fieldMask >>= 1;\r
266 }\r
267 }this.areFieldsSet = true;\r
268 this.areAllFieldsSet = false;\r
269 }, "~N");\r
270 Clazz.defineMethod (c$, "isPartiallyNormalized", \r
271 function () {\r
272 return this.areFieldsSet && !this.areAllFieldsSet;\r
273 });\r
274 Clazz.defineMethod (c$, "isFullyNormalized", \r
275 function () {\r
276 return this.areFieldsSet && this.areAllFieldsSet;\r
277 });\r
278 Clazz.defineMethod (c$, "setUnnormalized", \r
279 function () {\r
280 this.areFieldsSet = this.areAllFieldsSet = false;\r
281 });\r
282 c$.isFieldSet = Clazz.defineMethod (c$, "isFieldSet", \r
283 function (fieldMask, field) {\r
284 return (fieldMask & (1 << field)) != 0;\r
285 }, "~N,~N");\r
286 Clazz.defineMethod (c$, "selectFields", \r
287 function () {\r
288 var fieldMask = 2;\r
289 if (this.stamp[0] != 0) {\r
290 fieldMask |= 1;\r
291 }var dowStamp = this.stamp[7];\r
292 var monthStamp = this.stamp[2];\r
293 var domStamp = this.stamp[5];\r
294 var womStamp = java.util.Calendar.aggregateStamp (this.stamp[4], dowStamp);\r
295 var dowimStamp = java.util.Calendar.aggregateStamp (this.stamp[8], dowStamp);\r
296 var doyStamp = this.stamp[6];\r
297 var woyStamp = java.util.Calendar.aggregateStamp (this.stamp[3], dowStamp);\r
298 var bestStamp = domStamp;\r
299 if (womStamp > bestStamp) {\r
300 bestStamp = womStamp;\r
301 }if (dowimStamp > bestStamp) {\r
302 bestStamp = dowimStamp;\r
303 }if (doyStamp > bestStamp) {\r
304 bestStamp = doyStamp;\r
305 }if (woyStamp > bestStamp) {\r
306 bestStamp = woyStamp;\r
307 }if (bestStamp == 0) {\r
308 womStamp = this.stamp[4];\r
309 dowimStamp = Math.max (this.stamp[8], dowStamp);\r
310 woyStamp = this.stamp[3];\r
311 bestStamp = Math.max (Math.max (womStamp, dowimStamp), woyStamp);\r
312 if (bestStamp == 0) {\r
313 bestStamp = domStamp = monthStamp;\r
314 }}if (bestStamp == domStamp || (bestStamp == womStamp && this.stamp[4] >= this.stamp[3]) || (bestStamp == dowimStamp && this.stamp[8] >= this.stamp[3])) {\r
315 fieldMask |= 4;\r
316 if (bestStamp == domStamp) {\r
317 fieldMask |= 32;\r
318 } else {\r
319 if (dowStamp != 0) {\r
320 fieldMask |= 128;\r
321 }if (womStamp == dowimStamp) {\r
322 if (this.stamp[4] >= this.stamp[8]) {\r
323 fieldMask |= 16;\r
324 } else {\r
325 fieldMask |= 256;\r
326 }} else {\r
327 if (bestStamp == womStamp) {\r
328 fieldMask |= 16;\r
329 } else {\r
330 if (this.stamp[8] != 0) {\r
331 fieldMask |= 256;\r
332 }}}}} else {\r
333 if (bestStamp == doyStamp) {\r
334 fieldMask |= 64;\r
335 } else {\r
336 if (dowStamp != 0) {\r
337 fieldMask |= 128;\r
338 }fieldMask |= 8;\r
339 }}var hourOfDayStamp = this.stamp[11];\r
340 var hourStamp = java.util.Calendar.aggregateStamp (this.stamp[10], this.stamp[9]);\r
341 bestStamp = (hourStamp > hourOfDayStamp) ? hourStamp : hourOfDayStamp;\r
342 if (bestStamp == 0) {\r
343 bestStamp = Math.max (this.stamp[10], this.stamp[9]);\r
344 }if (bestStamp != 0) {\r
345 if (bestStamp == hourOfDayStamp) {\r
346 fieldMask |= 2048;\r
347 } else {\r
348 fieldMask |= 1024;\r
349 if (this.stamp[9] != 0) {\r
350 fieldMask |= 512;\r
351 }}}if (this.stamp[12] != 0) {\r
352 fieldMask |= 4096;\r
353 }if (this.stamp[13] != 0) {\r
354 fieldMask |= 8192;\r
355 }if (this.stamp[14] != 0) {\r
356 fieldMask |= 16384;\r
357 }if (this.stamp[15] >= 2) {\r
358 fieldMask |= 32768;\r
359 }if (this.stamp[16] >= 2) {\r
360 fieldMask |= 65536;\r
361 }return fieldMask;\r
362 });\r
363 c$.aggregateStamp = Clazz.defineMethod (c$, "aggregateStamp", \r
364  function (stamp_a, stamp_b) {\r
365 if (stamp_a == 0 || stamp_b == 0) {\r
366 return 0;\r
367 }return (stamp_a > stamp_b) ? stamp_a : stamp_b;\r
368 }, "~N,~N");\r
369 Clazz.defineMethod (c$, "equals", \r
370 function (obj) {\r
371 if (this === obj) return true;\r
372 try {\r
373 var that = obj;\r
374 return this.compareTo (java.util.Calendar.getMillisOf (that)) == 0 && this.lenient == that.lenient && this.firstDayOfWeek == that.firstDayOfWeek && this.minimalDaysInFirstWeek == that.minimalDaysInFirstWeek && this.zone.equals (that.zone);\r
375 } catch (e) {\r
376 if (Clazz.exceptionOf (e, Exception)) {\r
377 } else {\r
378 throw e;\r
379 }\r
380 }\r
381 return false;\r
382 }, "~O");\r
383 Clazz.defineMethod (c$, "hashCode", \r
384 function () {\r
385 var otheritems = (this.lenient ? 1 : 0) | (this.firstDayOfWeek << 1) | (this.minimalDaysInFirstWeek << 4) | (this.zone.hashCode () << 7);\r
386 var t = java.util.Calendar.getMillisOf (this);\r
387 return t ^ (t >> 32) ^ otheritems;\r
388 });\r
389 Clazz.defineMethod (c$, "before", \r
390 function (when) {\r
391 return Clazz.instanceOf (when, java.util.Calendar) && this.compareTo (when) < 0;\r
392 }, "~O");\r
393 Clazz.defineMethod (c$, "after", \r
394 function (when) {\r
395 return Clazz.instanceOf (when, java.util.Calendar) && this.compareTo (when) > 0;\r
396 }, "~O");\r
397 Clazz.defineMethod (c$, "compareTo", \r
398 function (anotherCalendar) {\r
399 return this.compareTo (java.util.Calendar.getMillisOf (anotherCalendar));\r
400 }, "java.util.Calendar");\r
401 Clazz.defineMethod (c$, "roll", \r
402 function (field, amount) {\r
403 while (amount > 0) {\r
404 this.roll (field, true);\r
405 amount--;\r
406 }\r
407 while (amount < 0) {\r
408 this.roll (field, false);\r
409 amount++;\r
410 }\r
411 }, "~N,~N");\r
412 Clazz.defineMethod (c$, "setTimeZone", \r
413 function (value) {\r
414 this.zone = value;\r
415 this.sharedZone = false;\r
416 this.areAllFieldsSet = this.areFieldsSet = false;\r
417 }, "java.util.TimeZone");\r
418 Clazz.defineMethod (c$, "getTimeZone", \r
419 function () {\r
420 if (this.sharedZone) {\r
421 this.zone = this.zone.clone ();\r
422 this.sharedZone = false;\r
423 }return this.zone;\r
424 });\r
425 Clazz.defineMethod (c$, "getZone", \r
426 function () {\r
427 return this.zone;\r
428 });\r
429 Clazz.defineMethod (c$, "setZoneShared", \r
430 function (shared) {\r
431 this.sharedZone = shared;\r
432 }, "~B");\r
433 Clazz.defineMethod (c$, "setLenient", \r
434 function (lenient) {\r
435 this.lenient = lenient;\r
436 }, "~B");\r
437 Clazz.defineMethod (c$, "isLenient", \r
438 function () {\r
439 return this.lenient;\r
440 });\r
441 Clazz.defineMethod (c$, "setFirstDayOfWeek", \r
442 function (value) {\r
443 if (this.firstDayOfWeek == value) {\r
444 return;\r
445 }this.firstDayOfWeek = value;\r
446 this.invalidateWeekFields ();\r
447 }, "~N");\r
448 Clazz.defineMethod (c$, "getFirstDayOfWeek", \r
449 function () {\r
450 return this.firstDayOfWeek;\r
451 });\r
452 Clazz.defineMethod (c$, "setMinimalDaysInFirstWeek", \r
453 function (value) {\r
454 if (this.minimalDaysInFirstWeek == value) {\r
455 return;\r
456 }this.minimalDaysInFirstWeek = value;\r
457 this.invalidateWeekFields ();\r
458 }, "~N");\r
459 Clazz.defineMethod (c$, "getMinimalDaysInFirstWeek", \r
460 function () {\r
461 return this.minimalDaysInFirstWeek;\r
462 });\r
463 Clazz.defineMethod (c$, "getActualMinimum", \r
464 function (field) {\r
465 var fieldValue = this.getGreatestMinimum (field);\r
466 var endValue = this.getMinimum (field);\r
467 if (fieldValue == endValue) {\r
468 return fieldValue;\r
469 }var work = this.clone ();\r
470 work.setLenient (true);\r
471 var result = fieldValue;\r
472 do {\r
473 work.set (field, fieldValue);\r
474 if (work.get (field) != fieldValue) {\r
475 break;\r
476 } else {\r
477 result = fieldValue;\r
478 fieldValue--;\r
479 }} while (fieldValue >= endValue);\r
480 return result;\r
481 }, "~N");\r
482 Clazz.defineMethod (c$, "getActualMaximum", \r
483 function (field) {\r
484 var fieldValue = this.getLeastMaximum (field);\r
485 var endValue = this.getMaximum (field);\r
486 if (fieldValue == endValue) {\r
487 return fieldValue;\r
488 }var work = this.clone ();\r
489 work.setLenient (true);\r
490 if (field == 3 || field == 4) work.set (7, this.firstDayOfWeek);\r
491 var result = fieldValue;\r
492 do {\r
493 work.set (field, fieldValue);\r
494 if (work.get (field) != fieldValue) {\r
495 break;\r
496 } else {\r
497 result = fieldValue;\r
498 fieldValue++;\r
499 }} while (fieldValue <= endValue);\r
500 return result;\r
501 }, "~N");\r
502 Clazz.defineMethod (c$, "clone", \r
503 function () {\r
504 try {\r
505 var other = Clazz.superCall (this, java.util.Calendar, "clone", []);\r
506 other.fields =  Clazz.newIntArray (17, 0);\r
507 other.$isSet =  Clazz.newBooleanArray (17, false);\r
508 other.stamp =  Clazz.newIntArray (17, 0);\r
509 for (var i = 0; i < 17; i++) {\r
510 other.fields[i] = this.fields[i];\r
511 other.stamp[i] = this.stamp[i];\r
512 other.$isSet[i] = this.$isSet[i];\r
513 }\r
514 other.zone = this.zone.clone ();\r
515 return other;\r
516 } catch (e) {\r
517 if (Clazz.exceptionOf (e, CloneNotSupportedException)) {\r
518 throw  new InternalError ();\r
519 } else {\r
520 throw e;\r
521 }\r
522 }\r
523 });\r
524 c$.getFieldName = Clazz.defineMethod (c$, "getFieldName", \r
525 function (field) {\r
526 return java.util.Calendar.FIELD_NAME[field];\r
527 }, "~N");\r
528 Clazz.overrideMethod (c$, "toString", \r
529 function () {\r
530 var buffer =  new StringBuilder (800);\r
531 buffer.append (this.getClass ().getName ()).append ('[');\r
532 java.util.Calendar.appendValue (buffer, "time", this.isTimeSet, this.time);\r
533 buffer.append (",areFieldsSet=").append (this.areFieldsSet);\r
534 buffer.append (",areAllFieldsSet=").append (this.areAllFieldsSet);\r
535 buffer.append (",lenient=").append (this.lenient);\r
536 buffer.append (",zone=").append (this.zone);\r
537 java.util.Calendar.appendValue (buffer, ",firstDayOfWeek", true, this.firstDayOfWeek);\r
538 java.util.Calendar.appendValue (buffer, ",minimalDaysInFirstWeek", true, this.minimalDaysInFirstWeek);\r
539 for (var i = 0; i < 17; ++i) {\r
540 buffer.append (',');\r
541 java.util.Calendar.appendValue (buffer, java.util.Calendar.FIELD_NAME[i], this.isSet (i), this.fields[i]);\r
542 }\r
543 buffer.append (']');\r
544 return buffer.toString ();\r
545 });\r
546 c$.appendValue = Clazz.defineMethod (c$, "appendValue", \r
547  function (sb, item, valid, value) {\r
548 sb.append (item).append ('=');\r
549 if (valid) {\r
550 sb.append (value);\r
551 } else {\r
552 sb.append ('?');\r
553 }}, "StringBuilder,~S,~B,~N");\r
554 Clazz.defineMethod (c$, "setWeekCountData", \r
555  function (desiredLocale) {\r
556 var data = java.util.Calendar.cachedLocaleData.get (desiredLocale);\r
557 if (data == null) {\r
558 var bundle = jssun.util.resources.LocaleData.getCalendarData (desiredLocale);\r
559 data =  Clazz.newIntArray (2, 0);\r
560 data[0] = Integer.parseInt (bundle.getString ("firstDayOfWeek"));\r
561 data[1] = Integer.parseInt (bundle.getString ("minimalDaysInFirstWeek"));\r
562 java.util.Calendar.cachedLocaleData.put (desiredLocale, data);\r
563 }this.firstDayOfWeek = data[0];\r
564 this.minimalDaysInFirstWeek = data[1];\r
565 }, "java.util.Locale");\r
566 Clazz.defineMethod (c$, "updateTime", \r
567  function () {\r
568 this.computeTime ();\r
569 this.isTimeSet = true;\r
570 });\r
571 Clazz.defineMethod (c$, "compareTo", \r
572  function (t) {\r
573 var thisTime = java.util.Calendar.getMillisOf (this);\r
574 return (thisTime > t) ? 1 : (thisTime == t) ? 0 : -1;\r
575 }, "~N");\r
576 c$.getMillisOf = Clazz.defineMethod (c$, "getMillisOf", \r
577  function (calendar) {\r
578 if (calendar.isTimeSet) {\r
579 return calendar.time;\r
580 }var cal = calendar.clone ();\r
581 cal.setLenient (true);\r
582 return cal.getTimeInMillis ();\r
583 }, "java.util.Calendar");\r
584 Clazz.defineMethod (c$, "adjustStamp", \r
585  function () {\r
586 var max = 2;\r
587 var newStamp = 2;\r
588 for (; ; ) {\r
589 var min = 2147483647;\r
590 for (var i = 0; i < this.stamp.length; i++) {\r
591 var v = this.stamp[i];\r
592 if (v >= newStamp && min > v) {\r
593 min = v;\r
594 }if (max < v) {\r
595 max = v;\r
596 }}\r
597 if (max != min && min == 2147483647) {\r
598 break;\r
599 }for (var i = 0; i < this.stamp.length; i++) {\r
600 if (this.stamp[i] == min) {\r
601 this.stamp[i] = newStamp;\r
602 }}\r
603 newStamp++;\r
604 if (min == max) {\r
605 break;\r
606 }}\r
607 this.nextStamp = newStamp;\r
608 });\r
609 Clazz.defineMethod (c$, "invalidateWeekFields", \r
610  function () {\r
611 if (this.stamp[4] != 1 && this.stamp[3] != 1) {\r
612 return;\r
613 }var cal = this.clone ();\r
614 cal.setLenient (true);\r
615 cal.clear (4);\r
616 cal.clear (3);\r
617 if (this.stamp[4] == 1) {\r
618 var weekOfMonth = cal.get (4);\r
619 if (this.fields[4] != weekOfMonth) {\r
620 this.fields[4] = weekOfMonth;\r
621 }}if (this.stamp[3] == 1) {\r
622 var weekOfYear = cal.get (3);\r
623 if (this.fields[3] != weekOfYear) {\r
624 this.fields[3] = weekOfYear;\r
625 }}});\r
626 Clazz.defineStatics (c$,\r
627 "ERA", 0,\r
628 "YEAR", 1,\r
629 "MONTH", 2,\r
630 "WEEK_OF_YEAR", 3,\r
631 "WEEK_OF_MONTH", 4,\r
632 "DATE", 5,\r
633 "DAY_OF_MONTH", 5,\r
634 "DAY_OF_YEAR", 6,\r
635 "DAY_OF_WEEK", 7,\r
636 "DAY_OF_WEEK_IN_MONTH", 8,\r
637 "AM_PM", 9,\r
638 "HOUR", 10,\r
639 "HOUR_OF_DAY", 11,\r
640 "MINUTE", 12,\r
641 "SECOND", 13,\r
642 "MILLISECOND", 14,\r
643 "ZONE_OFFSET", 15,\r
644 "DST_OFFSET", 16,\r
645 "FIELD_COUNT", 17,\r
646 "SUNDAY", 1,\r
647 "MONDAY", 2,\r
648 "TUESDAY", 3,\r
649 "WEDNESDAY", 4,\r
650 "THURSDAY", 5,\r
651 "FRIDAY", 6,\r
652 "SATURDAY", 7,\r
653 "JANUARY", 0,\r
654 "FEBRUARY", 1,\r
655 "MARCH", 2,\r
656 "APRIL", 3,\r
657 "MAY", 4,\r
658 "JUNE", 5,\r
659 "JULY", 6,\r
660 "AUGUST", 7,\r
661 "SEPTEMBER", 8,\r
662 "OCTOBER", 9,\r
663 "NOVEMBER", 10,\r
664 "DECEMBER", 11,\r
665 "UNDECIMBER", 12,\r
666 "AM", 0,\r
667 "PM", 1,\r
668 "ALL_STYLES", 0,\r
669 "SHORT", 1,\r
670 "LONG", 2);\r
671 c$.cachedLocaleData = c$.prototype.cachedLocaleData =  new java.util.Hashtable (3);\r
672 Clazz.defineStatics (c$,\r
673 "UNSET", 0,\r
674 "COMPUTED", 1,\r
675 "MINIMUM_USER_STAMP", 2,\r
676 "ALL_FIELDS", 131071,\r
677 "currentSerialVersion", 1,\r
678 "ERA_MASK", (1),\r
679 "YEAR_MASK", (2),\r
680 "MONTH_MASK", (4),\r
681 "WEEK_OF_YEAR_MASK", (8),\r
682 "WEEK_OF_MONTH_MASK", (16),\r
683 "DAY_OF_MONTH_MASK", (32),\r
684 "DATE_MASK", 32,\r
685 "DAY_OF_YEAR_MASK", (64),\r
686 "DAY_OF_WEEK_MASK", (128),\r
687 "DAY_OF_WEEK_IN_MONTH_MASK", (256),\r
688 "AM_PM_MASK", (512),\r
689 "HOUR_MASK", (1024),\r
690 "HOUR_OF_DAY_MASK", (2048),\r
691 "MINUTE_MASK", (4096),\r
692 "SECOND_MASK", (8192),\r
693 "MILLISECOND_MASK", (16384),\r
694 "ZONE_OFFSET_MASK", (32768),\r
695 "DST_OFFSET_MASK", (65536),\r
696 "FIELD_NAME",  Clazz.newArray (-1, ["ERA", "YEAR", "MONTH", "WEEK_OF_YEAR", "WEEK_OF_MONTH", "DAY_OF_MONTH", "DAY_OF_YEAR", "DAY_OF_WEEK", "DAY_OF_WEEK_IN_MONTH", "AM_PM", "HOUR", "HOUR_OF_DAY", "MINUTE", "SECOND", "MILLISECOND", "ZONE_OFFSET", "DST_OFFSET"]));\r
697 });\r