JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / util / TreeMap.js
1 Clazz.load(["java.util.AbstractCollection","$.AbstractMap","$.AbstractSet","$.Iterator","$.MapEntry","$.Set","$.SortedMap"],"java.util.TreeMap",["java.lang.IllegalArgumentException","$.IllegalStateException","java.util.ConcurrentModificationException","$.NoSuchElementException"],function(){\r
2 c$=Clazz.decorateAsClass(function(){\r
3 this.$size=0;\r
4 this.root=null;\r
5 this.$comparator=null;\r
6 this.modCount=0;\r
7 this.$entrySet=null;\r
8 Clazz.instantialize(this,arguments);\r
9 },java.util,"TreeMap",java.util.AbstractMap,[java.util.SortedMap,Cloneable,java.io.Serializable]);\r
10 c$.toComparable=Clazz.defineMethod(c$,"toComparable",\r
11 ($fz=function(obj){\r
12 return obj;\r
13 },$fz.isPrivate=true,$fz),"~O");\r
14 Clazz.makeConstructor(c$,\r
15 function(comparator){\r
16 Clazz.superConstructor(this,java.util.TreeMap,[]);\r
17 this.$comparator=comparator;\r
18 },"java.util.Comparator");\r
19 Clazz.makeConstructor(c$,\r
20 function(map){\r
21 this.construct();\r
22 this.putAll(map);\r
23 },"java.util.Map");\r
24 Clazz.makeConstructor(c$,\r
25 function(map){\r
26 this.construct(map.comparator());\r
27 var it=map.entrySet().iterator();\r
28 if(it.hasNext()){\r
29 var entry=it.next();\r
30 var last=new java.util.TreeMap.Entry(entry.getKey(),entry.getValue());\r
31 this.root=last;\r
32 this.$size=1;\r
33 while(it.hasNext()){\r
34 entry=it.next();\r
35 var x=new java.util.TreeMap.Entry(entry.getKey(),entry.getValue());\r
36 x.parent=last;\r
37 last.right=x;\r
38 this.$size++;\r
39 this.balance(x);\r
40 last=x;\r
41 }\r
42 }},"java.util.SortedMap");\r
43 Clazz.defineMethod(c$,"balance",\r
44 function(x){\r
45 var y;\r
46 x.color=true;\r
47 while(x!==this.root&&x.parent.color){\r
48 if(x.parent===x.parent.parent.left){\r
49 y=x.parent.parent.right;\r
50 if(y!=null&&y.color){\r
51 x.parent.color=false;\r
52 y.color=false;\r
53 x.parent.parent.color=true;\r
54 x=x.parent.parent;\r
55 }else{\r
56 if(x===x.parent.right){\r
57 x=x.parent;\r
58 this.leftRotate(x);\r
59 }x.parent.color=false;\r
60 x.parent.parent.color=true;\r
61 this.rightRotate(x.parent.parent);\r
62 }}else{\r
63 y=x.parent.parent.left;\r
64 if(y!=null&&y.color){\r
65 x.parent.color=false;\r
66 y.color=false;\r
67 x.parent.parent.color=true;\r
68 x=x.parent.parent;\r
69 }else{\r
70 if(x===x.parent.left){\r
71 x=x.parent;\r
72 this.rightRotate(x);\r
73 }x.parent.color=false;\r
74 x.parent.parent.color=true;\r
75 this.leftRotate(x.parent.parent);\r
76 }}}\r
77 this.root.color=false;\r
78 },"java.util.TreeMap.Entry");\r
79 Clazz.overrideMethod(c$,"clear",\r
80 function(){\r
81 this.root=null;\r
82 this.$size=0;\r
83 this.modCount++;\r
84 });\r
85 Clazz.defineMethod(c$,"clone",\r
86 function(){\r
87 try{\r
88 var clone=Clazz.superCall(this,java.util.TreeMap,"clone",[]);\r
89 clone.$entrySet=null;\r
90 if(this.root!=null){\r
91 clone.root=this.root.clone(null);\r
92 }return clone;\r
93 }catch(e){\r
94 if(Clazz.instanceOf(e,CloneNotSupportedException)){\r
95 return null;\r
96 }else{\r
97 throw e;\r
98 }\r
99 }\r
100 });\r
101 Clazz.overrideMethod(c$,"comparator",\r
102 function(){\r
103 return this.$comparator;\r
104 });\r
105 Clazz.overrideMethod(c$,"containsKey",\r
106 function(key){\r
107 return this.find(key)!=null;\r
108 },"~O");\r
109 Clazz.defineMethod(c$,"containsValue",\r
110 function(value){\r
111 if(this.root!=null){\r
112 return this.containsValue(this.root,value);\r
113 }return false;\r
114 },"~O");\r
115 Clazz.defineMethod(c$,"containsValue",\r
116 ($fz=function(node,value){\r
117 if(value==null?node.value==null:value.equals(node.value)){\r
118 return true;\r
119 }if(node.left!=null){\r
120 if(this.containsValue(node.left,value)){\r
121 return true;\r
122 }}if(node.right!=null){\r
123 if(this.containsValue(node.right,value)){\r
124 return true;\r
125 }}return false;\r
126 },$fz.isPrivate=true,$fz),"java.util.TreeMap.Entry,~O");\r
127 Clazz.overrideMethod(c$,"entrySet",\r
128 function(){\r
129 if(this.$entrySet==null){\r
130 this.$entrySet=((Clazz.isClassDefined("java.util.TreeMap$1")?0:java.util.TreeMap.$TreeMap$1$()),Clazz.innerTypeInstance(java.util.TreeMap$1,this,null));\r
131 }return this.$entrySet;\r
132 });\r
133 Clazz.defineMethod(c$,"find",\r
134 ($fz=function(keyObj){\r
135 var result;\r
136 var key=keyObj;\r
137 var object=null;\r
138 if(this.$comparator==null){\r
139 object=java.util.TreeMap.toComparable(key);\r
140 }var x=this.root;\r
141 while(x!=null){\r
142 result=object!=null?object.compareTo(x.key):this.$comparator.compare(key,x.key);\r
143 if(result==0){\r
144 return x;\r
145 }x=result<0?x.left:x.right;\r
146 }\r
147 return null;\r
148 },$fz.isPrivate=true,$fz),"~O");\r
149 Clazz.defineMethod(c$,"findAfter",\r
150 function(keyObj){\r
151 var key=keyObj;\r
152 var result;\r
153 var object=null;\r
154 if(this.$comparator==null){\r
155 object=java.util.TreeMap.toComparable(key);\r
156 }var x=this.root;\r
157 var last=null;\r
158 while(x!=null){\r
159 result=object!=null?object.compareTo(x.key):this.$comparator.compare(key,x.key);\r
160 if(result==0){\r
161 return x;\r
162 }if(result<0){\r
163 last=x;\r
164 x=x.left;\r
165 }else{\r
166 x=x.right;\r
167 }}\r
168 return last;\r
169 },"~O");\r
170 Clazz.defineMethod(c$,"findBefore",\r
171 function(key){\r
172 var result;\r
173 var object=null;\r
174 if(this.$comparator==null){\r
175 object=java.util.TreeMap.toComparable(key);\r
176 }var x=this.root;\r
177 var last=null;\r
178 while(x!=null){\r
179 result=object!=null?object.compareTo(x.key):this.$comparator.compare(key,x.key);\r
180 if(result<=0){\r
181 x=x.left;\r
182 }else{\r
183 last=x;\r
184 x=x.right;\r
185 }}\r
186 return last;\r
187 },"~O");\r
188 Clazz.overrideMethod(c$,"firstKey",\r
189 function(){\r
190 if(this.root!=null){\r
191 return java.util.TreeMap.minimum(this.root).key;\r
192 }throw new java.util.NoSuchElementException();\r
193 });\r
194 Clazz.defineMethod(c$,"fixup",\r
195 ($fz=function(x){\r
196 var w;\r
197 while(x!==this.root&&!x.color){\r
198 if(x===x.parent.left){\r
199 w=x.parent.right;\r
200 if(w==null){\r
201 x=x.parent;\r
202 continue;}if(w.color){\r
203 w.color=false;\r
204 x.parent.color=true;\r
205 this.leftRotate(x.parent);\r
206 w=x.parent.right;\r
207 if(w==null){\r
208 x=x.parent;\r
209 continue;}}if((w.left==null||!w.left.color)&&(w.right==null||!w.right.color)){\r
210 w.color=true;\r
211 x=x.parent;\r
212 }else{\r
213 if(w.right==null||!w.right.color){\r
214 w.left.color=false;\r
215 w.color=true;\r
216 this.rightRotate(w);\r
217 w=x.parent.right;\r
218 }w.color=x.parent.color;\r
219 x.parent.color=false;\r
220 w.right.color=false;\r
221 this.leftRotate(x.parent);\r
222 x=this.root;\r
223 }}else{\r
224 w=x.parent.left;\r
225 if(w==null){\r
226 x=x.parent;\r
227 continue;}if(w.color){\r
228 w.color=false;\r
229 x.parent.color=true;\r
230 this.rightRotate(x.parent);\r
231 w=x.parent.left;\r
232 if(w==null){\r
233 x=x.parent;\r
234 continue;}}if((w.left==null||!w.left.color)&&(w.right==null||!w.right.color)){\r
235 w.color=true;\r
236 x=x.parent;\r
237 }else{\r
238 if(w.left==null||!w.left.color){\r
239 w.right.color=false;\r
240 w.color=true;\r
241 this.leftRotate(w);\r
242 w=x.parent.left;\r
243 }w.color=x.parent.color;\r
244 x.parent.color=false;\r
245 w.left.color=false;\r
246 this.rightRotate(x.parent);\r
247 x=this.root;\r
248 }}}\r
249 x.color=false;\r
250 },$fz.isPrivate=true,$fz),"java.util.TreeMap.Entry");\r
251 Clazz.overrideMethod(c$,"get",\r
252 function(key){\r
253 var node=this.find(key);\r
254 if(node!=null){\r
255 return node.value;\r
256 }return null;\r
257 },"~O");\r
258 Clazz.overrideMethod(c$,"headMap",\r
259 function(endKey){\r
260 if(this.$comparator==null){\r
261 java.util.TreeMap.toComparable(endKey).compareTo(endKey);\r
262 }else{\r
263 this.$comparator.compare(endKey,endKey);\r
264 }return new java.util.TreeMap.SubMap(this,endKey);\r
265 },"~O");\r
266 Clazz.overrideMethod(c$,"keySet",\r
267 function(){\r
268 if(this.$keySet==null){\r
269 this.$keySet=((Clazz.isClassDefined("java.util.TreeMap$2")?0:java.util.TreeMap.$TreeMap$2$()),Clazz.innerTypeInstance(java.util.TreeMap$2,this,null));\r
270 }return this.$keySet;\r
271 });\r
272 Clazz.overrideMethod(c$,"lastKey",\r
273 function(){\r
274 if(this.root!=null){\r
275 return java.util.TreeMap.maximum(this.root).key;\r
276 }throw new java.util.NoSuchElementException();\r
277 });\r
278 Clazz.defineMethod(c$,"leftRotate",\r
279 ($fz=function(x){\r
280 var y=x.right;\r
281 x.right=y.left;\r
282 if(y.left!=null){\r
283 y.left.parent=x;\r
284 }y.parent=x.parent;\r
285 if(x.parent==null){\r
286 this.root=y;\r
287 }else{\r
288 if(x===x.parent.left){\r
289 x.parent.left=y;\r
290 }else{\r
291 x.parent.right=y;\r
292 }}y.left=x;\r
293 x.parent=y;\r
294 },$fz.isPrivate=true,$fz),"java.util.TreeMap.Entry");\r
295 c$.maximum=Clazz.defineMethod(c$,"maximum",\r
296 function(x){\r
297 while(x.right!=null){\r
298 x=x.right;\r
299 }\r
300 return x;\r
301 },"java.util.TreeMap.Entry");\r
302 c$.minimum=Clazz.defineMethod(c$,"minimum",\r
303 function(x){\r
304 while(x.left!=null){\r
305 x=x.left;\r
306 }\r
307 return x;\r
308 },"java.util.TreeMap.Entry");\r
309 c$.predecessor=Clazz.defineMethod(c$,"predecessor",\r
310 function(x){\r
311 if(x.left!=null){\r
312 return java.util.TreeMap.maximum(x.left);\r
313 }var y=x.parent;\r
314 while(y!=null&&x===y.left){\r
315 x=y;\r
316 y=y.parent;\r
317 }\r
318 return y;\r
319 },"java.util.TreeMap.Entry");\r
320 Clazz.overrideMethod(c$,"put",\r
321 function(key,value){\r
322 var entry=this.rbInsert(key);\r
323 var result=entry.value;\r
324 entry.value=value;\r
325 return result;\r
326 },"~O,~O");\r
327 Clazz.defineMethod(c$,"rbDelete",\r
328 function(z){\r
329 var y=z.left==null||z.right==null?z:java.util.TreeMap.successor(z);\r
330 var x=y.left!=null?y.left:y.right;\r
331 if(x!=null){\r
332 x.parent=y.parent;\r
333 }if(y.parent==null){\r
334 this.root=x;\r
335 }else if(y===y.parent.left){\r
336 y.parent.left=x;\r
337 }else{\r
338 y.parent.right=x;\r
339 }this.modCount++;\r
340 if(y!==z){\r
341 z.key=y.key;\r
342 z.value=y.value;\r
343 }if(!y.color&&this.root!=null){\r
344 if(x==null){\r
345 this.fixup(y.parent);\r
346 }else{\r
347 this.fixup(x);\r
348 }}this.$size--;\r
349 },"java.util.TreeMap.Entry");\r
350 Clazz.defineMethod(c$,"rbInsert",\r
351 ($fz=function(object){\r
352 var result=0;\r
353 var y=null;\r
354 if(this.$size!=0){\r
355 var key=null;\r
356 if(this.$comparator==null){\r
357 key=java.util.TreeMap.toComparable(object);\r
358 }var x=this.root;\r
359 while(x!=null){\r
360 y=x;\r
361 result=key!=null?key.compareTo(x.key):this.$comparator.compare(object,x.key);\r
362 if(result==0){\r
363 return x;\r
364 }x=result<0?x.left:x.right;\r
365 }\r
366 }this.$size++;\r
367 this.modCount++;\r
368 var z=new java.util.TreeMap.Entry(object);\r
369 if(y==null){\r
370 return this.root=z;\r
371 }z.parent=y;\r
372 if(result<0){\r
373 y.left=z;\r
374 }else{\r
375 y.right=z;\r
376 }this.balance(z);\r
377 return z;\r
378 },$fz.isPrivate=true,$fz),"~O");\r
379 Clazz.overrideMethod(c$,"remove",\r
380 function(key){\r
381 var node=this.find(key);\r
382 if(node==null){\r
383 return null;\r
384 }var result=node.value;\r
385 this.rbDelete(node);\r
386 return result;\r
387 },"~O");\r
388 Clazz.defineMethod(c$,"rightRotate",\r
389 ($fz=function(x){\r
390 var y=x.left;\r
391 x.left=y.right;\r
392 if(y.right!=null){\r
393 y.right.parent=x;\r
394 }y.parent=x.parent;\r
395 if(x.parent==null){\r
396 this.root=y;\r
397 }else{\r
398 if(x===x.parent.right){\r
399 x.parent.right=y;\r
400 }else{\r
401 x.parent.left=y;\r
402 }}y.right=x;\r
403 x.parent=y;\r
404 },$fz.isPrivate=true,$fz),"java.util.TreeMap.Entry");\r
405 Clazz.overrideMethod(c$,"size",\r
406 function(){\r
407 return this.$size;\r
408 });\r
409 Clazz.overrideMethod(c$,"subMap",\r
410 function(startKey,endKey){\r
411 if(this.$comparator==null){\r
412 if(java.util.TreeMap.toComparable(startKey).compareTo(endKey)<=0){\r
413 return new java.util.TreeMap.SubMap(startKey,this,endKey);\r
414 }}else{\r
415 if(this.$comparator.compare(startKey,endKey)<=0){\r
416 return new java.util.TreeMap.SubMap(startKey,this,endKey);\r
417 }}throw new IllegalArgumentException();\r
418 },"~O,~O");\r
419 c$.successor=Clazz.defineMethod(c$,"successor",\r
420 function(x){\r
421 if(x.right!=null){\r
422 return java.util.TreeMap.minimum(x.right);\r
423 }var y=x.parent;\r
424 while(y!=null&&x===y.right){\r
425 x=y;\r
426 y=y.parent;\r
427 }\r
428 return y;\r
429 },"java.util.TreeMap.Entry");\r
430 Clazz.overrideMethod(c$,"tailMap",\r
431 function(startKey){\r
432 if(this.$comparator==null){\r
433 java.util.TreeMap.toComparable(startKey).compareTo(startKey);\r
434 }else{\r
435 this.$comparator.compare(startKey,startKey);\r
436 }return new java.util.TreeMap.SubMap(startKey,this);\r
437 },"~O");\r
438 Clazz.overrideMethod(c$,"values",\r
439 function(){\r
440 if(this.valuesCollection==null){\r
441 this.valuesCollection=((Clazz.isClassDefined("java.util.TreeMap$3")?0:java.util.TreeMap.$TreeMap$3$()),Clazz.innerTypeInstance(java.util.TreeMap$3,this,null));\r
442 }return this.valuesCollection;\r
443 });\r
444 c$.$TreeMap$1$=function(){\r
445 Clazz.pu$h(self.c$);\r
446 c$=Clazz.declareAnonymous(java.util,"TreeMap$1",java.util.AbstractSet);\r
447 Clazz.overrideMethod(c$,"size",\r
448 function(){\r
449 return this.b$["java.util.TreeMap"].$size;\r
450 });\r
451 Clazz.overrideMethod(c$,"clear",\r
452 function(){\r
453 this.b$["java.util.TreeMap"].clear();\r
454 });\r
455 Clazz.overrideMethod(c$,"contains",\r
456 function(object){\r
457 if(Clazz.instanceOf(object,java.util.Map.Entry)){\r
458 var entry=object;\r
459 var v1=this.b$["java.util.TreeMap"].get(entry.getKey());\r
460 var v2=entry.getValue();\r
461 return v1==null?v2==null:v1.equals(v2);\r
462 }return false;\r
463 },"~O");\r
464 Clazz.defineMethod(c$,"iterator",\r
465 function(){\r
466 return new java.util.TreeMap.UnboundedEntryIterator(this.b$["java.util.TreeMap"]);\r
467 });\r
468 c$=Clazz.p0p();\r
469 };\r
470 c$.$TreeMap$2$=function(){\r
471 Clazz.pu$h(self.c$);\r
472 c$=Clazz.declareAnonymous(java.util,"TreeMap$2",java.util.AbstractSet);\r
473 Clazz.overrideMethod(c$,"contains",\r
474 function(object){\r
475 return this.b$["java.util.TreeMap"].containsKey(object);\r
476 },"~O");\r
477 Clazz.overrideMethod(c$,"size",\r
478 function(){\r
479 return this.b$["java.util.TreeMap"].$size;\r
480 });\r
481 Clazz.overrideMethod(c$,"clear",\r
482 function(){\r
483 this.b$["java.util.TreeMap"].clear();\r
484 });\r
485 Clazz.overrideMethod(c$,"iterator",\r
486 function(){\r
487 return new java.util.TreeMap.UnboundedKeyIterator(this.b$["java.util.TreeMap"]);\r
488 });\r
489 c$=Clazz.p0p();\r
490 };\r
491 c$.$TreeMap$3$=function(){\r
492 Clazz.pu$h(self.c$);\r
493 c$=Clazz.declareAnonymous(java.util,"TreeMap$3",java.util.AbstractCollection);\r
494 Clazz.overrideMethod(c$,"contains",\r
495 function(object){\r
496 return this.b$["java.util.TreeMap"].containsValue(object);\r
497 },"~O");\r
498 Clazz.overrideMethod(c$,"size",\r
499 function(){\r
500 return this.b$["java.util.TreeMap"].$size;\r
501 });\r
502 Clazz.overrideMethod(c$,"clear",\r
503 function(){\r
504 this.b$["java.util.TreeMap"].clear();\r
505 });\r
506 Clazz.overrideMethod(c$,"iterator",\r
507 function(){\r
508 return new java.util.TreeMap.UnboundedValueIterator(this.b$["java.util.TreeMap"]);\r
509 });\r
510 c$=Clazz.p0p();\r
511 };\r
512 Clazz.pu$h(self.c$);\r
513 c$=Clazz.decorateAsClass(function(){\r
514 this.parent=null;\r
515 this.left=null;\r
516 this.right=null;\r
517 this.color=false;\r
518 Clazz.instantialize(this,arguments);\r
519 },java.util.TreeMap,"Entry",java.util.MapEntry);\r
520 Clazz.defineMethod(c$,"clone",\r
521 function(a){\r
522 var b=Clazz.superCall(this,java.util.TreeMap.Entry,"clone",[]);\r
523 b.parent=a;\r
524 if(this.left!=null){\r
525 b.left=this.left.clone(b);\r
526 }if(this.right!=null){\r
527 b.right=this.right.clone(b);\r
528 }return b;\r
529 },"java.util.TreeMap.Entry");\r
530 c$=Clazz.p0p();\r
531 Clazz.pu$h(self.c$);\r
532 c$=Clazz.decorateAsClass(function(){\r
533 this.backingMap=null;\r
534 this.expectedModCount=0;\r
535 this.node=null;\r
536 this.lastNode=null;\r
537 Clazz.instantialize(this,arguments);\r
538 },java.util.TreeMap,"AbstractMapIterator");\r
539 Clazz.makeConstructor(c$,\r
540 function(a,b){\r
541 this.backingMap=a;\r
542 this.expectedModCount=a.modCount;\r
543 this.node=b;\r
544 },"java.util.TreeMap,java.util.TreeMap.Entry");\r
545 Clazz.defineMethod(c$,"hasNext",\r
546 function(){\r
547 return this.node!=null;\r
548 });\r
549 Clazz.defineMethod(c$,"remove",\r
550 function(){\r
551 if(this.expectedModCount==this.backingMap.modCount){\r
552 if(this.lastNode!=null){\r
553 this.backingMap.rbDelete(this.lastNode);\r
554 this.lastNode=null;\r
555 this.expectedModCount++;\r
556 }else{\r
557 throw new IllegalStateException();\r
558 }}else{\r
559 throw new java.util.ConcurrentModificationException();\r
560 }});\r
561 Clazz.defineMethod(c$,"makeNext",\r
562 function(){\r
563 if(this.expectedModCount!=this.backingMap.modCount){\r
564 throw new java.util.ConcurrentModificationException();\r
565 }else if(this.node==null){\r
566 throw new java.util.NoSuchElementException();\r
567 }this.lastNode=this.node;\r
568 this.node=java.util.TreeMap.successor(this.node);\r
569 });\r
570 c$=Clazz.p0p();\r
571 Clazz.pu$h(self.c$);\r
572 c$=Clazz.declareType(java.util.TreeMap,"UnboundedEntryIterator",java.util.TreeMap.AbstractMapIterator,java.util.Iterator);\r
573 Clazz.makeConstructor(c$,\r
574 function(a){\r
575 Clazz.superConstructor(this,java.util.TreeMap.UnboundedEntryIterator,[a,a.root==null?null:java.util.TreeMap.minimum(a.root)]);\r
576 },"java.util.TreeMap");\r
577 Clazz.overrideMethod(c$,"next",\r
578 function(){\r
579 this.makeNext();\r
580 return this.lastNode;\r
581 });\r
582 c$=Clazz.p0p();\r
583 Clazz.pu$h(self.c$);\r
584 c$=Clazz.declareType(java.util.TreeMap,"UnboundedKeyIterator",java.util.TreeMap.AbstractMapIterator,java.util.Iterator);\r
585 Clazz.makeConstructor(c$,\r
586 function(a){\r
587 Clazz.superConstructor(this,java.util.TreeMap.UnboundedKeyIterator,[a,a.root==null?null:java.util.TreeMap.minimum(a.root)]);\r
588 },"java.util.TreeMap");\r
589 Clazz.overrideMethod(c$,"next",\r
590 function(){\r
591 this.makeNext();\r
592 return this.lastNode.key;\r
593 });\r
594 c$=Clazz.p0p();\r
595 Clazz.pu$h(self.c$);\r
596 c$=Clazz.declareType(java.util.TreeMap,"UnboundedValueIterator",java.util.TreeMap.AbstractMapIterator,java.util.Iterator);\r
597 Clazz.makeConstructor(c$,\r
598 function(a){\r
599 Clazz.superConstructor(this,java.util.TreeMap.UnboundedValueIterator,[a,a.root==null?null:java.util.TreeMap.minimum(a.root)]);\r
600 },"java.util.TreeMap");\r
601 Clazz.overrideMethod(c$,"next",\r
602 function(){\r
603 this.makeNext();\r
604 return this.lastNode.value;\r
605 });\r
606 c$=Clazz.p0p();\r
607 Clazz.pu$h(self.c$);\r
608 c$=Clazz.decorateAsClass(function(){\r
609 this.endKey=null;\r
610 this.cmp=null;\r
611 Clazz.instantialize(this,arguments);\r
612 },java.util.TreeMap,"ComparatorBoundedIterator",java.util.TreeMap.AbstractMapIterator);\r
613 Clazz.makeConstructor(c$,\r
614 function(a,b,c){\r
615 Clazz.superConstructor(this,java.util.TreeMap.ComparatorBoundedIterator,[a,b]);\r
616 this.endKey=c;\r
617 this.cmp=a.comparator();\r
618 },"java.util.TreeMap,java.util.TreeMap.Entry,~O");\r
619 Clazz.defineMethod(c$,"cleanNext",\r
620 function(){\r
621 if(this.node!=null&&this.cmp.compare(this.endKey,this.node.key)<=0){\r
622 this.node=null;\r
623 }});\r
624 Clazz.overrideMethod(c$,"hasNext",\r
625 function(){\r
626 return(this.node!=null&&this.endKey!=null)&&(this.cmp.compare(this.node.key,this.endKey)<0);\r
627 });\r
628 c$=Clazz.p0p();\r
629 Clazz.pu$h(self.c$);\r
630 c$=Clazz.declareType(java.util.TreeMap,"ComparatorBoundedEntryIterator",java.util.TreeMap.ComparatorBoundedIterator,java.util.Iterator);\r
631 Clazz.overrideMethod(c$,"next",\r
632 function(){\r
633 this.makeNext();\r
634 this.cleanNext();\r
635 return this.lastNode;\r
636 });\r
637 c$=Clazz.p0p();\r
638 Clazz.pu$h(self.c$);\r
639 c$=Clazz.declareType(java.util.TreeMap,"ComparatorBoundedKeyIterator",java.util.TreeMap.ComparatorBoundedIterator,java.util.Iterator);\r
640 Clazz.overrideMethod(c$,"next",\r
641 function(){\r
642 this.makeNext();\r
643 this.cleanNext();\r
644 return this.lastNode.key;\r
645 });\r
646 c$=Clazz.p0p();\r
647 Clazz.pu$h(self.c$);\r
648 c$=Clazz.declareType(java.util.TreeMap,"ComparatorBoundedValueIterator",java.util.TreeMap.ComparatorBoundedIterator,java.util.Iterator);\r
649 Clazz.overrideMethod(c$,"next",\r
650 function(){\r
651 this.makeNext();\r
652 this.cleanNext();\r
653 return this.lastNode.value;\r
654 });\r
655 c$=Clazz.p0p();\r
656 Clazz.pu$h(self.c$);\r
657 c$=Clazz.decorateAsClass(function(){\r
658 this.endKey=null;\r
659 Clazz.instantialize(this,arguments);\r
660 },java.util.TreeMap,"ComparableBoundedIterator",java.util.TreeMap.AbstractMapIterator);\r
661 Clazz.makeConstructor(c$,\r
662 function(a,b,c){\r
663 Clazz.superConstructor(this,java.util.TreeMap.ComparableBoundedIterator,[a,b]);\r
664 this.endKey=c;\r
665 },"java.util.TreeMap,java.util.TreeMap.Entry,Comparable");\r
666 Clazz.defineMethod(c$,"cleanNext",\r
667 function(){\r
668 if((this.node!=null)&&(this.endKey.compareTo(this.node.key)<=0)){\r
669 this.node=null;\r
670 }});\r
671 Clazz.overrideMethod(c$,"hasNext",\r
672 function(){\r
673 return(this.node!=null)&&(this.endKey.compareTo(this.node.key)>0);\r
674 });\r
675 c$=Clazz.p0p();\r
676 Clazz.pu$h(self.c$);\r
677 c$=Clazz.declareType(java.util.TreeMap,"ComparableBoundedEntryIterator",java.util.TreeMap.ComparableBoundedIterator,java.util.Iterator);\r
678 Clazz.overrideMethod(c$,"next",\r
679 function(){\r
680 this.makeNext();\r
681 this.cleanNext();\r
682 return this.lastNode;\r
683 });\r
684 c$=Clazz.p0p();\r
685 Clazz.pu$h(self.c$);\r
686 c$=Clazz.declareType(java.util.TreeMap,"ComparableBoundedKeyIterator",java.util.TreeMap.ComparableBoundedIterator,java.util.Iterator);\r
687 Clazz.overrideMethod(c$,"next",\r
688 function(){\r
689 this.makeNext();\r
690 this.cleanNext();\r
691 return this.lastNode.key;\r
692 });\r
693 c$=Clazz.p0p();\r
694 Clazz.pu$h(self.c$);\r
695 c$=Clazz.declareType(java.util.TreeMap,"ComparableBoundedValueIterator",java.util.TreeMap.ComparableBoundedIterator,java.util.Iterator);\r
696 Clazz.overrideMethod(c$,"next",\r
697 function(){\r
698 this.makeNext();\r
699 this.cleanNext();\r
700 return this.lastNode.value;\r
701 });\r
702 c$=Clazz.p0p();\r
703 Clazz.pu$h(self.c$);\r
704 c$=Clazz.decorateAsClass(function(){\r
705 this.backingMap=null;\r
706 this.hasStart=false;\r
707 this.hasEnd=false;\r
708 this.startKey=null;\r
709 this.endKey=null;\r
710 this.$entrySet=null;\r
711 Clazz.instantialize(this,arguments);\r
712 },java.util.TreeMap,"SubMap",java.util.AbstractMap,[java.util.SortedMap,java.io.Serializable]);\r
713 Clazz.makeConstructor(c$,\r
714 function(a,b){\r
715 Clazz.superConstructor(this,java.util.TreeMap.SubMap,[]);\r
716 this.backingMap=b;\r
717 this.hasStart=true;\r
718 this.startKey=a;\r
719 },"~O,java.util.TreeMap");\r
720 Clazz.makeConstructor(c$,\r
721 function(a,b,c){\r
722 Clazz.superConstructor(this,java.util.TreeMap.SubMap,[]);\r
723 this.backingMap=b;\r
724 this.hasStart=this.hasEnd=true;\r
725 this.startKey=a;\r
726 this.endKey=c;\r
727 },"~O,java.util.TreeMap,~O");\r
728 Clazz.makeConstructor(c$,\r
729 function(a,b){\r
730 Clazz.superConstructor(this,java.util.TreeMap.SubMap,[]);\r
731 this.backingMap=a;\r
732 this.hasEnd=true;\r
733 this.endKey=b;\r
734 },"java.util.TreeMap,~O");\r
735 Clazz.overrideMethod(c$,"comparator",\r
736 function(){\r
737 return this.backingMap.comparator();\r
738 });\r
739 Clazz.overrideMethod(c$,"containsKey",\r
740 function(a){\r
741 if(this.isInRange(a)){\r
742 return this.backingMap.containsKey(a);\r
743 }return false;\r
744 },"~O");\r
745 Clazz.overrideMethod(c$,"entrySet",\r
746 function(){\r
747 if(this.$entrySet==null){\r
748 this.$entrySet=new java.util.TreeMap.SubMapEntrySet(this);\r
749 }return this.$entrySet;\r
750 });\r
751 Clazz.overrideMethod(c$,"firstKey",\r
752 function(){\r
753 var a=this.firstEntry();\r
754 if(a!=null){\r
755 return a.key;\r
756 }throw new java.util.NoSuchElementException();\r
757 });\r
758 Clazz.defineMethod(c$,"firstEntry",\r
759 function(){\r
760 if(!this.hasStart){\r
761 var a=this.backingMap.root;\r
762 return(a==null)?null:java.util.TreeMap.minimum(this.backingMap.root);\r
763 }var a=this.backingMap.findAfter(this.startKey);\r
764 if(a!=null&&this.checkUpperBound(a.key)){\r
765 return a;\r
766 }return null;\r
767 });\r
768 Clazz.overrideMethod(c$,"get",\r
769 function(a){\r
770 if(this.isInRange(a)){\r
771 return this.backingMap.get(a);\r
772 }return null;\r
773 },"~O");\r
774 Clazz.overrideMethod(c$,"headMap",\r
775 function(a){\r
776 this.checkRange(a);\r
777 if(this.hasStart){\r
778 return new java.util.TreeMap.SubMap(this.startKey,this.backingMap,a);\r
779 }return new java.util.TreeMap.SubMap(this.backingMap,a);\r
780 },"~O");\r
781 Clazz.overrideMethod(c$,"isEmpty",\r
782 function(){\r
783 if(this.hasStart){\r
784 var a=this.backingMap.findAfter(this.startKey);\r
785 return a==null||!this.checkUpperBound(a.key);\r
786 }return this.backingMap.findBefore(this.endKey)==null;\r
787 });\r
788 Clazz.overrideMethod(c$,"keySet",\r
789 function(){\r
790 if(this.$keySet==null){\r
791 this.$keySet=new java.util.TreeMap.SubMapKeySet(this);\r
792 }return this.$keySet;\r
793 });\r
794 Clazz.overrideMethod(c$,"lastKey",\r
795 function(){\r
796 if(!this.hasEnd){\r
797 return this.backingMap.lastKey();\r
798 }var a=this.backingMap.findBefore(this.endKey);\r
799 if(a!=null&&this.checkLowerBound(a.key)){\r
800 return a.key;\r
801 }throw new java.util.NoSuchElementException();\r
802 });\r
803 Clazz.overrideMethod(c$,"put",\r
804 function(a,b){\r
805 if(this.isInRange(a)){\r
806 return this.backingMap.put(a,b);\r
807 }throw new IllegalArgumentException();\r
808 },"~O,~O");\r
809 Clazz.overrideMethod(c$,"remove",\r
810 function(a){\r
811 if(this.isInRange(a)){\r
812 return this.backingMap.remove(a);\r
813 }return null;\r
814 },"~O");\r
815 Clazz.overrideMethod(c$,"subMap",\r
816 function(a,b){\r
817 this.checkRange(a);\r
818 this.checkRange(b);\r
819 var c=this.backingMap.comparator();\r
820 if(c==null){\r
821 if(java.util.TreeMap.toComparable(a).compareTo(b)<=0){\r
822 return new java.util.TreeMap.SubMap(a,this.backingMap,b);\r
823 }}else{\r
824 if(c.compare(a,b)<=0){\r
825 return new java.util.TreeMap.SubMap(a,this.backingMap,b);\r
826 }}throw new IllegalArgumentException();\r
827 },"~O,~O");\r
828 Clazz.overrideMethod(c$,"tailMap",\r
829 function(a){\r
830 this.checkRange(a);\r
831 if(this.hasEnd){\r
832 return new java.util.TreeMap.SubMap(a,this.backingMap,this.endKey);\r
833 }return new java.util.TreeMap.SubMap(a,this.backingMap);\r
834 },"~O");\r
835 Clazz.overrideMethod(c$,"values",\r
836 function(){\r
837 if(this.valuesCollection==null){\r
838 this.valuesCollection=new java.util.TreeMap.SubMapValuesCollection(this);\r
839 }return this.valuesCollection;\r
840 });\r
841 c$=Clazz.p0p();\r
842 Clazz.pu$h(self.c$);\r
843 c$=Clazz.decorateAsClass(function(){\r
844 this.subMap=null;\r
845 Clazz.instantialize(this,arguments);\r
846 },java.util.TreeMap,"SubMapEntrySet",java.util.AbstractSet,java.util.Set);\r
847 Clazz.makeConstructor(c$,\r
848 function(a){\r
849 Clazz.superConstructor(this,java.util.TreeMap.SubMapEntrySet,[]);\r
850 this.subMap=a;\r
851 },"java.util.TreeMap.SubMap");\r
852 Clazz.overrideMethod(c$,"isEmpty",\r
853 function(){\r
854 return this.subMap.isEmpty();\r
855 });\r
856 Clazz.overrideMethod(c$,"iterator",\r
857 function(){\r
858 var a=this.subMap.firstEntry();\r
859 if(this.subMap.hasEnd){\r
860 var b=this.subMap.comparator();\r
861 if(b==null){\r
862 return new java.util.TreeMap.ComparableBoundedEntryIterator(this.subMap.backingMap,a,java.util.TreeMap.toComparable(this.subMap.endKey));\r
863 }return new java.util.TreeMap.ComparatorBoundedEntryIterator(this.subMap.backingMap,a,this.subMap.endKey);\r
864 }return new java.util.TreeMap.UnboundedEntryIterator(this.subMap.backingMap,a);\r
865 });\r
866 Clazz.overrideMethod(c$,"size",\r
867 function(){\r
868 var a=0;\r
869 var b=this.iterator();\r
870 while(b.hasNext()){\r
871 a++;\r
872 b.next();\r
873 }\r
874 return a;\r
875 });\r
876 Clazz.overrideMethod(c$,"contains",\r
877 function(a){\r
878 if(Clazz.instanceOf(a,java.util.Map.Entry)){\r
879 var b=a;\r
880 var c=b.getKey();\r
881 if(this.subMap.isInRange(c)){\r
882 var d=this.subMap.get(c);\r
883 var e=b.getValue();\r
884 return d==null?e==null:d.equals(e);\r
885 }}return false;\r
886 },"~O");\r
887 c$=Clazz.p0p();\r
888 Clazz.pu$h(self.c$);\r
889 c$=Clazz.decorateAsClass(function(){\r
890 this.subMap=null;\r
891 Clazz.instantialize(this,arguments);\r
892 },java.util.TreeMap,"SubMapKeySet",java.util.AbstractSet,java.util.Set);\r
893 Clazz.makeConstructor(c$,\r
894 function(a){\r
895 Clazz.superConstructor(this,java.util.TreeMap.SubMapKeySet,[]);\r
896 this.subMap=a;\r
897 },"java.util.TreeMap.SubMap");\r
898 Clazz.overrideMethod(c$,"contains",\r
899 function(a){\r
900 return this.subMap.containsKey(a);\r
901 },"~O");\r
902 Clazz.overrideMethod(c$,"isEmpty",\r
903 function(){\r
904 return this.subMap.isEmpty();\r
905 });\r
906 Clazz.overrideMethod(c$,"size",\r
907 function(){\r
908 var a=0;\r
909 var b=this.iterator();\r
910 while(b.hasNext()){\r
911 a++;\r
912 b.next();\r
913 }\r
914 return a;\r
915 });\r
916 Clazz.overrideMethod(c$,"iterator",\r
917 function(){\r
918 var a=this.subMap.firstEntry();\r
919 if(this.subMap.hasEnd){\r
920 var b=this.subMap.comparator();\r
921 if(b==null){\r
922 return new java.util.TreeMap.ComparableBoundedKeyIterator(this.subMap.backingMap,a,java.util.TreeMap.toComparable(this.subMap.endKey));\r
923 }return new java.util.TreeMap.ComparatorBoundedKeyIterator(this.subMap.backingMap,a,this.subMap.endKey);\r
924 }return new java.util.TreeMap.UnboundedKeyIterator(this.subMap.backingMap,a);\r
925 });\r
926 c$=Clazz.p0p();\r
927 Clazz.pu$h(self.c$);\r
928 c$=Clazz.decorateAsClass(function(){\r
929 this.subMap=null;\r
930 Clazz.instantialize(this,arguments);\r
931 },java.util.TreeMap,"SubMapValuesCollection",java.util.AbstractCollection);\r
932 Clazz.makeConstructor(c$,\r
933 function(a){\r
934 Clazz.superConstructor(this,java.util.TreeMap.SubMapValuesCollection,[]);\r
935 this.subMap=a;\r
936 },"java.util.TreeMap.SubMap");\r
937 Clazz.overrideMethod(c$,"isEmpty",\r
938 function(){\r
939 return this.subMap.isEmpty();\r
940 });\r
941 Clazz.overrideMethod(c$,"iterator",\r
942 function(){\r
943 var a=this.subMap.firstEntry();\r
944 if(this.subMap.hasEnd){\r
945 var b=this.subMap.comparator();\r
946 if(b==null){\r
947 return new java.util.TreeMap.ComparableBoundedValueIterator(this.subMap.backingMap,a,java.util.TreeMap.toComparable(this.subMap.endKey));\r
948 }return new java.util.TreeMap.ComparatorBoundedValueIterator(this.subMap.backingMap,a,this.subMap.endKey);\r
949 }return new java.util.TreeMap.UnboundedValueIterator(this.subMap.backingMap,a);\r
950 });\r
951 Clazz.overrideMethod(c$,"size",\r
952 function(){\r
953 var a=0;\r
954 for(var b=this.iterator();b.hasNext();){\r
955 b.next();\r
956 a++;\r
957 }\r
958 return a;\r
959 });\r
960 c$=Clazz.p0p();\r
961 });\r