Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / java / util / HashMap.js
index 89b4877..b4de484 100644 (file)
-// BH minor efficiencies only\r
-\r
-Clazz.load(["java.util.AbstractMap","$.AbstractSet","$.Iterator","$.Map","$.MapEntry"],"java.util.HashMap",["java.lang.IllegalArgumentException","$.IllegalStateException","java.util.AbstractCollection","$.Arrays","$.ConcurrentModificationException","java.util.MapEntry.Type","java.util.NoSuchElementException"],function(){\r
-c$=Clazz.decorateAsClass(function(){\r
-this.elementCount=0;\r
-this.elementData=null;\r
-this.loadFactor=0;\r
-this.threshold=0;\r
-this.modCount=0;\r
-Clazz.instantialize(this,arguments);\r
-},java.util,"HashMap",java.util.AbstractMap,[java.util.Map,Cloneable,java.io.Serializable]);\r
-Clazz.defineMethod(c$,"newElementArray",\r
-function(s){\r
-return new Array(s);\r
-},"~N");\r
-//Clazz.makeConstructor(c$,\r
-//function(){\r
-//this.construct(16);\r
-//});\r
-//Clazz.makeConstructor(c$,\r
-//function(capacity){\r
-//Clazz.superConstructor(this,java.util.HashMap,[]);\r
-//if(capacity>=0){\r
-//this.elementCount=0;\r
-//this.elementData=this.newElementArray(capacity==0?1:capacity);\r
-//this.loadFactor=0.75;\r
-//this.computeMaxSize();\r
-//}else{\r
-//throw new IllegalArgumentException();\r
-//}},"~N");\r
-Clazz.makeConstructor(c$,\r
-function(){\r
-this.construct(16);\r
-});\r
-Clazz.makeConstructor(c$,\r
-function(capacity){\r
-Clazz.superConstructor(this,java.util.HashMap,[]);\r
-if(capacity>=0){\r
-this.elementCount=0;\r
-this.elementData=this.newElementArray(capacity==0?1:capacity);\r
-this.loadFactor=0.75;\r
-this.computeMaxSize();\r
-}else{\r
-throw new IllegalArgumentException();\r
-}},"~N");\r
-Clazz.makeConstructor(c$,\r
-function(capacity,loadFactor){\r
-Clazz.superConstructor(this,java.util.HashMap,[]);\r
-if(capacity>=0&&loadFactor>0){\r
-this.elementCount=0;\r
-this.elementData=this.newElementArray(capacity==0?1:capacity);\r
-this.loadFactor=loadFactor;\r
-this.computeMaxSize();\r
-}else{\r
-throw new IllegalArgumentException();\r
-}},"~N,~N");\r
-Clazz.makeConstructor(c$,\r
-function(map){\r
-this.construct(map.size()<6?11:map.size()*2);\r
-Clazz.superCall(this,java.util.HashMap,"putAll",[map]);\r
-},"java.util.Map");\r
-\r
-\r
-/*\r
-Clazz.makeConstructor(c$,\r
-function(capacity,loadFactor){\r
-this.doConstruct(capacity,loadFactor);\r
-},"~N,~N");\r
-\r
-Clazz.defineMethod(c$, "doConstruct",\r
-function(capacity,loadFactor) {\r
-capacity || (capacity = 16);\r
-loadFactor || (loadFactor = 0.75);\r
-if (typeof capacity != "number") {\r
- var map = capacity;\r
- this.loadFactor=loadFactor;\r
- this.elementData=this.newElementArray(map.size()<6?11:map.size()*2);\r
- this.computeMaxSize();\r
- this.putAllHM(map);\r
- return;\r
-}\r
-\r
-//Clazz.superConstructor(this,java.util.HashMap,[]);\r
-if(capacity>=0&&loadFactor>0){\r
-this.elementData=this.newElementArray(capacity==0?1:capacity);\r
-this.loadFactor=loadFactor;\r
-this.computeMaxSize();\r
-}else{\r
-throw new IllegalArgumentException();\r
-}\r
-},"~N,~N");\r
-\r
-//Clazz.makeConstructor(c$,\r
-//function(map){\r
-//this.construct(map.size()<6?11:map.size()*2);\r
-//Clazz.superCall(this,java.util.HashMap,"putAll",[map]);\r
-//},"java.util.Map");\r
-\r
-*/\r
-Clazz.overrideMethod(c$,"clear",\r
-function(){\r
-if(this.elementCount>0){\r
-this.elementCount=0;\r
-java.util.Arrays.fill(this.elementData,null);\r
-this.modCount++;\r
-}});\r
-Clazz.defineMethod(c$,"clone",\r
-function(){\r
-  return this.cloneHM();\r
-});\r
-\r
-Clazz.defineMethod(c$,"cloneHM",\r
-function(){\r
-try{\r
-var map=this.cloneAM();//Clazz.superCall(this,java.util.HashMap,"clone",[]);\r
-map.elementData=this.newElementArray(this.elementData.length);\r
-var entry;\r
-for(var i=0;i<this.elementData.length;i++){\r
-if((entry=this.elementData[i])!=null){\r
-map.elementData[i]=entry.clone();\r
-}}\r
-return map;\r
-}catch(e){\r
-if(Clazz.instanceOf(e,CloneNotSupportedException)){\r
-return null;\r
-}else{\r
-throw e;\r
-}\r
-}\r
-});\r
-\r
-Clazz.defineMethod(c$,"computeMaxSize",\r
-($fz=function(){\r
-this.threshold=Math.round((this.elementData.length*this.loadFactor));\r
-},$fz.isPrivate=true,$fz));\r
-Clazz.overrideMethod(c$,"containsKey",\r
-function(key){\r
-return this.getEntry(key)!=null;\r
-},"~O");\r
-Clazz.defineMethod(c$,"keysEqual",\r
-function(k1,entry){\r
-var k1Hash=k1==null?0:k1.hashCode();\r
-if(k1Hash!=entry.origKeyHash){\r
-return false;\r
-}if(k1==null&&entry.key==null){\r
-return true;\r
-}return k1.equals(entry.key);\r
-},"~O,java.util.HashMap.Entry");\r
-Clazz.overrideMethod(c$,"containsValue",\r
-function(value){\r
-if(value!=null){\r
-for(var i=this.elementData.length;--i>=0;){\r
-var entry=this.elementData[i];\r
-while(entry!=null){\r
-if(value.equals(entry.value)){\r
-return true;\r
-}entry=entry.next;\r
-}\r
-}\r
-}else{\r
-for(var i=this.elementData.length;--i>=0;){\r
-var entry=this.elementData[i];\r
-while(entry!=null){\r
-if(entry.value==null){\r
-return true;\r
-}entry=entry.next;\r
-}\r
-}\r
-}return false;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"entrySet",\r
-function(){\r
-return new java.util.HashMap.HashMapEntrySet(this);\r
-});\r
-Clazz.overrideMethod(c$,"get",\r
-function(key){\r
-var m=this.getEntry(key);\r
-if(m!=null){\r
-return m.value;\r
-}return null;\r
-},"~O");\r
-Clazz.defineMethod(c$,"getEntry",\r
-function(key){\r
-var index=this.getModuloHash(key);\r
-return this.findEntry(key,index);\r
-},"~O");\r
-Clazz.defineMethod(c$,"getModuloHash",\r
-function(key){\r
-if(key==null){\r
-return 0;\r
-}return(key.hashCode()&0x7FFFFFFF)%this.elementData.length;\r
-},"~O");\r
-Clazz.defineMethod(c$,"findEntry",\r
-function(key,index){\r
-var m;\r
-m=this.elementData[index];\r
-if(key!=null){\r
-while(m!=null&&!this.keysEqual(key,m)){\r
-m=m.next;\r
-}\r
-}else{\r
-while(m!=null&&m.key!=null){\r
-m=m.next;\r
-}\r
-}return m;\r
-},"~O,~N");\r
-Clazz.overrideMethod(c$,"isEmpty",\r
-function(){\r
-return this.elementCount==0;\r
-});\r
-Clazz.overrideMethod(c$,"keySet",\r
-function(){\r
-if(this.$keySet==null){\r
-this.$keySet=((Clazz.isClassDefined("java.util.HashMap$1")?0:java.util.HashMap.$HashMap$1$()),Clazz.innerTypeInstance(java.util.HashMap$1,this,null));\r
-}return this.$keySet;\r
-});\r
-Clazz.overrideMethod(c$,"put",\r
-function(key,value){\r
-var index=this.getModuloHash(key);\r
-var entry=this.findEntry(key,index);\r
-if(entry==null){\r
-this.modCount++;\r
-if(++this.elementCount>this.threshold){\r
-this.rehash();\r
-index=key==null?0:(key.hashCode()&0x7FFFFFFF)%this.elementData.length;\r
-}entry=this.createEntry(key,index,value);\r
-return null;\r
-}var result=entry.value;\r
-entry.value=value;\r
-return result;\r
-},"~O,~O");\r
-Clazz.defineMethod(c$,"createEntry",\r
-function(key,index,value){\r
-var entry=new java.util.HashMap.Entry(key,value);\r
-entry.next=this.elementData[index];\r
-this.elementData[index]=entry;\r
-return entry;\r
-},"~O,~N,~O");\r
-Clazz.defineMethod(c$,"putAll",\r
-function(map){\r
-if(!map.isEmpty()){\r
-var capacity=this.elementCount+map.size();\r
-if(capacity>this.threshold){\r
-this.rehash(capacity);\r
-}\r
-this.putAllHM(map);\r
-\r
-}},"java.util.Map");\r
-Clazz.defineMethod(c$,"rehash",\r
-function(capacity){\r
-var length=(capacity==0?1:capacity<<1);\r
-var newData=this.newElementArray(length);\r
-for(var i=0;i<this.elementData.length;i++){\r
-var entry=this.elementData[i];\r
-while(entry!=null){\r
-var key=entry.key;\r
-var index=key==null?0:(key.hashCode()&0x7FFFFFFF)%length;\r
-var next=entry.next;\r
-entry.next=newData[index];\r
-newData[index]=entry;\r
-entry=next;\r
-}\r
-}\r
-this.elementData=newData;\r
-this.computeMaxSize();\r
-},"~N");\r
-Clazz.defineMethod(c$,"rehash",\r
-function(){\r
-this.rehash(this.elementData.length);\r
-});\r
-Clazz.overrideMethod(c$,"remove",\r
-function(key){\r
-var entry=this.removeEntry(key);\r
-if(entry!=null){\r
-return entry.value;\r
-}return null;\r
-},"~O");\r
-Clazz.defineMethod(c$,"removeEntry",\r
-function(key){\r
-var index=0;\r
-var entry;\r
-var last=null;\r
-if(key!=null){\r
-index=(key.hashCode()&0x7FFFFFFF)%this.elementData.length;\r
-entry=this.elementData[index];\r
-while(entry!=null&&!this.keysEqual(key,entry)){\r
-last=entry;\r
-entry=entry.next;\r
-}\r
-}else{\r
-entry=this.elementData[0];\r
-while(entry!=null&&entry.key!=null){\r
-last=entry;\r
-entry=entry.next;\r
-}\r
-}if(entry==null){\r
-return null;\r
-}if(last==null){\r
-this.elementData[index]=entry.next;\r
-}else{\r
-last.next=entry.next;\r
-}this.modCount++;\r
-this.elementCount--;\r
-return entry;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"size",\r
-function(){\r
-return this.elementCount;\r
-});\r
-Clazz.overrideMethod(c$,"values",\r
-function(){\r
-if(this.valuesCollection==null){\r
-this.valuesCollection=((Clazz.isClassDefined("java.util.HashMap$2")?0:java.util.HashMap.$HashMap$2$()),Clazz.innerTypeInstance(java.util.HashMap$2,this,null));\r
-}return this.valuesCollection;\r
-});\r
-c$.$HashMap$1$=function(){\r
-Clazz.pu$h(self.c$);\r
-c$=Clazz.declareAnonymous(java.util,"HashMap$1",java.util.AbstractSet);\r
-Clazz.overrideMethod(c$,"contains",\r
-function(object){\r
-return this.b$["java.util.HashMap"].containsKey(object);\r
-},"~O");\r
-Clazz.overrideMethod(c$,"size",\r
-function(){\r
-return this.b$["java.util.HashMap"].size();\r
-});\r
-Clazz.overrideMethod(c$,"clear",\r
-function(){\r
-this.b$["java.util.HashMap"].clear();\r
-});\r
-Clazz.overrideMethod(c$,"remove",\r
-function(key){\r
-if(this.b$["java.util.HashMap"].containsKey(key)){\r
-this.b$["java.util.HashMap"].remove(key);\r
-return true;\r
-}return false;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"iterator",\r
-function(){\r
-return new java.util.HashMap.HashMapIterator(((Clazz.isClassDefined("java.util.HashMap$1$1")?0:java.util.HashMap.$HashMap$1$1$()),Clazz.innerTypeInstance(java.util.HashMap$1$1,this,null)),this.b$["java.util.HashMap"]);\r
-});\r
-c$=Clazz.p0p();\r
-};\r
-c$.$HashMap$1$1$=function(){\r
-Clazz.pu$h(self.c$);\r
-c$=Clazz.declareAnonymous(java.util,"HashMap$1$1",null,java.util.MapEntry.Type);\r
-Clazz.overrideMethod(c$,"get",\r
-function(entry){\r
-return entry.key;\r
-},"java.util.MapEntry");\r
-c$=Clazz.p0p();\r
-};\r
-c$.$HashMap$2$=function(){\r
-Clazz.pu$h(self.c$);\r
-c$=Clazz.declareAnonymous(java.util,"HashMap$2",java.util.AbstractCollection);\r
-Clazz.overrideMethod(c$,"contains",\r
-function(object){\r
-return this.b$["java.util.HashMap"].containsValue(object);\r
-},"~O");\r
-Clazz.overrideMethod(c$,"size",\r
-function(){\r
-return this.b$["java.util.HashMap"].size();\r
-});\r
-Clazz.overrideMethod(c$,"clear",\r
-function(){\r
-this.b$["java.util.HashMap"].clear();\r
-});\r
-Clazz.overrideMethod(c$,"iterator",\r
-function(){\r
-return new java.util.HashMap.HashMapIterator(((Clazz.isClassDefined("java.util.HashMap$2$1")?0:java.util.HashMap.$HashMap$2$1$()),Clazz.innerTypeInstance(java.util.HashMap$2$1,this,null)),this.b$["java.util.HashMap"]);\r
-});\r
-c$=Clazz.p0p();\r
-};\r
-c$.$HashMap$2$1$=function(){\r
-Clazz.pu$h(self.c$);\r
-c$=Clazz.declareAnonymous(java.util,"HashMap$2$1",null,java.util.MapEntry.Type);\r
-Clazz.overrideMethod(c$,"get",\r
-function(entry){\r
-return entry.value;\r
-},"java.util.MapEntry");\r
-c$=Clazz.p0p();\r
-};\r
-Clazz.pu$h(self.c$);\r
-c$=Clazz.decorateAsClass(function(){\r
-this.origKeyHash=0;\r
-this.next=null;\r
-Clazz.instantialize(this,arguments);\r
-},java.util.HashMap,"Entry",java.util.MapEntry);\r
-Clazz.makeConstructor(c$,\r
-function(a,b){\r
-Clazz.superConstructor(this,java.util.HashMap.Entry,[a,b]);\r
-this.origKeyHash=(a==null?0:a.hashCode());\r
-},"~O,~O");\r
-Clazz.defineMethod(c$,"clone",\r
-function(){\r
-var a=Clazz.superCall(this,java.util.HashMap.Entry,"clone",[]);\r
-if(this.next!=null){\r
-a.next=this.next.clone();\r
-}return a;\r
-});\r
-c$=Clazz.p0p();\r
-Clazz.pu$h(self.c$);\r
-c$=Clazz.decorateAsClass(function(){\r
-this.position=0;\r
-this.expectedModCount=0;\r
-this.type=null;\r
-this.canRemove=false;\r
-this.entry=null;\r
-this.lastEntry=null;\r
-this.associatedMap=null;\r
-Clazz.instantialize(this,arguments);\r
-},java.util.HashMap,"HashMapIterator",null,java.util.Iterator);\r
-Clazz.makeConstructor(c$,\r
-function(a,b){\r
-this.associatedMap=b;\r
-this.type=a;\r
-this.expectedModCount=b.modCount;\r
-},"java.util.MapEntry.Type,java.util.HashMap");\r
-Clazz.overrideMethod(c$,"hasNext",\r
-function(){\r
-if(this.entry!=null){\r
-return true;\r
-}while(this.position<this.associatedMap.elementData.length){\r
-if(this.associatedMap.elementData[this.position]==null){\r
-this.position++;\r
-}else{\r
-return true;\r
-}}\r
-return false;\r
-});\r
-Clazz.defineMethod(c$,"checkConcurrentMod",\r
-function(){\r
-if(this.expectedModCount!=this.associatedMap.modCount){\r
-throw new java.util.ConcurrentModificationException();\r
-}});\r
-Clazz.overrideMethod(c$,"next",\r
-function(){\r
-this.checkConcurrentMod();\r
-if(!this.hasNext()){\r
-throw new java.util.NoSuchElementException();\r
-}var a;\r
-if(this.entry==null){\r
-a=this.lastEntry=this.associatedMap.elementData[this.position++];\r
-this.entry=this.lastEntry.next;\r
-}else{\r
-if(this.lastEntry.next!==this.entry){\r
-this.lastEntry=this.lastEntry.next;\r
-}a=this.entry;\r
-this.entry=this.entry.next;\r
-}this.canRemove=true;\r
-return this.type.get(a);\r
-});\r
-Clazz.overrideMethod(c$,"remove",\r
-function(){\r
-this.checkConcurrentMod();\r
-if(!this.canRemove){\r
-throw new IllegalStateException();\r
-}this.canRemove=false;\r
-this.associatedMap.modCount++;\r
-if(this.lastEntry.next===this.entry){\r
-while(this.associatedMap.elementData[--this.position]==null){\r
-;}\r
-this.associatedMap.elementData[this.position]=this.associatedMap.elementData[this.position].next;\r
-this.entry=null;\r
-}else{\r
-this.lastEntry.next=this.entry;\r
-}this.associatedMap.elementCount--;\r
-this.expectedModCount++;\r
-});\r
-c$=Clazz.p0p();\r
-Clazz.pu$h(self.c$);\r
-c$=Clazz.decorateAsClass(function(){\r
-this.associatedMap=null;\r
-Clazz.instantialize(this,arguments);\r
-},java.util.HashMap,"HashMapEntrySet",java.util.AbstractSet);\r
-Clazz.makeConstructor(c$,\r
-function(a){\r
-Clazz.superConstructor(this,java.util.HashMap.HashMapEntrySet,[]);\r
-this.associatedMap=a;\r
-},"java.util.HashMap");\r
-Clazz.defineMethod(c$,"hashMap",\r
-function(){\r
-return this.associatedMap;\r
-});\r
-Clazz.overrideMethod(c$,"size",\r
-function(){\r
-return this.associatedMap.elementCount;\r
-});\r
-Clazz.overrideMethod(c$,"clear",\r
-function(){\r
-this.associatedMap.clear();\r
-});\r
-Clazz.overrideMethod(c$,"remove",\r
-function(a){\r
-if(this.contains(a)){\r
-this.associatedMap.remove((a).getKey());\r
-return true;\r
-}return false;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"contains",\r
-function(a){\r
-if(Clazz.instanceOf(a,java.util.Map.Entry)){\r
-var b=this.associatedMap.getEntry((a).getKey());\r
-return a.equals(b);\r
-}return false;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"iterator",\r
-function(){\r
-return new java.util.HashMap.HashMapIterator(((Clazz.isClassDefined("java.util.HashMap$HashMapEntrySet$1")?0:java.util.HashMap.HashMapEntrySet.$HashMap$HashMapEntrySet$1$()),Clazz.innerTypeInstance(java.util.HashMap$HashMapEntrySet$1,this,null)),this.associatedMap);\r
-});\r
-c$.$HashMap$HashMapEntrySet$1$=function(){\r
-Clazz.pu$h(self.c$);\r
-c$=Clazz.declareAnonymous(java.util,"HashMap$HashMapEntrySet$1",null,java.util.MapEntry.Type);\r
-Clazz.overrideMethod(c$,"get",\r
-function(a){\r
-return a;\r
-},"java.util.MapEntry");\r
-c$=Clazz.p0p();\r
-};\r
-c$=Clazz.p0p();\r
-Clazz.defineStatics(c$,\r
-"DEFAULT_SIZE",16);\r
-});\r
+// BH minor efficiencies only
+
+Clazz.load(["java.util.AbstractMap","$.AbstractSet","$.Iterator","$.Map","$.MapEntry"],"java.util.HashMap",["java.lang.IllegalArgumentException","$.IllegalStateException","java.util.AbstractCollection","$.Arrays","$.ConcurrentModificationException","java.util.MapEntry.Type","java.util.NoSuchElementException"],function(){
+c$=Clazz.decorateAsClass(function(){
+this.elementCount=0;
+this.elementData=null;
+this.loadFactor=0;
+this.threshold=0;
+this.modCount=0;
+Clazz.instantialize(this,arguments);
+},java.util,"HashMap",java.util.AbstractMap,[java.util.Map,Cloneable,java.io.Serializable]);
+Clazz.defineMethod(c$,"newElementArray",
+function(s){
+return new Array(s);
+},"~N");
+//Clazz.makeConstructor(c$,
+//function(){
+//this.construct(16);
+//});
+//Clazz.makeConstructor(c$,
+//function(capacity){
+//Clazz.superConstructor(this,java.util.HashMap,[]);
+//if(capacity>=0){
+//this.elementCount=0;
+//this.elementData=this.newElementArray(capacity==0?1:capacity);
+//this.loadFactor=0.75;
+//this.computeMaxSize();
+//}else{
+//throw new IllegalArgumentException();
+//}},"~N");
+Clazz.makeConstructor(c$,
+function(){
+this.construct(16);
+});
+Clazz.makeConstructor(c$,
+function(capacity){
+Clazz.superConstructor(this,java.util.HashMap,[]);
+if(capacity>=0){
+this.elementCount=0;
+this.elementData=this.newElementArray(capacity==0?1:capacity);
+this.loadFactor=0.75;
+this.computeMaxSize();
+}else{
+throw new IllegalArgumentException();
+}},"~N");
+Clazz.makeConstructor(c$,
+function(capacity,loadFactor){
+Clazz.superConstructor(this,java.util.HashMap,[]);
+if(capacity>=0&&loadFactor>0){
+this.elementCount=0;
+this.elementData=this.newElementArray(capacity==0?1:capacity);
+this.loadFactor=loadFactor;
+this.computeMaxSize();
+}else{
+throw new IllegalArgumentException();
+}},"~N,~N");
+Clazz.makeConstructor(c$,
+function(map){
+this.construct(map.size()<6?11:map.size()*2);
+Clazz.superCall(this,java.util.HashMap,"putAll",[map]);
+},"java.util.Map");
+
+
+/*
+Clazz.makeConstructor(c$,
+function(capacity,loadFactor){
+this.doConstruct(capacity,loadFactor);
+},"~N,~N");
+
+Clazz.defineMethod(c$, "doConstruct",
+function(capacity,loadFactor) {
+capacity || (capacity = 16);
+loadFactor || (loadFactor = 0.75);
+if (typeof capacity != "number") {
+ var map = capacity;
+ this.loadFactor=loadFactor;
+ this.elementData=this.newElementArray(map.size()<6?11:map.size()*2);
+ this.computeMaxSize();
+ this.putAllHM(map);
+ return;
+}
+
+//Clazz.superConstructor(this,java.util.HashMap,[]);
+if(capacity>=0&&loadFactor>0){
+this.elementData=this.newElementArray(capacity==0?1:capacity);
+this.loadFactor=loadFactor;
+this.computeMaxSize();
+}else{
+throw new IllegalArgumentException();
+}
+},"~N,~N");
+
+//Clazz.makeConstructor(c$,
+//function(map){
+//this.construct(map.size()<6?11:map.size()*2);
+//Clazz.superCall(this,java.util.HashMap,"putAll",[map]);
+//},"java.util.Map");
+
+*/
+Clazz.overrideMethod(c$,"clear",
+function(){
+if(this.elementCount>0){
+this.elementCount=0;
+java.util.Arrays.fill(this.elementData,null);
+this.modCount++;
+}});
+Clazz.defineMethod(c$,"clone",
+function(){
+  return this.cloneHM();
+});
+
+Clazz.defineMethod(c$,"cloneHM",
+function(){
+try{
+var map=this.cloneAM();//Clazz.superCall(this,java.util.HashMap,"clone",[]);
+map.elementData=this.newElementArray(this.elementData.length);
+var entry;
+for(var i=0;i<this.elementData.length;i++){
+if((entry=this.elementData[i])!=null){
+map.elementData[i]=entry.clone();
+}}
+return map;
+}catch(e){
+if(Clazz.instanceOf(e,CloneNotSupportedException)){
+return null;
+}else{
+throw e;
+}
+}
+});
+
+Clazz.defineMethod(c$,"computeMaxSize",
+($fz=function(){
+this.threshold=Math.round((this.elementData.length*this.loadFactor));
+},$fz.isPrivate=true,$fz));
+Clazz.overrideMethod(c$,"containsKey",
+function(key){
+return this.getEntry(key)!=null;
+},"~O");
+Clazz.defineMethod(c$,"keysEqual",
+function(k1,entry){
+var k1Hash=k1==null?0:k1.hashCode();
+if(k1Hash!=entry.origKeyHash){
+return false;
+}if(k1==null&&entry.key==null){
+return true;
+}return k1.equals(entry.key);
+},"~O,java.util.HashMap.Entry");
+Clazz.overrideMethod(c$,"containsValue",
+function(value){
+if(value!=null){
+for(var i=this.elementData.length;--i>=0;){
+var entry=this.elementData[i];
+while(entry!=null){
+if(value.equals(entry.value)){
+return true;
+}entry=entry.next;
+}
+}
+}else{
+for(var i=this.elementData.length;--i>=0;){
+var entry=this.elementData[i];
+while(entry!=null){
+if(entry.value==null){
+return true;
+}entry=entry.next;
+}
+}
+}return false;
+},"~O");
+Clazz.overrideMethod(c$,"entrySet",
+function(){
+return new java.util.HashMap.HashMapEntrySet(this);
+});
+Clazz.overrideMethod(c$,"get",
+function(key){
+var m=this.getEntry(key);
+if(m!=null){
+return m.value;
+}return null;
+},"~O");
+Clazz.defineMethod(c$,"getEntry",
+function(key){
+var index=this.getModuloHash(key);
+return this.findEntry(key,index);
+},"~O");
+Clazz.defineMethod(c$,"getModuloHash",
+function(key){
+if(key==null){
+return 0;
+}return(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
+},"~O");
+Clazz.defineMethod(c$,"findEntry",
+function(key,index){
+var m;
+m=this.elementData[index];
+if(key!=null){
+while(m!=null&&!this.keysEqual(key,m)){
+m=m.next;
+}
+}else{
+while(m!=null&&m.key!=null){
+m=m.next;
+}
+}return m;
+},"~O,~N");
+Clazz.overrideMethod(c$,"isEmpty",
+function(){
+return this.elementCount==0;
+});
+Clazz.overrideMethod(c$,"keySet",
+function(){
+if(this.$keySet==null){
+this.$keySet=((Clazz.isClassDefined("java.util.HashMap$1")?0:java.util.HashMap.$HashMap$1$()),Clazz.innerTypeInstance(java.util.HashMap$1,this,null));
+}return this.$keySet;
+});
+Clazz.overrideMethod(c$,"put",
+function(key,value){
+var index=this.getModuloHash(key);
+var entry=this.findEntry(key,index);
+if(entry==null){
+this.modCount++;
+if(++this.elementCount>this.threshold){
+this.rehash();
+index=key==null?0:(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
+}entry=this.createEntry(key,index,value);
+return null;
+}var result=entry.value;
+entry.value=value;
+return result;
+},"~O,~O");
+Clazz.defineMethod(c$,"createEntry",
+function(key,index,value){
+var entry=new java.util.HashMap.Entry(key,value);
+entry.next=this.elementData[index];
+this.elementData[index]=entry;
+return entry;
+},"~O,~N,~O");
+Clazz.defineMethod(c$,"putAll",
+function(map){
+if(!map.isEmpty()){
+var capacity=this.elementCount+map.size();
+if(capacity>this.threshold){
+this.rehash(capacity);
+}
+this.putAllHM(map);
+
+}},"java.util.Map");
+Clazz.defineMethod(c$,"rehash",
+function(capacity){
+var length=(capacity==0?1:capacity<<1);
+var newData=this.newElementArray(length);
+for(var i=0;i<this.elementData.length;i++){
+var entry=this.elementData[i];
+while(entry!=null){
+var key=entry.key;
+var index=key==null?0:(key.hashCode()&0x7FFFFFFF)%length;
+var next=entry.next;
+entry.next=newData[index];
+newData[index]=entry;
+entry=next;
+}
+}
+this.elementData=newData;
+this.computeMaxSize();
+},"~N");
+Clazz.defineMethod(c$,"rehash",
+function(){
+this.rehash(this.elementData.length);
+});
+Clazz.overrideMethod(c$,"remove",
+function(key){
+var entry=this.removeEntry(key);
+if(entry!=null){
+return entry.value;
+}return null;
+},"~O");
+Clazz.defineMethod(c$,"removeEntry",
+function(key){
+var index=0;
+var entry;
+var last=null;
+if(key!=null){
+index=(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
+entry=this.elementData[index];
+while(entry!=null&&!this.keysEqual(key,entry)){
+last=entry;
+entry=entry.next;
+}
+}else{
+entry=this.elementData[0];
+while(entry!=null&&entry.key!=null){
+last=entry;
+entry=entry.next;
+}
+}if(entry==null){
+return null;
+}if(last==null){
+this.elementData[index]=entry.next;
+}else{
+last.next=entry.next;
+}this.modCount++;
+this.elementCount--;
+return entry;
+},"~O");
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.elementCount;
+});
+Clazz.overrideMethod(c$,"values",
+function(){
+if(this.valuesCollection==null){
+this.valuesCollection=((Clazz.isClassDefined("java.util.HashMap$2")?0:java.util.HashMap.$HashMap$2$()),Clazz.innerTypeInstance(java.util.HashMap$2,this,null));
+}return this.valuesCollection;
+});
+c$.$HashMap$1$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"HashMap$1",java.util.AbstractSet);
+Clazz.overrideMethod(c$,"contains",
+function(object){
+return this.b$["java.util.HashMap"].containsKey(object);
+},"~O");
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.b$["java.util.HashMap"].size();
+});
+Clazz.overrideMethod(c$,"clear",
+function(){
+this.b$["java.util.HashMap"].clear();
+});
+Clazz.overrideMethod(c$,"remove",
+function(key){
+if(this.b$["java.util.HashMap"].containsKey(key)){
+this.b$["java.util.HashMap"].remove(key);
+return true;
+}return false;
+},"~O");
+Clazz.overrideMethod(c$,"iterator",
+function(){
+return new java.util.HashMap.HashMapIterator(((Clazz.isClassDefined("java.util.HashMap$1$1")?0:java.util.HashMap.$HashMap$1$1$()),Clazz.innerTypeInstance(java.util.HashMap$1$1,this,null)),this.b$["java.util.HashMap"]);
+});
+c$=Clazz.p0p();
+};
+c$.$HashMap$1$1$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"HashMap$1$1",null,java.util.MapEntry.Type);
+Clazz.overrideMethod(c$,"get",
+function(entry){
+return entry.key;
+},"java.util.MapEntry");
+c$=Clazz.p0p();
+};
+c$.$HashMap$2$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"HashMap$2",java.util.AbstractCollection);
+Clazz.overrideMethod(c$,"contains",
+function(object){
+return this.b$["java.util.HashMap"].containsValue(object);
+},"~O");
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.b$["java.util.HashMap"].size();
+});
+Clazz.overrideMethod(c$,"clear",
+function(){
+this.b$["java.util.HashMap"].clear();
+});
+Clazz.overrideMethod(c$,"iterator",
+function(){
+return new java.util.HashMap.HashMapIterator(((Clazz.isClassDefined("java.util.HashMap$2$1")?0:java.util.HashMap.$HashMap$2$1$()),Clazz.innerTypeInstance(java.util.HashMap$2$1,this,null)),this.b$["java.util.HashMap"]);
+});
+c$=Clazz.p0p();
+};
+c$.$HashMap$2$1$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"HashMap$2$1",null,java.util.MapEntry.Type);
+Clazz.overrideMethod(c$,"get",
+function(entry){
+return entry.value;
+},"java.util.MapEntry");
+c$=Clazz.p0p();
+};
+Clazz.pu$h(self.c$);
+c$=Clazz.decorateAsClass(function(){
+this.origKeyHash=0;
+this.next=null;
+Clazz.instantialize(this,arguments);
+},java.util.HashMap,"Entry",java.util.MapEntry);
+Clazz.makeConstructor(c$,
+function(a,b){
+Clazz.superConstructor(this,java.util.HashMap.Entry,[a,b]);
+this.origKeyHash=(a==null?0:a.hashCode());
+},"~O,~O");
+Clazz.defineMethod(c$,"clone",
+function(){
+var a=Clazz.superCall(this,java.util.HashMap.Entry,"clone",[]);
+if(this.next!=null){
+a.next=this.next.clone();
+}return a;
+});
+c$=Clazz.p0p();
+Clazz.pu$h(self.c$);
+c$=Clazz.decorateAsClass(function(){
+this.position=0;
+this.expectedModCount=0;
+this.type=null;
+this.canRemove=false;
+this.entry=null;
+this.lastEntry=null;
+this.associatedMap=null;
+Clazz.instantialize(this,arguments);
+},java.util.HashMap,"HashMapIterator",null,java.util.Iterator);
+Clazz.makeConstructor(c$,
+function(a,b){
+this.associatedMap=b;
+this.type=a;
+this.expectedModCount=b.modCount;
+},"java.util.MapEntry.Type,java.util.HashMap");
+Clazz.overrideMethod(c$,"hasNext",
+function(){
+if(this.entry!=null){
+return true;
+}while(this.position<this.associatedMap.elementData.length){
+if(this.associatedMap.elementData[this.position]==null){
+this.position++;
+}else{
+return true;
+}}
+return false;
+});
+Clazz.defineMethod(c$,"checkConcurrentMod",
+function(){
+if(this.expectedModCount!=this.associatedMap.modCount){
+throw new java.util.ConcurrentModificationException();
+}});
+Clazz.overrideMethod(c$,"next",
+function(){
+this.checkConcurrentMod();
+if(!this.hasNext()){
+throw new java.util.NoSuchElementException();
+}var a;
+if(this.entry==null){
+a=this.lastEntry=this.associatedMap.elementData[this.position++];
+this.entry=this.lastEntry.next;
+}else{
+if(this.lastEntry.next!==this.entry){
+this.lastEntry=this.lastEntry.next;
+}a=this.entry;
+this.entry=this.entry.next;
+}this.canRemove=true;
+return this.type.get(a);
+});
+Clazz.overrideMethod(c$,"remove",
+function(){
+this.checkConcurrentMod();
+if(!this.canRemove){
+throw new IllegalStateException();
+}this.canRemove=false;
+this.associatedMap.modCount++;
+if(this.lastEntry.next===this.entry){
+while(this.associatedMap.elementData[--this.position]==null){
+;}
+this.associatedMap.elementData[this.position]=this.associatedMap.elementData[this.position].next;
+this.entry=null;
+}else{
+this.lastEntry.next=this.entry;
+}this.associatedMap.elementCount--;
+this.expectedModCount++;
+});
+c$=Clazz.p0p();
+Clazz.pu$h(self.c$);
+c$=Clazz.decorateAsClass(function(){
+this.associatedMap=null;
+Clazz.instantialize(this,arguments);
+},java.util.HashMap,"HashMapEntrySet",java.util.AbstractSet);
+Clazz.makeConstructor(c$,
+function(a){
+Clazz.superConstructor(this,java.util.HashMap.HashMapEntrySet,[]);
+this.associatedMap=a;
+},"java.util.HashMap");
+Clazz.defineMethod(c$,"hashMap",
+function(){
+return this.associatedMap;
+});
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.associatedMap.elementCount;
+});
+Clazz.overrideMethod(c$,"clear",
+function(){
+this.associatedMap.clear();
+});
+Clazz.overrideMethod(c$,"remove",
+function(a){
+if(this.contains(a)){
+this.associatedMap.remove((a).getKey());
+return true;
+}return false;
+},"~O");
+Clazz.overrideMethod(c$,"contains",
+function(a){
+if(Clazz.instanceOf(a,java.util.Map.Entry)){
+var b=this.associatedMap.getEntry((a).getKey());
+return a.equals(b);
+}return false;
+},"~O");
+Clazz.overrideMethod(c$,"iterator",
+function(){
+return new java.util.HashMap.HashMapIterator(((Clazz.isClassDefined("java.util.HashMap$HashMapEntrySet$1")?0:java.util.HashMap.HashMapEntrySet.$HashMap$HashMapEntrySet$1$()),Clazz.innerTypeInstance(java.util.HashMap$HashMapEntrySet$1,this,null)),this.associatedMap);
+});
+c$.$HashMap$HashMapEntrySet$1$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"HashMap$HashMapEntrySet$1",null,java.util.MapEntry.Type);
+Clazz.overrideMethod(c$,"get",
+function(a){
+return a;
+},"java.util.MapEntry");
+c$=Clazz.p0p();
+};
+c$=Clazz.p0p();
+Clazz.defineStatics(c$,
+"DEFAULT_SIZE",16);
+});