1 Clazz.load(["java.util.HashMap"],"java.util.LinkedHashMap",["java.lang.IllegalStateException","java.util.AbstractCollection","$.AbstractSet","java.util.MapEntry.Type","java.util.NoSuchElementException"],function(){
2 c$=Clazz.decorateAsClass(function(){
3 this.accessOrder=false;
6 Clazz.instantialize(this,arguments);
7 },java.util,"LinkedHashMap",java.util.HashMap);
8 Clazz.makeConstructor(c$,
10 Clazz.superConstructor(this,java.util.LinkedHashMap);
11 this.accessOrder=false;
14 Clazz.makeConstructor(c$,
16 Clazz.superConstructor(this,java.util.LinkedHashMap,[s]);
17 this.accessOrder=false;
20 Clazz.makeConstructor(c$,
22 Clazz.superConstructor(this,java.util.LinkedHashMap,[s,lf]);
23 this.accessOrder=false;
27 Clazz.makeConstructor(c$,
29 Clazz.superConstructor(this,java.util.LinkedHashMap,[s,lf]);
30 this.accessOrder=order;
34 Clazz.makeConstructor(c$,
36 Clazz.superConstructor(this,java.util.LinkedHashMap,[]);
37 this.accessOrder=false;
42 Clazz.overrideMethod(c$,"newElementArray",
46 Clazz.overrideMethod(c$,"get",
48 var m=this.getEntry(key);
51 }if(this.accessOrder&&this.tail!==m){
52 var p=m.chainBackward;
60 m.chainBackward=this.tail;
61 this.tail.chainForward=m;
65 Clazz.overrideMethod(c$,"createEntry",
66 function(key,index,value){
67 var m=new java.util.LinkedHashMap.LinkedHashMapEntry(key,value);
68 m.next=this.elementData[index];
69 this.elementData[index]=m;
73 Clazz.overrideMethod(c$,"put",
75 var index=this.getModuloHash(key);
76 var m=this.findEntry(key,index);
79 if(++this.elementCount>this.threshold){
81 index=key==null?0:(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
82 }m=this.createEntry(key,index,null);
87 if(this.removeEldestEntry(this.head)){
88 this.remove(this.head.key);
91 Clazz.defineMethod(c$,"linkEntry",
96 this.head=this.tail=m;
98 }var p=m.chainBackward;
102 if(this.accessOrder){
104 n.chainBackward=null;
105 m.chainBackward=this.tail;
107 this.tail.chainForward=m;
110 m.chainBackward=this.tail;
112 this.tail.chainForward=m;
117 }if(this.accessOrder){
121 m.chainBackward=this.tail;
122 this.tail.chainForward=m;
124 }},"java.util.LinkedHashMap.LinkedHashMapEntry");
125 Clazz.overrideMethod(c$,"entrySet",
127 return new java.util.LinkedHashMap.LinkedHashMapEntrySet(this);
129 Clazz.overrideMethod(c$,"keySet",
131 if(this.$keySet==null){
132 this.$keySet=((Clazz.isClassDefined("java.util.LinkedHashMap$1")?0:java.util.LinkedHashMap.$LinkedHashMap$1$()),Clazz.innerTypeInstance(java.util.LinkedHashMap$1,this,null));
133 }return this.$keySet;
135 Clazz.overrideMethod(c$,"values",
137 if(this.valuesCollection==null){
138 this.valuesCollection=((Clazz.isClassDefined("java.util.LinkedHashMap$2")?0:java.util.LinkedHashMap.$LinkedHashMap$2$()),Clazz.innerTypeInstance(java.util.LinkedHashMap$2,this,null));
139 }return this.valuesCollection;
141 Clazz.overrideMethod(c$,"remove",
143 var m=this.removeEntry(key);
146 }var p=m.chainBackward;
147 var n=m.chainForward;
158 Clazz.defineMethod(c$,"removeEldestEntry",
161 },"java.util.Map.Entry");
162 Clazz.defineMethod(c$,"clear",
164 Clazz.superCall(this,java.util.LinkedHashMap,"clear",[]);
165 this.head=this.tail=null;
167 Clazz.defineMethod(c$,"clone",
169 var map=Clazz.superCall(this,java.util.LinkedHashMap,"clone",[]);
171 for(var entry,$entry=this.entrySet().iterator();$entry.hasNext()&&((entry=$entry.next())||true);){
172 map.put(entry.getKey(),entry.getValue());
176 c$.$LinkedHashMap$1$=function(){
178 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$1",java.util.AbstractSet);
179 Clazz.overrideMethod(c$,"contains",
181 return this.b$["java.util.LinkedHashMap"].containsKey(object);
183 Clazz.overrideMethod(c$,"size",
185 return this.b$["java.util.LinkedHashMap"].size();
187 Clazz.overrideMethod(c$,"clear",
189 this.b$["java.util.LinkedHashMap"].clear();
191 Clazz.overrideMethod(c$,"remove",
193 if(this.b$["java.util.LinkedHashMap"].containsKey(key)){
194 this.b$["java.util.LinkedHashMap"].remove(key);
198 Clazz.overrideMethod(c$,"iterator",
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"]);
204 c$.$LinkedHashMap$1$1$=function(){
206 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$1$1",null,java.util.MapEntry.Type);
207 Clazz.overrideMethod(c$,"get",
210 },"java.util.MapEntry");
213 c$.$LinkedHashMap$2$=function(){
215 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$2",java.util.AbstractCollection);
216 Clazz.overrideMethod(c$,"contains",
218 return this.b$["java.util.LinkedHashMap"].containsValue(object);
220 Clazz.overrideMethod(c$,"size",
222 return this.b$["java.util.LinkedHashMap"].size();
224 Clazz.overrideMethod(c$,"clear",
226 this.b$["java.util.LinkedHashMap"].clear();
228 Clazz.overrideMethod(c$,"iterator",
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"]);
234 c$.$LinkedHashMap$2$1$=function(){
236 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$2$1",null,java.util.MapEntry.Type);
237 Clazz.overrideMethod(c$,"get",
240 },"java.util.MapEntry");
244 c$=Clazz.declareType(java.util.LinkedHashMap,"LinkedHashIterator",java.util.HashMap.HashMapIterator);
245 Clazz.makeConstructor(c$,
247 Clazz.superConstructor(this,java.util.LinkedHashMap.LinkedHashIterator,[a,b]);
249 },"java.util.MapEntry.Type,java.util.LinkedHashMap");
250 Clazz.overrideMethod(c$,"hasNext",
252 return(this.entry!=null);
254 Clazz.overrideMethod(c$,"next",
256 this.checkConcurrentMod();
258 throw new java.util.NoSuchElementException();
259 }var a=this.type.get(this.entry);
260 this.lastEntry=this.entry;
261 this.entry=(this.entry).chainForward;
265 Clazz.overrideMethod(c$,"remove",
267 this.checkConcurrentMod();
269 throw new IllegalStateException();
270 }this.canRemove=false;
271 this.associatedMap.modCount++;
272 var a=this.associatedMap.getModuloHash(this.lastEntry.key);
273 var b=this.associatedMap.elementData[a];
274 if(b===this.lastEntry){
275 this.associatedMap.elementData[a]=this.lastEntry.next;
278 if(b.next===this.lastEntry){
282 b.next=this.lastEntry.next;
283 }var c=this.lastEntry;
284 var d=c.chainBackward;
285 var e=c.chainForward;
286 var f=this.associatedMap;
296 e.chainBackward=null;
299 }}this.associatedMap.elementCount--;
300 this.expectedModCount++;
304 c$=Clazz.declareType(java.util.LinkedHashMap,"LinkedHashMapEntrySet",java.util.HashMap.HashMapEntrySet);
305 Clazz.overrideMethod(c$,"iterator",
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());
309 c$.$LinkedHashMap$LinkedHashMapEntrySet$1$=function(){
311 c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$LinkedHashMapEntrySet$1",null,java.util.MapEntry.Type);
312 Clazz.overrideMethod(c$,"get",
315 },"java.util.MapEntry");
320 c$=Clazz.decorateAsClass(function(){
321 this.chainForward=null;
322 this.chainBackward=null;
323 Clazz.instantialize(this,arguments);
324 },java.util.LinkedHashMap,"LinkedHashMapEntry",java.util.HashMap.Entry);
325 Clazz.makeConstructor(c$,
327 Clazz.superConstructor(this,java.util.LinkedHashMap.LinkedHashMapEntry,[a,b]);
328 this.chainForward=null;
329 this.chainBackward=null;
331 Clazz.defineMethod(c$,"clone",
333 var a=Clazz.superCall(this,java.util.LinkedHashMap.LinkedHashMapEntry,"clone",[]);
334 a.chainBackward=this.chainBackward;
335 a.chainForward=this.chainForward;