cb024491125e962c866772eac43c8d16dbb22a20
[jalviewjs.git] / site / j2s / java / util / rep1198880663706829411.tmp
1 Clazz.load(["java.lang.ref.WeakReference","java.util.AbstractMap","$.Iterator","$.Map"],"java.util.WeakHashMap",["java.lang.IllegalArgumentException","$.IllegalStateException","java.lang.ref.ReferenceQueue","java.util.AbstractCollection","$.AbstractSet","$.Arrays","$.ConcurrentModificationException","$.NoSuchElementException"],function(){
2 c$=Clazz.decorateAsClass(function(){
3 this.referenceQueue=null;
4 this.elementCount=0;
5 this.elementData=null;
6 this.loadFactor=0;
7 this.threshold=0;
8 this.modCount=0;
9 if(!Clazz.isClassDefined("java.util.WeakHashMap.HashIterator")){
10 java.util.WeakHashMap.$WeakHashMap$HashIterator$();
11 }
12 Clazz.instantialize(this,arguments);
13 },java.util,"WeakHashMap",java.util.AbstractMap,java.util.Map);
14 c$.newEntryArray=Clazz.defineMethod(c$,"newEntryArray",
15 ($fz=function(size){
16 return new Array(size);
17 },$fz.isPrivate=true,$fz),"~N");
18 Clazz.makeConstructor(c$,
19 function(){
20 this.construct(16);
21 });
22 Clazz.makeConstructor(c$,
23 function(capacity){
24 Clazz.superConstructor(this,java.util.WeakHashMap,[]);
25 if(capacity>=0){
26 this.elementCount=0;
27 this.elementData=java.util.WeakHashMap.newEntryArray(capacity==0?1:capacity);
28 this.loadFactor=7500;
29 this.computeMaxSize();
30 this.referenceQueue=new java.lang.ref.ReferenceQueue();
31 }else{
32 throw new IllegalArgumentException();
33 }},"~N");
34 Clazz.makeConstructor(c$,
35 function(capacity,loadFactor){
36 Clazz.superConstructor(this,java.util.WeakHashMap,[]);
37 if(capacity>=0&&loadFactor>0){
38 this.elementCount=0;
39 this.elementData=java.util.WeakHashMap.newEntryArray(capacity==0?1:capacity);
40 this.loadFactor=Math.round((loadFactor*10000));
41 this.computeMaxSize();
42 this.referenceQueue=new java.lang.ref.ReferenceQueue();
43 }else{
44 throw new IllegalArgumentException();
45 }},"~N,~N");
46 Clazz.makeConstructor(c$,
47 function(map){
48 this.construct(map.size()<6?11:map.size()*2);
49 this.putAllImpl(map);
50 },"java.util.Map");
51 Clazz.overrideMethod(c$,"clear",
52 function(){
53 if(this.elementCount>0){
54 this.elementCount=0;
55 java.util.Arrays.fill(this.elementData,null);
56 this.modCount++;
57 while(this.referenceQueue.poll()!=null){
58 }
59 }});
60 Clazz.defineMethod(c$,"computeMaxSize",
61 ($fz=function(){
62 this.threshold=(Math.floor(this.elementData.length*this.loadFactor/10000));
63 },$fz.isPrivate=true,$fz));
64 Clazz.overrideMethod(c$,"containsKey",
65 function(key){
66 return this.getEntry(key)!=null;
67 },"~O");
68 Clazz.overrideMethod(c$,"entrySet",
69 function(){
70 this.poll();
71 return((Clazz.isClassDefined("java.util.WeakHashMap$1")?0:java.util.WeakHashMap.$WeakHashMap$1$()),Clazz.innerTypeInstance(java.util.WeakHashMap$1,this,null));
72 });
73 Clazz.overrideMethod(c$,"keySet",
74 function(){
75 this.poll();
76 if(this.$keySet==null){
77 this.$keySet=((Clazz.isClassDefined("java.util.WeakHashMap$2")?0:java.util.WeakHashMap.$WeakHashMap$2$()),Clazz.innerTypeInstance(java.util.WeakHashMap$2,this,null));
78 }return this.$keySet;
79 });
80 Clazz.overrideMethod(c$,"values",
81 function(){
82 this.poll();
83 if(this.valuesCollection==null){
84 this.valuesCollection=((Clazz.isClassDefined("java.util.WeakHashMap$3")?0:java.util.WeakHashMap.$WeakHashMap$3$()),Clazz.innerTypeInstance(java.util.WeakHashMap$3,this,null));
85 }return this.valuesCollection;
86 });
87 Clazz.overrideMethod(c$,"get",
88 function(key){
89 this.poll();
90 if(key!=null){
91 var index=(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
92 var entry=this.elementData[index];
93 while(entry!=null){
94 if(key.equals(entry.get())){
95 return entry.value;
96 }entry=entry.$next;
97 }
98 return null;
99 }var entry=this.elementData[0];
100 while(entry!=null){
101 if(entry.isNull){
102 return entry.value;
103 }entry=entry.$next;
104 }
105 return null;
106 },"~O");
107 Clazz.defineMethod(c$,"getEntry",
108 function(key){
109 this.poll();
110 if(key!=null){
111 var index=(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
112 var entry=this.elementData[index];
113 while(entry!=null){
114 if(key.equals(entry.get())){
115 return entry;
116 }entry=entry.$next;
117 }
118 return null;
119 }var entry=this.elementData[0];
120 while(entry!=null){
121 if(entry.isNull){
122 return entry;
123 }entry=entry.$next;
124 }
125 return null;
126 },"~O");
127 Clazz.overrideMethod(c$,"containsValue",
128 function(value){
129 this.poll();
130 if(value!=null){
131 for(var i=this.elementData.length;--i>=0;){
132 var entry=this.elementData[i];
133 while(entry!=null){
134 var key=entry.get();
135 if((key!=null||entry.isNull)&&value.equals(entry.value)){
136 return true;
137 }entry=entry.$next;
138 }
139 }
140 }else{
141 for(var i=this.elementData.length;--i>=0;){
142 var entry=this.elementData[i];
143 while(entry!=null){
144 var key=entry.get();
145 if((key!=null||entry.isNull)&&entry.value==null){
146 return true;
147 }entry=entry.$next;
148 }
149 }
150 }return false;
151 },"~O");
152 Clazz.overrideMethod(c$,"isEmpty",
153 function(){
154 return this.size()==0;
155 });
156 Clazz.defineMethod(c$,"poll",
157 function(){
158 var toRemove;
159 while((toRemove=this.referenceQueue.poll())!=null){
160 this.removeEntry(toRemove);
161 }
162 });
163 Clazz.defineMethod(c$,"removeEntry",
164 function(toRemove){
165 var entry;
166 var last=null;
167 var index=(toRemove.hash&0x7FFFFFFF)%this.elementData.length;
168 entry=this.elementData[index];
169 while(entry!=null){
170 if(toRemove===entry){
171 this.modCount++;
172 if(last==null){
173 this.elementData[index]=entry.$next;
174 }else{
175 last.$next=entry.$next;
176 }this.elementCount--;
177 break;
178 }last=entry;
179 entry=entry.$next;
180 }
181 },"java.util.WeakHashMap.Entry");
182 Clazz.overrideMethod(c$,"put",
183 function(key,value){
184 this.poll();
185 var index=0;
186 var entry;
187 if(key!=null){
188 index=(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
189 entry=this.elementData[index];
190 while(entry!=null&&!key.equals(entry.get())){
191 entry=entry.$next;
192 }
193 }else{
194 entry=this.elementData[0];
195 while(entry!=null&&!entry.isNull){
196 entry=entry.$next;
197 }
198 }if(entry==null){
199 this.modCount++;
200 if(++this.elementCount>this.threshold){
201 this.rehash();
202 index=key==null?0:(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
203 }entry=new java.util.WeakHashMap.Entry(key,value,this.referenceQueue);
204 entry.$next=this.elementData[index];
205 this.elementData[index]=entry;
206 return null;
207 }var result=entry.value;
208 entry.value=value;
209 return result;
210 },"~O,~O");
211 Clazz.defineMethod(c$,"rehash",
212 ($fz=function(){
213 var length=this.elementData.length<<1;
214 if(length==0){
215 length=1;
216 }var newData=java.util.WeakHashMap.newEntryArray(length);
217 for(var i=0;i<this.elementData.length;i++){
218 var entry=this.elementData[i];
219 while(entry!=null){
220 var index=entry.isNull?0:(entry.hash&0x7FFFFFFF)%length;
221 var next=entry.$next;
222 entry.$next=newData[index];
223 newData[index]=entry;
224 entry=next;
225 }
226 }
227 this.elementData=newData;
228 this.computeMaxSize();
229 },$fz.isPrivate=true,$fz));
230 Clazz.overrideMethod(c$,"putAll",
231 function(map){
232 this.putAllImpl(map);
233 },"java.util.Map");
234 Clazz.overrideMethod(c$,"remove",
235 function(key){
236 this.poll();
237 var index=0;
238 var entry;
239 var last=null;
240 if(key!=null){
241 index=(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
242 entry=this.elementData[index];
243 while(entry!=null&&!key.equals(entry.get())){
244 last=entry;
245 entry=entry.$next;
246 }
247 }else{
248 entry=this.elementData[0];
249 while(entry!=null&&!entry.isNull){
250 last=entry;
251 entry=entry.$next;
252 }
253 }if(entry!=null){
254 this.modCount++;
255 if(last==null){
256 this.elementData[index]=entry.$next;
257 }else{
258 last.$next=entry.$next;
259 }this.elementCount--;
260 return entry.value;
261 }return null;
262 },"~O");
263 Clazz.overrideMethod(c$,"size",
264 function(){
265 this.poll();
266 return this.elementCount;
267 });
268 Clazz.defineMethod(c$,"putAllImpl",
269 ($fz=function(map){
270 if(map.entrySet()!=null){
271 Clazz.superCall(this,java.util.WeakHashMap,"putAll",[map]);
272 }},$fz.isPrivate=true,$fz),"java.util.Map");
273 c$.$WeakHashMap$HashIterator$=function(){
274 Clazz.pu$h(self.c$);
275 c$=Clazz.decorateAsClass(function(){
276 Clazz.prepareCallback(this,arguments);
277 this.position=0;
278 this.expectedModCount=0;
279 this.currentEntry=null;
280 this.nextEntry=null;
281 this.nextKey=null;
282 this.type=null;
283 Clazz.instantialize(this,arguments);
284 },java.util.WeakHashMap,"HashIterator",null,java.util.Iterator);
285 Clazz.makeConstructor(c$,
286 function(a){
287 this.type=a;
288 this.expectedModCount=this.b$["java.util.WeakHashMap"].modCount;
289 },"java.util.WeakHashMap.Entry.Type");
290 Clazz.overrideMethod(c$,"hasNext",
291 function(){
292 if(this.nextEntry!=null){
293 return true;
294 }while(true){
295 if(this.nextEntry==null){
296 while(this.position<this.b$["java.util.WeakHashMap"].elementData.length){
297 if((this.nextEntry=this.b$["java.util.WeakHashMap"].elementData[this.position++])!=null){
298 break;
299 }}
300 if(this.nextEntry==null){
301 return false;
302 }}this.nextKey=this.nextEntry.get();
303 if(this.nextKey!=null||this.nextEntry.isNull){
304 return true;
305 }this.nextEntry=this.nextEntry.$next;
306 }
307 });
308 Clazz.overrideMethod(c$,"next",
309 function(){
310 if(this.expectedModCount==this.b$["java.util.WeakHashMap"].modCount){
311 if(this.hasNext()){
312 this.currentEntry=this.nextEntry;
313 this.nextEntry=this.currentEntry.$next;
314 var a=this.type.get(this.currentEntry);
315 this.nextKey=null;
316 return a;
317 }throw new java.util.NoSuchElementException();
318 }throw new java.util.ConcurrentModificationException();
319 });
320 Clazz.overrideMethod(c$,"remove",
321 function(){
322 if(this.expectedModCount==this.b$["java.util.WeakHashMap"].modCount){
323 if(this.currentEntry!=null){
324 this.b$["java.util.WeakHashMap"].removeEntry(this.currentEntry);
325 this.currentEntry=null;
326 this.expectedModCount++;
327 }else{
328 throw new IllegalStateException();
329 }}else{
330 throw new java.util.ConcurrentModificationException();
331 }});
332 c$=Clazz.p0p();
333 };
334 c$.$WeakHashMap$1$=function(){
335 Clazz.pu$h(self.c$);
336 c$=Clazz.declareAnonymous(java.util,"WeakHashMap$1",java.util.AbstractSet);
337 Clazz.overrideMethod(c$,"size",
338 function(){
339 return this.b$["java.util.WeakHashMap"].size();
340 });
341 Clazz.overrideMethod(c$,"clear",
342 function(){
343 this.b$["java.util.WeakHashMap"].clear();
344 });
345 Clazz.overrideMethod(c$,"remove",
346 function(object){
347 if(this.contains(object)){
348 this.b$["java.util.WeakHashMap"].remove((object).getKey());
349 return true;
350 }return false;
351 },"~O");
352 Clazz.overrideMethod(c$,"contains",
353 function(object){
354 if(Clazz.instanceOf(object,java.util.Map.Entry)){
355 var entry=this.b$["java.util.WeakHashMap"].getEntry((object).getKey());
356 if(entry!=null){
357 var key=entry.get();
358 if(key!=null||entry.isNull){
359 return object.equals(entry);
360 }}}return false;
361 },"~O");
362 Clazz.overrideMethod(c$,"iterator",
363 function(){
364 return Clazz.innerTypeInstance(java.util.WeakHashMap.HashIterator,this,null,((Clazz.isClassDefined("java.util.WeakHashMap$1$1")?0:java.util.WeakHashMap.$WeakHashMap$1$1$()),Clazz.innerTypeInstance(java.util.WeakHashMap$1$1,this,null)));
365 });
366 c$=Clazz.p0p();
367 };
368 c$.$WeakHashMap$1$1$=function(){
369 Clazz.pu$h(self.c$);
370 c$=Clazz.declareAnonymous(java.util,"WeakHashMap$1$1",null,java.util.WeakHashMap.Entry.Type);
371 Clazz.overrideMethod(c$,"get",
372 function(entry){
373 return entry;
374 },"java.util.Map.Entry");
375 c$=Clazz.p0p();
376 };
377 c$.$WeakHashMap$2$=function(){
378 Clazz.pu$h(self.c$);
379 c$=Clazz.declareAnonymous(java.util,"WeakHashMap$2",java.util.AbstractSet);
380 Clazz.overrideMethod(c$,"contains",
381 function(object){
382 return this.b$["java.util.WeakHashMap"].containsKey(object);
383 },"~O");
384 Clazz.overrideMethod(c$,"size",
385 function(){
386 return this.b$["java.util.WeakHashMap"].size();
387 });
388 Clazz.overrideMethod(c$,"clear",
389 function(){
390 this.b$["java.util.WeakHashMap"].clear();
391 });
392 Clazz.overrideMethod(c$,"remove",
393 function(key){
394 if(this.b$["java.util.WeakHashMap"].containsKey(key)){
395 this.b$["java.util.WeakHashMap"].remove(key);
396 return true;
397 }return false;
398 },"~O");
399 Clazz.overrideMethod(c$,"iterator",
400 function(){
401 return Clazz.innerTypeInstance(java.util.WeakHashMap.HashIterator,this,null,((Clazz.isClassDefined("java.util.WeakHashMap$2$1")?0:java.util.WeakHashMap.$WeakHashMap$2$1$()),Clazz.innerTypeInstance(java.util.WeakHashMap$2$1,this,null)));
402 });
403 c$=Clazz.p0p();
404 };
405 c$.$WeakHashMap$2$1$=function(){
406 Clazz.pu$h(self.c$);
407 c$=Clazz.declareAnonymous(java.util,"WeakHashMap$2$1",null,java.util.WeakHashMap.Entry.Type);
408 Clazz.overrideMethod(c$,"get",
409 function(entry){
410 return entry.getKey();
411 },"java.util.Map.Entry");
412 c$=Clazz.p0p();
413 };
414 c$.$WeakHashMap$3$=function(){
415 Clazz.pu$h(self.c$);
416 c$=Clazz.declareAnonymous(java.util,"WeakHashMap$3",java.util.AbstractCollection);
417 Clazz.overrideMethod(c$,"size",
418 function(){
419 return this.b$["java.util.WeakHashMap"].size();
420 });
421 Clazz.overrideMethod(c$,"clear",
422 function(){
423 this.b$["java.util.WeakHashMap"].clear();
424 });
425 Clazz.overrideMethod(c$,"contains",
426 function(object){
427 return this.b$["java.util.WeakHashMap"].containsValue(object);
428 },"~O");
429 Clazz.overrideMethod(c$,"iterator",
430 function(){
431 return Clazz.innerTypeInstance(java.util.WeakHashMap.HashIterator,this,null,((Clazz.isClassDefined("java.util.WeakHashMap$3$1")?0:java.util.WeakHashMap.$WeakHashMap$3$1$()),Clazz.innerTypeInstance(java.util.WeakHashMap$3$1,this,null)));
432 });
433 c$=Clazz.p0p();
434 };
435 c$.$WeakHashMap$3$1$=function(){
436 Clazz.pu$h(self.c$);
437 c$=Clazz.declareAnonymous(java.util,"WeakHashMap$3$1",null,java.util.WeakHashMap.Entry.Type);
438 Clazz.overrideMethod(c$,"get",
439 function(entry){
440 return entry.getValue();
441 },"java.util.Map.Entry");
442 c$=Clazz.p0p();
443 };
444 Clazz.pu$h(self.c$);
445 c$=Clazz.decorateAsClass(function(){
446 this.hash=0;
447 this.isNull=false;
448 this.value=null;
449 this.$next=null;
450 Clazz.instantialize(this,arguments);
451 },java.util.WeakHashMap,"Entry",java.lang.ref.WeakReference,java.util.Map.Entry);
452 Clazz.makeConstructor(c$,
453 function(a,b,c){
454 Clazz.superConstructor(this,java.util.WeakHashMap.Entry,[a,c]);
455 this.isNull=a==null;
456 this.hash=this.isNull?0:a.hashCode();
457 this.value=b;
458 },"~O,~O,java.lang.ref.ReferenceQueue");
459 Clazz.overrideMethod(c$,"getKey",
460 function(){
461 return Clazz.superCall(this,java.util.WeakHashMap.Entry,"get",[]);
462 });
463 Clazz.overrideMethod(c$,"getValue",
464 function(){
465 return this.value;
466 });
467 Clazz.overrideMethod(c$,"setValue",
468 function(a){
469 var b=this.value;
470 this.value=a;
471 return b;
472 },"~O");
473 Clazz.overrideMethod(c$,"equals",
474 function(a){
475 if(!(Clazz.instanceOf(a,java.util.Map.Entry))){
476 return false;
477 }var b=a;
478 var c=Clazz.superCall(this,java.util.WeakHashMap.Entry,"get",[]);
479 return(c==null?c===b.getKey():c.equals(b.getKey()))&&(this.value==null?this.value===b.getValue():this.value.equals(b.getValue()));
480 },"~O");
481 Clazz.overrideMethod(c$,"hashCode",
482 function(){
483 return this.hash+(this.value==null?0:this.value.hashCode());
484 });
485 Clazz.overrideMethod(c$,"toString",
486 function(){
487 return Clazz.superCall(this,java.util.WeakHashMap.Entry,"get",[])+"="+this.value;
488 });
489 Clazz.declareInterface(java.util.WeakHashMap.Entry,"Type");
490 c$=Clazz.p0p();
491 Clazz.defineStatics(c$,
492 "DEFAULT_SIZE",16);
493 });