Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / swingjs / j2s / java / util / Hashtable.js
index e4995d5..0c06402 100644 (file)
-\r
-// modified by Bob Hanson 3/21/2014 6:44:21 AM  to reduce this.b$[....] phrases to simply this.h$\r
-// BH added ability to use a non-Java key for HTML elements, for example.\r
-// BH 8/24/2014 8:48:58 PM all synchronization and inner classes removed\r
-\r
-\r
-Clazz.load([],"java.util.HashtableIterator",[],function(){\r
-c$=Clazz.decorateAsClass(function(){\r
-this.position=0;\r
-this.expectedModCount=0;\r
-this.type=null;\r
-this.lastEntry=null;\r
-this.lastPosition=0;\r
-this.canRemove=false;\r
-Clazz.instantialize(this,arguments);\r
-},java.util,"HashtableIterator",null,java.util.Iterator);\r
-Clazz.makeConstructor(c$,\r
-function(a){\r
-this.type=a;\r
-this.h$ = a.h$;\r
-this.position=this.h$.lastSlot;\r
-this.expectedModCount=this.h$.modCount;\r
-},"java.util.AbstractSet");\r
-Clazz.overrideMethod(c$,"hasNext",\r
-function(){\r
-if(this.lastEntry&&this.lastEntry.next){\r
-return true;\r
-}while(this.position>=this.h$.firstSlot){\r
-if(this.h$.elementData[this.position]==null){\r
-this.position--;\r
-}else{\r
-return true;\r
-}}\r
-return false;\r
-});\r
-Clazz.overrideMethod(c$,"next",\r
-function(){\r
-if(this.expectedModCount==this.h$.modCount){\r
-if(this.lastEntry){\r
-this.lastEntry=this.lastEntry.next;\r
-}if(this.lastEntry==null){\r
-while(this.position>=this.h$.firstSlot&&(this.lastEntry=this.h$.elementData[this.position])==null){\r
-this.position--;\r
-}\r
-if(this.lastEntry){\r
-this.lastPosition=this.position;\r
-this.position--;\r
-}}if(this.lastEntry){\r
-this.canRemove=true;\r
-return this.type.get(this.lastEntry);\r
-}throw new java.util.NoSuchElementException();\r
-}throw new java.util.ConcurrentModificationException();\r
-});\r
-Clazz.overrideMethod(c$,"remove",\r
-function(){\r
-if(this.expectedModCount==this.h$.modCount){\r
-if(this.canRemove){\r
-this.canRemove=false;\r
-{\r
-var a=false;\r
-var b=this.h$.elementData[this.lastPosition];\r
-if(b===this.lastEntry){\r
-this.h$.elementData[this.lastPosition]=b.next;\r
-a=true;\r
-}else{\r
-while(b&&b.next!==this.lastEntry){\r
-b=b.next;\r
-}\r
-if(b){\r
-b.next=this.lastEntry.next;\r
-a=true;\r
-}}if(a){\r
-this.h$.modCount++;\r
-this.h$.elementCount--;\r
-this.expectedModCount++;\r
-return;\r
-}}}else{\r
-throw new IllegalStateException();\r
-}}throw new java.util.ConcurrentModificationException();\r
-});\r
-});\r
-\r
-\r
-\r
-////////////////////////////\r
-\r
-\r
-Clazz.load([],"java.util.HashtableEnumerator",[],function(){\r
-c$=Clazz.decorateAsClass(function(){\r
-this.key=false;\r
-this.start=0;\r
-this.entry=null;\r
-Clazz.instantialize(this,arguments);\r
-},java.util,"HashtableEnumerator",null,java.util.Enumeration);\r
-\r
-Clazz.makeConstructor(c$,\r
-function(a, b){\r
-this.key = a;\r
-this.h$ = b;\r
-if (this.h$)this.start=this.h$.lastSlot+1;\r
-},"~B,java.util.Hashtable");\r
-Clazz.overrideMethod(c$,"hasMoreElements",\r
-function(){\r
-if (!this.h$)return false;\r
-if(this.entry)return true;\r
-\r
-while(--this.start>=this.h$.firstSlot){\r
-if(this.h$.elementData[this.start]){\r
-this.entry=this.h$.elementData[this.start];\r
-return true;\r
-}}\r
-return false;\r
-});\r
-Clazz.overrideMethod(c$,"nextElement",\r
-function(){\r
-if(this.hasMoreElements()){\r
-var a=this.key?this.entry.key:this.entry.value;\r
-this.entry=this.entry.next;\r
-return a;\r
-}\r
-throw new java.util.NoSuchElementException();\r
-});\r
-});\r
-\r
-////////////////////////////\r
-\r
-Clazz.load([],"java.util.HashtableEntrySet",[],function(){\r
-c$=Clazz.decorateAsClass(function(){\r
-Clazz.instantialize(this,arguments);\r
-},java.util,"HashtableEntrySet",java.util.AbstractSet);\r
-\r
-Clazz.makeConstructor(c$,\r
-function(a){\r
-this.h$ = a;\r
-},"java.util.Hashtable");\r
-Clazz.overrideMethod(c$,"size",\r
-function(){\r
-return this.h$.elementCount;\r
-});\r
-Clazz.overrideMethod(c$,"clear",\r
-function(){\r
-this.h$.clear();\r
-});\r
-Clazz.overrideMethod(c$,"remove",\r
-function(object){\r
-if(this.contains(object)){\r
-this.h$.remove((object).getKey());\r
-return true;\r
-}return false;\r
-},"~O");\r
-Clazz.defineMethod(c$,"contains",\r
-function(object){\r
-var entry=this.h$.getEntry((object).getKey());\r
-return object.equals(entry);\r
-},"~O");\r
-\r
-Clazz.overrideMethod(c$,"get",\r
-function(entry){\r
-return entry;\r
-},"java.util.MapEntry");\r
-\r
-Clazz.defineMethod(c$,"iterator",\r
-function(){\r
-return new java.util.HashtableIterator(this);\r
-});\r
-});\r
-\r
-\r
-////////////////////////////\r
-\r
-Clazz.load([],"java.util.HashtableKeySet",[],function(){\r
-c$=Clazz.decorateAsClass(function(){\r
-Clazz.instantialize(this,arguments);\r
-},java.util,"HashtableKeySet",java.util.AbstractSet);\r
-\r
-Clazz.makeConstructor(c$,\r
-function(a){\r
-this.h$ = a;\r
-},"java.util.Hashtable");\r
-\r
-Clazz.overrideMethod(c$,"contains",\r
-function(object){\r
-return this.h$.containsKey(object);\r
-},"~O");\r
-Clazz.overrideMethod(c$,"size",\r
-function(){\r
-return this.h$.elementCount;\r
-});\r
-Clazz.overrideMethod(c$,"clear",\r
-function(){\r
-this.h$.clear();\r
-});\r
-Clazz.overrideMethod(c$,"remove",\r
-function(key){\r
-if(this.h$.containsKey(key)){\r
-this.h$.remove(key);\r
-return true;\r
-}return false;\r
-},"~O");\r
-\r
-Clazz.overrideMethod(c$,"get",\r
-function(entry){\r
-return entry.key;\r
-},"java.util.MapEntry");\r
-\r
-Clazz.overrideMethod(c$,"iterator",\r
-function(){\r
-return new java.util.HashtableIterator(this);\r
-});\r
-});\r
-\r
-////////////////////////////\r
-\r
-Clazz.load([],"java.util.HashtableValueCollection",[],function(){\r
-c$=Clazz.decorateAsClass(function(){\r
-Clazz.instantialize(this,arguments);\r
-},java.util,"HashtableValueCollection",null,java.util.AbstractCollection);\r
-\r
-Clazz.makeConstructor(c$,\r
-function(a){\r
-this.h$ = a;\r
-},"java.util.Hashtable");\r
-Clazz.overrideMethod(c$,"contains",\r
-function(object){\r
-return this.h$.contains(object);\r
-},"~O");\r
-Clazz.overrideMethod(c$,"size",\r
-function(){\r
-return this.h$.elementCount;\r
-});\r
-Clazz.overrideMethod(c$,"clear",\r
-function(){\r
-this.h$.clear();\r
-});\r
-\r
-Clazz.overrideMethod(c$,"get",\r
-function(entry){\r
-return entry.value;\r
-},"java.util.MapEntry");\r
-\r
-Clazz.overrideMethod(c$,"iterator",\r
-function(){\r
-return new java.util.HashtableIterator(this);\r
-});\r
-});\r
-////////////////////////////\r
-\r
-\r
-Clazz.load(["java.util.MapEntry"],"java.util.HashtableEntry",[],function(){\r
-c$=Clazz.decorateAsClass(function(){\r
-this.next=null;\r
-this.hashcode=0;\r
-Clazz.instantialize(this,arguments);\r
-},java.util,"HashtableEntry",java.util.MapEntry);\r
-Clazz.overrideConstructor(c$,\r
-function(a,b){\r
-this.key = a;\r
-this.value = b;\r
-this.hashcode=a.hashCode();\r
-});\r
-Clazz.defineMethod(c$,"clone",\r
-function(){\r
-var a=Clazz.superCall(this,java.util.HashtableEntry,"clone",[]);\r
-if(this.next!=null){\r
-a.next=this.next.clone();\r
-}\r
-return a;\r
-});\r
-Clazz.overrideMethod(c$,"setValue",\r
-function(a){\r
-if(a==null){\r
-throw new NullPointerException();\r
-}var b=this.value;\r
-this.value=a;\r
-return b;\r
-},"~O");\r
-Clazz.defineMethod(c$,"getKeyHash",\r
-function(){\r
-return this.key.hashCode();\r
-});\r
-Clazz.defineMethod(c$,"equalsKey",\r
-function(a,b){\r
-return this.hashcode==(!a.hashCode || a.hashCode())&&this.key.equals(a);\r
-},"~O,~N");\r
-Clazz.overrideMethod(c$,"toString",\r
-function(){\r
-return this.key+"="+this.value;\r
-});\r
-});\r
-\r
-\r
-\r
-////////////////////////////\r
-\r
-\r
-Clazz.load(["java.util.Dictionary","$.Enumeration","$.HashtableEnumerator","$.Iterator","$.Map","$.MapEntry","$.NoSuchElementException"],"java.util.Hashtable",["java.lang.IllegalArgumentException","$.IllegalStateException","$.NullPointerException","$.StringBuilder","java.util.AbstractCollection","$.AbstractSet","$.Arrays","$.Collections","$.ConcurrentModificationException","java.util.MapEntry.Type","java.util.HashtableEntry"],function(){\r
-c$=Clazz.decorateAsClass(function(){\r
-this.elementCount=0;\r
-this.elementData=null;\r
-this.loadFactor=0;\r
-this.threshold=0;\r
-this.firstSlot=0;\r
-this.lastSlot=-1;\r
-this.modCount=0;\r
-Clazz.instantialize(this,arguments);\r
-},java.util,"Hashtable",java.util.Dictionary,[java.util.Map,Cloneable,java.io.Serializable]);  \r
-c$.newEntry=Clazz.defineMethod(c$,"newEntry",\r
-($fz=function(key,value,hash){\r
-return new java.util.HashtableEntry(key,value);\r
-},$fz.isPrivate=true,$fz),"~O,~O,~N");\r
-Clazz.overrideConstructor(c$,\r
-function(){\r
-this.elementCount=0;\r
-this.elementData=this.newElementArray(11);\r
-this.firstSlot=this.elementData.length;\r
-this.loadFactor=0.75;\r
-this.computeMaxSize();\r
-});\r
-Clazz.defineMethod(c$,"newElementArray",\r
-($fz=function(size){\r
-return new Array(size);\r
-},$fz.isPrivate=true,$fz),"~N");\r
-Clazz.overrideMethod(c$,"clear",\r
-function(){\r
-this.elementCount=0;\r
-for (var i = this.elementData.length; --i >= 0;)\r
-         this.elementData[i] = null;\r
-this.modCount++;\r
-});\r
-Clazz.defineMethod(c$,"clone",\r
-function(){\r
-try{\r
-var hashtable=Clazz.superCall(this,java.util.Hashtable,"clone",[]);\r
-hashtable.elementData=this.elementData.clone();\r
-var entry;\r
-for(var i=this.elementData.length;--i>=0;){\r
-if((entry=this.elementData[i])){\r
-hashtable.elementData[i]=entry.clone();\r
-}}\r
-return hashtable;\r
-}catch(e){\r
-if(Clazz.instanceOf(e,CloneNotSupportedException)){\r
-return null;\r
-}else{\r
-throw e;\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.defineMethod(c$,"contains",\r
-function(value){\r
-if(value==null){\r
-throw new NullPointerException();\r
-}for(var i=this.elementData.length;--i>=0;){\r
-var entry=this.elementData[i];\r
-while(entry){\r
-if(value.equals(entry.value)){\r
-return true;\r
-}entry=entry.next;\r
-}\r
-}\r
-return false;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"containsKey",\r
-function(key){\r
-       if(!key.hashCode)  {\r
-         key.hashCode = function(){return 1};\r
-         if (!key.equals)\r
-               key.equals = function(a) {return this == a};\r
-       }\r
-return this.getEntry(key)!=null        ;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"containsValue",\r
-function(value){\r
-return this.contains(value);\r
-},"~O");\r
-Clazz.overrideMethod(c$,"elements",\r
-function(){\r
-if(this.elementCount==0){\r
-return java.util.Hashtable.EMPTY_ENUMERATION;\r
-}\r
-return new java.util.HashtableEnumerator(false, this);\r
-});\r
-Clazz.overrideMethod(c$,"entrySet",\r
-function(){\r
-return new java.util.HashtableEntrySet(this);\r
-});\r
-Clazz.overrideMethod(c$,"equals",\r
-function(object){\r
-if(this===object){\r
-return true;\r
-}if(Clazz.instanceOf(object,java.util.Map)){\r
-var map=object;\r
-if(this.size()!=map.size()){\r
-return false;\r
-}var entries=this.entrySet();\r
-for(var e,$e=map.entrySet().iterator();$e.hasNext()&&((e=$e.next())||true);){\r
-if(!entries.contains(e)){\r
-return false;\r
-}}\r
-return true;\r
-}return false;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"get",\r
-function(key){\r
-       if(!key.hashCode) { \r
-         key.hashCode = function(){return 1};\r
-       if (!key.equals)\r
-               key.equals = function(a) {return this == a};\r
-       }\r
-var hash=key.hashCode();\r
-var index=(hash&0x7FFFFFFF)%this.elementData.length;\r
-var entry=this.elementData[index];\r
-while(entry){\r
-if(entry.equalsKey(key,hash)){\r
-return entry.value;\r
-}entry=entry.next;\r
-}\r
-return null;\r
-},"~O");\r
-Clazz.defineMethod(c$,"getEntry",\r
-function(key){\r
-var hash=key.hashCode();\r
-var index=(hash&0x7FFFFFFF)%this.elementData.length;\r
-var entry=this.elementData[index];\r
-while(entry){\r
-if(entry.equalsKey(key,hash)){\r
-return entry;\r
-}entry=entry.next;\r
-}\r
-return null;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"hashCode",\r
-function(){\r
-var result=0;\r
-var it=this.entrySet().iterator();\r
-while(it.hasNext()){\r
-var entry=it.next();\r
-var key=entry.getKey();\r
-var value=entry.getValue();\r
-var hash=(key!==this?key.hashCode():0)^(value!==this?(value!=null?value.hashCode():0):0);\r
-result+=hash;\r
-}\r
-return result;\r
-});\r
-Clazz.overrideMethod(c$,"isEmpty",\r
-function(){\r
-return this.elementCount==0;\r
-});\r
-Clazz.overrideMethod(c$,"keys",\r
-function(){\r
-if(this.elementCount==0){\r
-return java.util.Hashtable.EMPTY_ENUMERATION;\r
-}\r
-return new java.util.HashtableEnumerator(true, this); \r
-});\r
-Clazz.overrideMethod(c$,"keySet",\r
-function(){\r
-return new java.util.HashtableKeySet(this);\r
-});\r
-Clazz.overrideMethod(c$,"put",\r
-function(key,value){\r
-if(key!=null&&value!=null){\r
-       if(!key.hashCode)  {\r
-         key.hashCode = function(){return 1};\r
-         if (!key.equals)\r
-               key.equals = function(a) {return this == a};\r
-       }\r
-       var hash=key.hashCode();\r
-       var index=(hash&0x7FFFFFFF)%this.elementData.length;\r
-       var entry=this.elementData[index];\r
-       while(entry!=null&&!entry.equalsKey(key,hash)){\r
-       entry=entry.next;\r
-}\r
-if(entry==null){\r
-this.modCount++;\r
-if(++this.elementCount>this.threshold){\r
-this.rehash();\r
-index=(hash&0x7FFFFFFF)%this.elementData.length;\r
-}if(index<this.firstSlot){\r
-this.firstSlot=index;\r
-}if(index>this.lastSlot){\r
-this.lastSlot=index;\r
-}\r
-\r
-entry=java.util.Hashtable.newEntry(key,value,hash);\r
-entry.next=this.elementData[index];\r
-this.elementData[index]=entry;\r
-return null;\r
-}var result=entry.value;\r
-entry.value=value;\r
-return result;\r
-}throw new NullPointerException();\r
-},"~O,~O");\r
-Clazz.overrideMethod(c$,"putAll",\r
-function(map){\r
-for(var entry,$entry=map.entrySet().iterator();$entry.hasNext()&&((entry=$entry.next())||true);){\r
-this.put(entry.getKey(),entry.getValue());\r
-}\r
-},"java.util.Map");\r
-\r
-Clazz.defineMethod(c$,"rehash",\r
-function(){\r
-var length=(this.elementData.length<<1)+1;\r
-if(length==0){\r
-length=1;\r
-}var newFirst=length;\r
-var newLast=-1;\r
-var newData=this.newElementArray(length);\r
-for(var i=this.lastSlot+1;--i>=this.firstSlot;){\r
-var entry=this.elementData[i];\r
-while(entry!=null){\r
-var index=(entry.getKeyHash()&0x7FFFFFFF)%length;\r
-if(index<newFirst){\r
-newFirst=index;\r
-}if(index>newLast){\r
-newLast=index;\r
-}var next=entry.next;\r
-entry.next=newData[index];\r
-newData[index]=entry;\r
-entry=next;\r
-}\r
-}\r
-this.firstSlot=newFirst;\r
-this.lastSlot=newLast;\r
-this.elementData=newData;\r
-this.computeMaxSize();\r
-});\r
-Clazz.overrideMethod(c$,"remove",\r
-function(key){\r
-var hash=key.hashCode();\r
-var index=(hash&0x7FFFFFFF)%this.elementData.length;\r
-var last=null;\r
-var entry=this.elementData[index];\r
-while(entry!=null&&!entry.equalsKey(key,hash)){\r
-last=entry;\r
-entry=entry.next;\r
-}\r
-if(entry!=null){\r
-this.modCount++;\r
-if(last==null){\r
-this.elementData[index]=entry.next;\r
-}else{\r
-last.next=entry.next;\r
-}this.elementCount--;\r
-var result=entry.value;\r
-entry.value=null;\r
-return result;\r
-}return null;\r
-},"~O");\r
-Clazz.overrideMethod(c$,"size",\r
-function(){\r
-return this.elementCount;\r
-});\r
-Clazz.overrideMethod(c$,"toString",\r
-function(){\r
-if(this.isEmpty()){\r
-return"{}";\r
-}var buffer=new StringBuilder(this.size()*28);\r
-buffer.append('{');\r
-for(var i=this.lastSlot;i>=this.firstSlot;i--){\r
-var entry=this.elementData[i];\r
-while(entry!=null){\r
-if(entry.key!==this){\r
-buffer.append(entry.key);\r
-}else{\r
-buffer.append("(this Map)");\r
-}buffer.append('=');\r
-if(entry.value!==this){\r
-buffer.append(entry.value);\r
-}else{\r
-buffer.append("(this Map)");\r
-}buffer.append(", ");\r
-entry=entry.next;\r
-}\r
-}\r
-if(this.elementCount>0){\r
-buffer.setLength(buffer.length()-2);\r
-}buffer.append('}');\r
-return buffer.toString();\r
-});\r
-Clazz.overrideMethod(c$,"values",\r
-function(){\r
-return new java.util.HashtableValueCollection(this);\r
-});\r
-java.util.Hashtable.EMPTY_ENUMERATION = new java.util.HashtableEnumerator();\r
-});\r
+
+// modified by Bob Hanson 3/21/2014 6:44:21 AM  to reduce this.b$[....] phrases to simply this.h$
+// BH added ability to use a non-Java key for HTML elements, for example.
+// BH 8/24/2014 8:48:58 PM all synchronization and inner classes removed
+
+
+Clazz.load([],"java.util.HashtableIterator",[],function(){
+c$=Clazz.decorateAsClass(function(){
+this.position=0;
+this.expectedModCount=0;
+this.type=null;
+this.lastEntry=null;
+this.lastPosition=0;
+this.canRemove=false;
+Clazz.instantialize(this,arguments);
+},java.util,"HashtableIterator",null,java.util.Iterator);
+Clazz.makeConstructor(c$,
+function(a){
+this.type=a;
+this.h$ = a.h$;
+this.position=this.h$.lastSlot;
+this.expectedModCount=this.h$.modCount;
+},"java.util.AbstractSet");
+Clazz.overrideMethod(c$,"hasNext",
+function(){
+if(this.lastEntry&&this.lastEntry.next){
+return true;
+}while(this.position>=this.h$.firstSlot){
+if(this.h$.elementData[this.position]==null){
+this.position--;
+}else{
+return true;
+}}
+return false;
+});
+Clazz.overrideMethod(c$,"next",
+function(){
+if(this.expectedModCount==this.h$.modCount){
+if(this.lastEntry){
+this.lastEntry=this.lastEntry.next;
+}if(this.lastEntry==null){
+while(this.position>=this.h$.firstSlot&&(this.lastEntry=this.h$.elementData[this.position])==null){
+this.position--;
+}
+if(this.lastEntry){
+this.lastPosition=this.position;
+this.position--;
+}}if(this.lastEntry){
+this.canRemove=true;
+return this.type.get(this.lastEntry);
+}throw new java.util.NoSuchElementException();
+}throw new java.util.ConcurrentModificationException();
+});
+Clazz.overrideMethod(c$,"remove",
+function(){
+if(this.expectedModCount==this.h$.modCount){
+if(this.canRemove){
+this.canRemove=false;
+{
+var a=false;
+var b=this.h$.elementData[this.lastPosition];
+if(b===this.lastEntry){
+this.h$.elementData[this.lastPosition]=b.next;
+a=true;
+}else{
+while(b&&b.next!==this.lastEntry){
+b=b.next;
+}
+if(b){
+b.next=this.lastEntry.next;
+a=true;
+}}if(a){
+this.h$.modCount++;
+this.h$.elementCount--;
+this.expectedModCount++;
+return;
+}}}else{
+throw new IllegalStateException();
+}}throw new java.util.ConcurrentModificationException();
+});
+});
+
+
+
+////////////////////////////
+
+
+Clazz.load([],"java.util.HashtableEnumerator",[],function(){
+c$=Clazz.decorateAsClass(function(){
+this.key=false;
+this.start=0;
+this.entry=null;
+Clazz.instantialize(this,arguments);
+},java.util,"HashtableEnumerator",null,java.util.Enumeration);
+
+Clazz.makeConstructor(c$,
+function(a, b){
+this.key = a;
+this.h$ = b;
+if (this.h$)this.start=this.h$.lastSlot+1;
+},"~B,java.util.Hashtable");
+Clazz.overrideMethod(c$,"hasMoreElements",
+function(){
+if (!this.h$)return false;
+if(this.entry)return true;
+
+while(--this.start>=this.h$.firstSlot){
+if(this.h$.elementData[this.start]){
+this.entry=this.h$.elementData[this.start];
+return true;
+}}
+return false;
+});
+Clazz.overrideMethod(c$,"nextElement",
+function(){
+if(this.hasMoreElements()){
+var a=this.key?this.entry.key:this.entry.value;
+this.entry=this.entry.next;
+return a;
+}
+throw new java.util.NoSuchElementException();
+});
+});
+
+////////////////////////////
+
+Clazz.load([],"java.util.HashtableEntrySet",[],function(){
+c$=Clazz.decorateAsClass(function(){
+Clazz.instantialize(this,arguments);
+},java.util,"HashtableEntrySet",java.util.AbstractSet);
+
+Clazz.makeConstructor(c$,
+function(a){
+this.h$ = a;
+},"java.util.Hashtable");
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.h$.elementCount;
+});
+Clazz.overrideMethod(c$,"clear",
+function(){
+this.h$.clear();
+});
+Clazz.overrideMethod(c$,"remove",
+function(object){
+if(this.contains(object)){
+this.h$.remove((object).getKey());
+return true;
+}return false;
+},"~O");
+Clazz.defineMethod(c$,"contains",
+function(object){
+var entry=this.h$.getEntry((object).getKey());
+return object.equals(entry);
+},"~O");
+
+Clazz.overrideMethod(c$,"get",
+function(entry){
+return entry;
+},"java.util.MapEntry");
+
+Clazz.defineMethod(c$,"iterator",
+function(){
+return new java.util.HashtableIterator(this);
+});
+});
+
+
+////////////////////////////
+
+Clazz.load([],"java.util.HashtableKeySet",[],function(){
+c$=Clazz.decorateAsClass(function(){
+Clazz.instantialize(this,arguments);
+},java.util,"HashtableKeySet",java.util.AbstractSet);
+
+Clazz.makeConstructor(c$,
+function(a){
+this.h$ = a;
+},"java.util.Hashtable");
+
+Clazz.overrideMethod(c$,"contains",
+function(object){
+return this.h$.containsKey(object);
+},"~O");
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.h$.elementCount;
+});
+Clazz.overrideMethod(c$,"clear",
+function(){
+this.h$.clear();
+});
+Clazz.overrideMethod(c$,"remove",
+function(key){
+if(this.h$.containsKey(key)){
+this.h$.remove(key);
+return true;
+}return false;
+},"~O");
+
+Clazz.overrideMethod(c$,"get",
+function(entry){
+return entry.key;
+},"java.util.MapEntry");
+
+Clazz.overrideMethod(c$,"iterator",
+function(){
+return new java.util.HashtableIterator(this);
+});
+});
+
+////////////////////////////
+
+Clazz.load([],"java.util.HashtableValueCollection",[],function(){
+c$=Clazz.decorateAsClass(function(){
+Clazz.instantialize(this,arguments);
+},java.util,"HashtableValueCollection",null,java.util.AbstractCollection);
+
+Clazz.makeConstructor(c$,
+function(a){
+this.h$ = a;
+},"java.util.Hashtable");
+Clazz.overrideMethod(c$,"contains",
+function(object){
+return this.h$.contains(object);
+},"~O");
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.h$.elementCount;
+});
+Clazz.overrideMethod(c$,"clear",
+function(){
+this.h$.clear();
+});
+
+Clazz.overrideMethod(c$,"get",
+function(entry){
+return entry.value;
+},"java.util.MapEntry");
+
+Clazz.overrideMethod(c$,"iterator",
+function(){
+return new java.util.HashtableIterator(this);
+});
+});
+////////////////////////////
+
+
+Clazz.load(["java.util.MapEntry"],"java.util.HashtableEntry",[],function(){
+c$=Clazz.decorateAsClass(function(){
+this.next=null;
+this.hashcode=0;
+Clazz.instantialize(this,arguments);
+},java.util,"HashtableEntry",java.util.MapEntry);
+Clazz.overrideConstructor(c$,
+function(a,b){
+this.key = a;
+this.value = b;
+this.hashcode=a.hashCode();
+});
+Clazz.defineMethod(c$,"clone",
+function(){
+var a=Clazz.superCall(this,java.util.HashtableEntry,"clone",[]);
+if(this.next!=null){
+a.next=this.next.clone();
+}
+return a;
+});
+Clazz.overrideMethod(c$,"setValue",
+function(a){
+if(a==null){
+throw new NullPointerException();
+}var b=this.value;
+this.value=a;
+return b;
+},"~O");
+Clazz.defineMethod(c$,"getKeyHash",
+function(){
+return this.key.hashCode();
+});
+Clazz.defineMethod(c$,"equalsKey",
+function(a,b){
+return this.hashcode==(!a.hashCode || a.hashCode())&&this.key.equals(a);
+},"~O,~N");
+Clazz.overrideMethod(c$,"toString",
+function(){
+return this.key+"="+this.value;
+});
+});
+
+
+
+////////////////////////////
+
+
+Clazz.load(["java.util.Dictionary","$.Enumeration","$.HashtableEnumerator","$.Iterator","$.Map","$.MapEntry","$.NoSuchElementException"],"java.util.Hashtable",["java.lang.IllegalArgumentException","$.IllegalStateException","$.NullPointerException","$.StringBuilder","java.util.AbstractCollection","$.AbstractSet","$.Arrays","$.Collections","$.ConcurrentModificationException","java.util.MapEntry.Type","java.util.HashtableEntry"],function(){
+c$=Clazz.decorateAsClass(function(){
+this.elementCount=0;
+this.elementData=null;
+this.loadFactor=0;
+this.threshold=0;
+this.firstSlot=0;
+this.lastSlot=-1;
+this.modCount=0;
+Clazz.instantialize(this,arguments);
+},java.util,"Hashtable",java.util.Dictionary,[java.util.Map,Cloneable,java.io.Serializable]);  
+c$.newEntry=Clazz.defineMethod(c$,"newEntry",
+($fz=function(key,value,hash){
+return new java.util.HashtableEntry(key,value);
+},$fz.isPrivate=true,$fz),"~O,~O,~N");
+Clazz.overrideConstructor(c$,
+function(){
+this.elementCount=0;
+this.elementData=this.newElementArray(11);
+this.firstSlot=this.elementData.length;
+this.loadFactor=0.75;
+this.computeMaxSize();
+});
+Clazz.defineMethod(c$,"newElementArray",
+($fz=function(size){
+return new Array(size);
+},$fz.isPrivate=true,$fz),"~N");
+Clazz.overrideMethod(c$,"clear",
+function(){
+this.elementCount=0;
+for (var i = this.elementData.length; --i >= 0;)
+         this.elementData[i] = null;
+this.modCount++;
+});
+Clazz.defineMethod(c$,"clone",
+function(){
+try{
+var hashtable=Clazz.superCall(this,java.util.Hashtable,"clone",[]);
+hashtable.elementData=this.elementData.clone();
+var entry;
+for(var i=this.elementData.length;--i>=0;){
+if((entry=this.elementData[i])){
+hashtable.elementData[i]=entry.clone();
+}}
+return hashtable;
+}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.defineMethod(c$,"contains",
+function(value){
+if(value==null){
+throw new NullPointerException();
+}for(var i=this.elementData.length;--i>=0;){
+var entry=this.elementData[i];
+while(entry){
+if(value.equals(entry.value)){
+return true;
+}entry=entry.next;
+}
+}
+return false;
+},"~O");
+Clazz.overrideMethod(c$,"containsKey",
+function(key){
+       if(!key.hashCode)  {
+         key.hashCode = function(){return 1};
+         if (!key.equals)
+               key.equals = function(a) {return this == a};
+       }
+return this.getEntry(key)!=null        ;
+},"~O");
+Clazz.overrideMethod(c$,"containsValue",
+function(value){
+return this.contains(value);
+},"~O");
+Clazz.overrideMethod(c$,"elements",
+function(){
+if(this.elementCount==0){
+return java.util.Hashtable.EMPTY_ENUMERATION;
+}
+return new java.util.HashtableEnumerator(false, this);
+});
+Clazz.overrideMethod(c$,"entrySet",
+function(){
+return new java.util.HashtableEntrySet(this);
+});
+Clazz.overrideMethod(c$,"equals",
+function(object){
+if(this===object){
+return true;
+}if(Clazz.instanceOf(object,java.util.Map)){
+var map=object;
+if(this.size()!=map.size()){
+return false;
+}var entries=this.entrySet();
+for(var e,$e=map.entrySet().iterator();$e.hasNext()&&((e=$e.next())||true);){
+if(!entries.contains(e)){
+return false;
+}}
+return true;
+}return false;
+},"~O");
+Clazz.overrideMethod(c$,"get",
+function(key){
+       if(!key.hashCode) { 
+         key.hashCode = function(){return 1};
+       if (!key.equals)
+               key.equals = function(a) {return this == a};
+       }
+var hash=key.hashCode();
+var index=(hash&0x7FFFFFFF)%this.elementData.length;
+var entry=this.elementData[index];
+while(entry){
+if(entry.equalsKey(key,hash)){
+return entry.value;
+}entry=entry.next;
+}
+return null;
+},"~O");
+Clazz.defineMethod(c$,"getEntry",
+function(key){
+var hash=key.hashCode();
+var index=(hash&0x7FFFFFFF)%this.elementData.length;
+var entry=this.elementData[index];
+while(entry){
+if(entry.equalsKey(key,hash)){
+return entry;
+}entry=entry.next;
+}
+return null;
+},"~O");
+Clazz.overrideMethod(c$,"hashCode",
+function(){
+var result=0;
+var it=this.entrySet().iterator();
+while(it.hasNext()){
+var entry=it.next();
+var key=entry.getKey();
+var value=entry.getValue();
+var hash=(key!==this?key.hashCode():0)^(value!==this?(value!=null?value.hashCode():0):0);
+result+=hash;
+}
+return result;
+});
+Clazz.overrideMethod(c$,"isEmpty",
+function(){
+return this.elementCount==0;
+});
+Clazz.overrideMethod(c$,"keys",
+function(){
+if(this.elementCount==0){
+return java.util.Hashtable.EMPTY_ENUMERATION;
+}
+return new java.util.HashtableEnumerator(true, this); 
+});
+Clazz.overrideMethod(c$,"keySet",
+function(){
+return new java.util.HashtableKeySet(this);
+});
+Clazz.overrideMethod(c$,"put",
+function(key,value){
+if(key!=null&&value!=null){
+       if(!key.hashCode)  {
+         key.hashCode = function(){return 1};
+         if (!key.equals)
+               key.equals = function(a) {return this == a};
+       }
+       var hash=key.hashCode();
+       var index=(hash&0x7FFFFFFF)%this.elementData.length;
+       var entry=this.elementData[index];
+       while(entry!=null&&!entry.equalsKey(key,hash)){
+       entry=entry.next;
+}
+if(entry==null){
+this.modCount++;
+if(++this.elementCount>this.threshold){
+this.rehash();
+index=(hash&0x7FFFFFFF)%this.elementData.length;
+}if(index<this.firstSlot){
+this.firstSlot=index;
+}if(index>this.lastSlot){
+this.lastSlot=index;
+}
+
+entry=java.util.Hashtable.newEntry(key,value,hash);
+entry.next=this.elementData[index];
+this.elementData[index]=entry;
+return null;
+}var result=entry.value;
+entry.value=value;
+return result;
+}throw new NullPointerException();
+},"~O,~O");
+Clazz.overrideMethod(c$,"putAll",
+function(map){
+for(var entry,$entry=map.entrySet().iterator();$entry.hasNext()&&((entry=$entry.next())||true);){
+this.put(entry.getKey(),entry.getValue());
+}
+},"java.util.Map");
+
+Clazz.defineMethod(c$,"rehash",
+function(){
+var length=(this.elementData.length<<1)+1;
+if(length==0){
+length=1;
+}var newFirst=length;
+var newLast=-1;
+var newData=this.newElementArray(length);
+for(var i=this.lastSlot+1;--i>=this.firstSlot;){
+var entry=this.elementData[i];
+while(entry!=null){
+var index=(entry.getKeyHash()&0x7FFFFFFF)%length;
+if(index<newFirst){
+newFirst=index;
+}if(index>newLast){
+newLast=index;
+}var next=entry.next;
+entry.next=newData[index];
+newData[index]=entry;
+entry=next;
+}
+}
+this.firstSlot=newFirst;
+this.lastSlot=newLast;
+this.elementData=newData;
+this.computeMaxSize();
+});
+Clazz.overrideMethod(c$,"remove",
+function(key){
+var hash=key.hashCode();
+var index=(hash&0x7FFFFFFF)%this.elementData.length;
+var last=null;
+var entry=this.elementData[index];
+while(entry!=null&&!entry.equalsKey(key,hash)){
+last=entry;
+entry=entry.next;
+}
+if(entry!=null){
+this.modCount++;
+if(last==null){
+this.elementData[index]=entry.next;
+}else{
+last.next=entry.next;
+}this.elementCount--;
+var result=entry.value;
+entry.value=null;
+return result;
+}return null;
+},"~O");
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.elementCount;
+});
+Clazz.overrideMethod(c$,"toString",
+function(){
+if(this.isEmpty()){
+return"{}";
+}var buffer=new StringBuilder(this.size()*28);
+buffer.append('{');
+for(var i=this.lastSlot;i>=this.firstSlot;i--){
+var entry=this.elementData[i];
+while(entry!=null){
+if(entry.key!==this){
+buffer.append(entry.key);
+}else{
+buffer.append("(this Map)");
+}buffer.append('=');
+if(entry.value!==this){
+buffer.append(entry.value);
+}else{
+buffer.append("(this Map)");
+}buffer.append(", ");
+entry=entry.next;
+}
+}
+if(this.elementCount>0){
+buffer.setLength(buffer.length()-2);
+}buffer.append('}');
+return buffer.toString();
+});
+Clazz.overrideMethod(c$,"values",
+function(){
+return new java.util.HashtableValueCollection(this);
+});
+java.util.Hashtable.EMPTY_ENUMERATION = new java.util.HashtableEnumerator();
+});