JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / java / util / LinkedHashMap.js
1 Clazz.load(["java.util.HashMap"],"java.util.LinkedHashMap",["java.lang.IllegalStateException","java.util.AbstractCollection","$.AbstractSet","java.util.MapEntry.Type","java.util.NoSuchElementException"],function(){\r
2 c$=Clazz.decorateAsClass(function(){\r
3 this.accessOrder=false;\r
4 this.head=null;\r
5 this.tail=null;\r
6 Clazz.instantialize(this,arguments);\r
7 },java.util,"LinkedHashMap",java.util.HashMap);\r
8 Clazz.makeConstructor(c$,\r
9 function(){\r
10 Clazz.superConstructor(this,java.util.LinkedHashMap);\r
11 this.accessOrder=false;\r
12 this.head=null;\r
13 });\r
14 Clazz.makeConstructor(c$,\r
15 function(s){\r
16 Clazz.superConstructor(this,java.util.LinkedHashMap,[s]);\r
17 this.accessOrder=false;\r
18 this.head=null;\r
19 },"~N");\r
20 Clazz.makeConstructor(c$,\r
21 function(s,lf){\r
22 Clazz.superConstructor(this,java.util.LinkedHashMap,[s,lf]);\r
23 this.accessOrder=false;\r
24 this.head=null;\r
25 this.tail=null;\r
26 },"~N,~N");\r
27 Clazz.makeConstructor(c$,\r
28 function(s,lf,order){\r
29 Clazz.superConstructor(this,java.util.LinkedHashMap,[s,lf]);\r
30 this.accessOrder=order;\r
31 this.head=null;\r
32 this.tail=null;\r
33 },"~N,~N,~B");\r
34 Clazz.makeConstructor(c$,\r
35 function(m){\r
36 Clazz.superConstructor(this,java.util.LinkedHashMap,[]);\r
37 this.accessOrder=false;\r
38 this.head=null;\r
39 this.tail=null;\r
40 this.putAll(m);\r
41 },"java.util.Map");\r
42 Clazz.overrideMethod(c$,"newElementArray",\r
43 function(s){\r
44 return new Array(s);\r
45 },"~N");\r
46 Clazz.overrideMethod(c$,"get",\r
47 function(key){\r
48 var m=this.getEntry(key);\r
49 if(m==null){\r
50 return null;\r
51 }if(this.accessOrder&&this.tail!==m){\r
52 var p=m.chainBackward;\r
53 var n=m.chainForward;\r
54 n.chainBackward=p;\r
55 if(p!=null){\r
56 p.chainForward=n;\r
57 }else{\r
58 this.head=n;\r
59 }m.chainForward=null;\r
60 m.chainBackward=this.tail;\r
61 this.tail.chainForward=m;\r
62 this.tail=m;\r
63 }return m.value;\r
64 },"~O");\r
65 Clazz.overrideMethod(c$,"createEntry",\r
66 function(key,index,value){\r
67 var m=new java.util.LinkedHashMap.LinkedHashMapEntry(key,value);\r
68 m.next=this.elementData[index];\r
69 this.elementData[index]=m;\r
70 this.linkEntry(m);\r
71 return m;\r
72 },"~O,~N,~O");\r
73 Clazz.overrideMethod(c$,"put",\r
74 function(key,value){\r
75 var index=this.getModuloHash(key);\r
76 var m=this.findEntry(key,index);\r
77 if(m==null){\r
78 this.modCount++;\r
79 if(++this.elementCount>this.threshold){\r
80 this.rehash();\r
81 index=key==null?0:(key.hashCode()&0x7FFFFFFF)%this.elementData.length;\r
82 }m=this.createEntry(key,index,null);\r
83 }else{\r
84 this.linkEntry(m);\r
85 }var result=m.value;\r
86 m.value=value;\r
87 if(this.removeEldestEntry(this.head)){\r
88 this.remove(this.head.key);\r
89 }return result;\r
90 },"~O,~O");\r
91 Clazz.defineMethod(c$,"linkEntry",\r
92 function(m){\r
93 if(this.tail===m){\r
94 return;\r
95 }if(this.head==null){\r
96 this.head=this.tail=m;\r
97 return;\r
98 }var p=m.chainBackward;\r
99 var n=m.chainForward;\r
100 if(p==null){\r
101 if(n!=null){\r
102 if(this.accessOrder){\r
103 this.head=n;\r
104 n.chainBackward=null;\r
105 m.chainBackward=this.tail;\r
106 m.chainForward=null;\r
107 this.tail.chainForward=m;\r
108 this.tail=m;\r
109 }}else{\r
110 m.chainBackward=this.tail;\r
111 m.chainForward=null;\r
112 this.tail.chainForward=m;\r
113 this.tail=m;\r
114 }return;\r
115 }if(n==null){\r
116 return;\r
117 }if(this.accessOrder){\r
118 p.chainForward=n;\r
119 n.chainBackward=p;\r
120 m.chainForward=null;\r
121 m.chainBackward=this.tail;\r
122 this.tail.chainForward=m;\r
123 this.tail=m;\r
124 }},"java.util.LinkedHashMap.LinkedHashMapEntry");\r
125 Clazz.overrideMethod(c$,"entrySet",\r
126 function(){\r
127 return new java.util.LinkedHashMap.LinkedHashMapEntrySet(this);\r
128 });\r
129 Clazz.overrideMethod(c$,"keySet",\r
130 function(){\r
131 if(this.$keySet==null){\r
132 this.$keySet=((Clazz.isClassDefined("java.util.LinkedHashMap$1")?0:java.util.LinkedHashMap.$LinkedHashMap$1$()),Clazz.innerTypeInstance(java.util.LinkedHashMap$1,this,null));\r
133 }return this.$keySet;\r
134 });\r
135 Clazz.overrideMethod(c$,"values",\r
136 function(){\r
137 if(this.valuesCollection==null){\r
138 this.valuesCollection=((Clazz.isClassDefined("java.util.LinkedHashMap$2")?0:java.util.LinkedHashMap.$LinkedHashMap$2$()),Clazz.innerTypeInstance(java.util.LinkedHashMap$2,this,null));\r
139 }return this.valuesCollection;\r
140 });\r
141 Clazz.overrideMethod(c$,"remove",\r
142 function(key){\r
143 var m=this.removeEntry(key);\r
144 if(m==null){\r
145 return null;\r
146 }var p=m.chainBackward;\r
147 var n=m.chainForward;\r
148 if(p!=null){\r
149 p.chainForward=n;\r
150 }else{\r
151 this.head=n;\r
152 }if(n!=null){\r
153 n.chainBackward=p;\r
154 }else{\r
155 this.tail=p;\r
156 }return m.value;\r
157 },"~O");\r
158 Clazz.defineMethod(c$,"removeEldestEntry",\r
159 function(eldest){\r
160 return false;\r
161 },"java.util.Map.Entry");\r
162 Clazz.defineMethod(c$,"clear",\r
163 function(){\r
164 Clazz.superCall(this,java.util.LinkedHashMap,"clear",[]);\r
165 this.head=this.tail=null;\r
166 });\r
167 Clazz.defineMethod(c$,"clone",\r
168 function(){\r
169 var map=Clazz.superCall(this,java.util.LinkedHashMap,"clone",[]);\r
170 map.clear();\r
171 for(var entry,$entry=this.entrySet().iterator();$entry.hasNext()&&((entry=$entry.next())||true);){\r
172 map.put(entry.getKey(),entry.getValue());\r
173 }\r
174 return map;\r
175 });\r
176 c$.$LinkedHashMap$1$=function(){\r
177 Clazz.pu$h(self.c$);\r
178 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$1",java.util.AbstractSet);\r
179 Clazz.overrideMethod(c$,"contains",\r
180 function(object){\r
181 return this.b$["java.util.LinkedHashMap"].containsKey(object);\r
182 },"~O");\r
183 Clazz.overrideMethod(c$,"size",\r
184 function(){\r
185 return this.b$["java.util.LinkedHashMap"].size();\r
186 });\r
187 Clazz.overrideMethod(c$,"clear",\r
188 function(){\r
189 this.b$["java.util.LinkedHashMap"].clear();\r
190 });\r
191 Clazz.overrideMethod(c$,"remove",\r
192 function(key){\r
193 if(this.b$["java.util.LinkedHashMap"].containsKey(key)){\r
194 this.b$["java.util.LinkedHashMap"].remove(key);\r
195 return true;\r
196 }return false;\r
197 },"~O");\r
198 Clazz.overrideMethod(c$,"iterator",\r
199 function(){\r
200 return new java.util.LinkedHashMap.LinkedHashIterator(((Clazz.isClassDefined("java.util.LinkedHashMap$1$1")?0:java.util.LinkedHashMap.$LinkedHashMap$1$1$()),Clazz.innerTypeInstance(java.util.LinkedHashMap$1$1,this,null)),this.b$["java.util.LinkedHashMap"]);\r
201 });\r
202 c$=Clazz.p0p();\r
203 };\r
204 c$.$LinkedHashMap$1$1$=function(){\r
205 Clazz.pu$h(self.c$);\r
206 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$1$1",null,java.util.MapEntry.Type);\r
207 Clazz.overrideMethod(c$,"get",\r
208 function(entry){\r
209 return entry.key;\r
210 },"java.util.MapEntry");\r
211 c$=Clazz.p0p();\r
212 };\r
213 c$.$LinkedHashMap$2$=function(){\r
214 Clazz.pu$h(self.c$);\r
215 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$2",java.util.AbstractCollection);\r
216 Clazz.overrideMethod(c$,"contains",\r
217 function(object){\r
218 return this.b$["java.util.LinkedHashMap"].containsValue(object);\r
219 },"~O");\r
220 Clazz.overrideMethod(c$,"size",\r
221 function(){\r
222 return this.b$["java.util.LinkedHashMap"].size();\r
223 });\r
224 Clazz.overrideMethod(c$,"clear",\r
225 function(){\r
226 this.b$["java.util.LinkedHashMap"].clear();\r
227 });\r
228 Clazz.overrideMethod(c$,"iterator",\r
229 function(){\r
230 return new java.util.LinkedHashMap.LinkedHashIterator(((Clazz.isClassDefined("java.util.LinkedHashMap$2$1")?0:java.util.LinkedHashMap.$LinkedHashMap$2$1$()),Clazz.innerTypeInstance(java.util.LinkedHashMap$2$1,this,null)),this.b$["java.util.LinkedHashMap"]);\r
231 });\r
232 c$=Clazz.p0p();\r
233 };\r
234 c$.$LinkedHashMap$2$1$=function(){\r
235 Clazz.pu$h(self.c$);\r
236 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$2$1",null,java.util.MapEntry.Type);\r
237 Clazz.overrideMethod(c$,"get",\r
238 function(entry){\r
239 return entry.value;\r
240 },"java.util.MapEntry");\r
241 c$=Clazz.p0p();\r
242 };\r
243 Clazz.pu$h(self.c$);\r
244 c$=Clazz.declareType(java.util.LinkedHashMap,"LinkedHashIterator",java.util.HashMap.HashMapIterator);\r
245 Clazz.makeConstructor(c$,\r
246 function(a,b){\r
247 Clazz.superConstructor(this,java.util.LinkedHashMap.LinkedHashIterator,[a,b]);\r
248 this.entry=b.head;\r
249 },"java.util.MapEntry.Type,java.util.LinkedHashMap");\r
250 Clazz.overrideMethod(c$,"hasNext",\r
251 function(){\r
252 return(this.entry!=null);\r
253 });\r
254 Clazz.overrideMethod(c$,"next",\r
255 function(){\r
256 this.checkConcurrentMod();\r
257 if(!this.hasNext()){\r
258 throw new java.util.NoSuchElementException();\r
259 }var a=this.type.get(this.entry);\r
260 this.lastEntry=this.entry;\r
261 this.entry=(this.entry).chainForward;\r
262 this.canRemove=true;\r
263 return a;\r
264 });\r
265 Clazz.overrideMethod(c$,"remove",\r
266 function(){\r
267 this.checkConcurrentMod();\r
268 if(!this.canRemove){\r
269 throw new IllegalStateException();\r
270 }this.canRemove=false;\r
271 this.associatedMap.modCount++;\r
272 var a=this.associatedMap.getModuloHash(this.lastEntry.key);\r
273 var b=this.associatedMap.elementData[a];\r
274 if(b===this.lastEntry){\r
275 this.associatedMap.elementData[a]=this.lastEntry.next;\r
276 }else{\r
277 while(b.next!=null){\r
278 if(b.next===this.lastEntry){\r
279 break;\r
280 }b=b.next;\r
281 }\r
282 b.next=this.lastEntry.next;\r
283 }var c=this.lastEntry;\r
284 var d=c.chainBackward;\r
285 var e=c.chainForward;\r
286 var f=this.associatedMap;\r
287 if(d!=null){\r
288 d.chainForward=e;\r
289 if(e!=null){\r
290 e.chainBackward=d;\r
291 }else{\r
292 f.tail=d;\r
293 }}else{\r
294 f.head=e;\r
295 if(e!=null){\r
296 e.chainBackward=null;\r
297 }else{\r
298 f.tail=null;\r
299 }}this.associatedMap.elementCount--;\r
300 this.expectedModCount++;\r
301 });\r
302 c$=Clazz.p0p();\r
303 Clazz.pu$h(self.c$);\r
304 c$=Clazz.declareType(java.util.LinkedHashMap,"LinkedHashMapEntrySet",java.util.HashMap.HashMapEntrySet);\r
305 Clazz.overrideMethod(c$,"iterator",\r
306 function(){\r
307 return new java.util.LinkedHashMap.LinkedHashIterator(((Clazz.isClassDefined("java.util.LinkedHashMap$LinkedHashMapEntrySet$1")?0:java.util.LinkedHashMap.LinkedHashMapEntrySet.$LinkedHashMap$LinkedHashMapEntrySet$1$()),Clazz.innerTypeInstance(java.util.LinkedHashMap$LinkedHashMapEntrySet$1,this,null)),this.hashMap());\r
308 });\r
309 c$.$LinkedHashMap$LinkedHashMapEntrySet$1$=function(){\r
310 Clazz.pu$h(self.c$);\r
311 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$LinkedHashMapEntrySet$1",null,java.util.MapEntry.Type);\r
312 Clazz.overrideMethod(c$,"get",\r
313 function(a){\r
314 return a;\r
315 },"java.util.MapEntry");\r
316 c$=Clazz.p0p();\r
317 };\r
318 c$=Clazz.p0p();\r
319 Clazz.pu$h(self.c$);\r
320 c$=Clazz.decorateAsClass(function(){\r
321 this.chainForward=null;\r
322 this.chainBackward=null;\r
323 Clazz.instantialize(this,arguments);\r
324 },java.util.LinkedHashMap,"LinkedHashMapEntry",java.util.HashMap.Entry);\r
325 Clazz.makeConstructor(c$,\r
326 function(a,b){\r
327 Clazz.superConstructor(this,java.util.LinkedHashMap.LinkedHashMapEntry,[a,b]);\r
328 this.chainForward=null;\r
329 this.chainBackward=null;\r
330 },"~O,~O");\r
331 Clazz.defineMethod(c$,"clone",\r
332 function(){\r
333 var a=Clazz.superCall(this,java.util.LinkedHashMap.LinkedHashMapEntry,"clone",[]);\r
334 a.chainBackward=this.chainBackward;\r
335 a.chainForward=this.chainForward;\r
336 var b=a.next;\r
337 if(b!=null){\r
338 a.next=b.clone();\r
339 }return a;\r
340 });\r
341 c$=Clazz.p0p();\r
342 });\r