JAL-1807
[jalview.git] / site / j2s / java / util / LinkedHashMap.js
diff --git a/site/j2s/java/util/LinkedHashMap.js b/site/j2s/java/util/LinkedHashMap.js
new file mode 100644 (file)
index 0000000..ccf557e
--- /dev/null
@@ -0,0 +1,342 @@
+Clazz.load(["java.util.HashMap"],"java.util.LinkedHashMap",["java.lang.IllegalStateException","java.util.AbstractCollection","$.AbstractSet","java.util.MapEntry.Type","java.util.NoSuchElementException"],function(){
+c$=Clazz.decorateAsClass(function(){
+this.accessOrder=false;
+this.head=null;
+this.tail=null;
+Clazz.instantialize(this,arguments);
+},java.util,"LinkedHashMap",java.util.HashMap);
+Clazz.makeConstructor(c$,
+function(){
+Clazz.superConstructor(this,java.util.LinkedHashMap);
+this.accessOrder=false;
+this.head=null;
+});
+Clazz.makeConstructor(c$,
+function(s){
+Clazz.superConstructor(this,java.util.LinkedHashMap,[s]);
+this.accessOrder=false;
+this.head=null;
+},"~N");
+Clazz.makeConstructor(c$,
+function(s,lf){
+Clazz.superConstructor(this,java.util.LinkedHashMap,[s,lf]);
+this.accessOrder=false;
+this.head=null;
+this.tail=null;
+},"~N,~N");
+Clazz.makeConstructor(c$,
+function(s,lf,order){
+Clazz.superConstructor(this,java.util.LinkedHashMap,[s,lf]);
+this.accessOrder=order;
+this.head=null;
+this.tail=null;
+},"~N,~N,~B");
+Clazz.makeConstructor(c$,
+function(m){
+Clazz.superConstructor(this,java.util.LinkedHashMap,[]);
+this.accessOrder=false;
+this.head=null;
+this.tail=null;
+this.putAll(m);
+},"java.util.Map");
+Clazz.overrideMethod(c$,"newElementArray",
+function(s){
+return new Array(s);
+},"~N");
+Clazz.overrideMethod(c$,"get",
+function(key){
+var m=this.getEntry(key);
+if(m==null){
+return null;
+}if(this.accessOrder&&this.tail!==m){
+var p=m.chainBackward;
+var n=m.chainForward;
+n.chainBackward=p;
+if(p!=null){
+p.chainForward=n;
+}else{
+this.head=n;
+}m.chainForward=null;
+m.chainBackward=this.tail;
+this.tail.chainForward=m;
+this.tail=m;
+}return m.value;
+},"~O");
+Clazz.overrideMethod(c$,"createEntry",
+function(key,index,value){
+var m=new java.util.LinkedHashMap.LinkedHashMapEntry(key,value);
+m.next=this.elementData[index];
+this.elementData[index]=m;
+this.linkEntry(m);
+return m;
+},"~O,~N,~O");
+Clazz.overrideMethod(c$,"put",
+function(key,value){
+var index=this.getModuloHash(key);
+var m=this.findEntry(key,index);
+if(m==null){
+this.modCount++;
+if(++this.elementCount>this.threshold){
+this.rehash();
+index=key==null?0:(key.hashCode()&0x7FFFFFFF)%this.elementData.length;
+}m=this.createEntry(key,index,null);
+}else{
+this.linkEntry(m);
+}var result=m.value;
+m.value=value;
+if(this.removeEldestEntry(this.head)){
+this.remove(this.head.key);
+}return result;
+},"~O,~O");
+Clazz.defineMethod(c$,"linkEntry",
+function(m){
+if(this.tail===m){
+return;
+}if(this.head==null){
+this.head=this.tail=m;
+return;
+}var p=m.chainBackward;
+var n=m.chainForward;
+if(p==null){
+if(n!=null){
+if(this.accessOrder){
+this.head=n;
+n.chainBackward=null;
+m.chainBackward=this.tail;
+m.chainForward=null;
+this.tail.chainForward=m;
+this.tail=m;
+}}else{
+m.chainBackward=this.tail;
+m.chainForward=null;
+this.tail.chainForward=m;
+this.tail=m;
+}return;
+}if(n==null){
+return;
+}if(this.accessOrder){
+p.chainForward=n;
+n.chainBackward=p;
+m.chainForward=null;
+m.chainBackward=this.tail;
+this.tail.chainForward=m;
+this.tail=m;
+}},"java.util.LinkedHashMap.LinkedHashMapEntry");
+Clazz.overrideMethod(c$,"entrySet",
+function(){
+return new java.util.LinkedHashMap.LinkedHashMapEntrySet(this);
+});
+Clazz.overrideMethod(c$,"keySet",
+function(){
+if(this.$keySet==null){
+this.$keySet=((Clazz.isClassDefined("java.util.LinkedHashMap$1")?0:java.util.LinkedHashMap.$LinkedHashMap$1$()),Clazz.innerTypeInstance(java.util.LinkedHashMap$1,this,null));
+}return this.$keySet;
+});
+Clazz.overrideMethod(c$,"values",
+function(){
+if(this.valuesCollection==null){
+this.valuesCollection=((Clazz.isClassDefined("java.util.LinkedHashMap$2")?0:java.util.LinkedHashMap.$LinkedHashMap$2$()),Clazz.innerTypeInstance(java.util.LinkedHashMap$2,this,null));
+}return this.valuesCollection;
+});
+Clazz.overrideMethod(c$,"remove",
+function(key){
+var m=this.removeEntry(key);
+if(m==null){
+return null;
+}var p=m.chainBackward;
+var n=m.chainForward;
+if(p!=null){
+p.chainForward=n;
+}else{
+this.head=n;
+}if(n!=null){
+n.chainBackward=p;
+}else{
+this.tail=p;
+}return m.value;
+},"~O");
+Clazz.defineMethod(c$,"removeEldestEntry",
+function(eldest){
+return false;
+},"java.util.Map.Entry");
+Clazz.defineMethod(c$,"clear",
+function(){
+Clazz.superCall(this,java.util.LinkedHashMap,"clear",[]);
+this.head=this.tail=null;
+});
+Clazz.defineMethod(c$,"clone",
+function(){
+var map=Clazz.superCall(this,java.util.LinkedHashMap,"clone",[]);
+map.clear();
+for(var entry,$entry=this.entrySet().iterator();$entry.hasNext()&&((entry=$entry.next())||true);){
+map.put(entry.getKey(),entry.getValue());
+}
+return map;
+});
+c$.$LinkedHashMap$1$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$1",java.util.AbstractSet);
+Clazz.overrideMethod(c$,"contains",
+function(object){
+return this.b$["java.util.LinkedHashMap"].containsKey(object);
+},"~O");
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.b$["java.util.LinkedHashMap"].size();
+});
+Clazz.overrideMethod(c$,"clear",
+function(){
+this.b$["java.util.LinkedHashMap"].clear();
+});
+Clazz.overrideMethod(c$,"remove",
+function(key){
+if(this.b$["java.util.LinkedHashMap"].containsKey(key)){
+this.b$["java.util.LinkedHashMap"].remove(key);
+return true;
+}return false;
+},"~O");
+Clazz.overrideMethod(c$,"iterator",
+function(){
+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"]);
+});
+c$=Clazz.p0p();
+};
+c$.$LinkedHashMap$1$1$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$1$1",null,java.util.MapEntry.Type);
+Clazz.overrideMethod(c$,"get",
+function(entry){
+return entry.key;
+},"java.util.MapEntry");
+c$=Clazz.p0p();
+};
+c$.$LinkedHashMap$2$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$2",java.util.AbstractCollection);
+Clazz.overrideMethod(c$,"contains",
+function(object){
+return this.b$["java.util.LinkedHashMap"].containsValue(object);
+},"~O");
+Clazz.overrideMethod(c$,"size",
+function(){
+return this.b$["java.util.LinkedHashMap"].size();
+});
+Clazz.overrideMethod(c$,"clear",
+function(){
+this.b$["java.util.LinkedHashMap"].clear();
+});
+Clazz.overrideMethod(c$,"iterator",
+function(){
+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"]);
+});
+c$=Clazz.p0p();
+};
+c$.$LinkedHashMap$2$1$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$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.declareType(java.util.LinkedHashMap,"LinkedHashIterator",java.util.HashMap.HashMapIterator);
+Clazz.makeConstructor(c$,
+function(a,b){
+Clazz.superConstructor(this,java.util.LinkedHashMap.LinkedHashIterator,[a,b]);
+this.entry=b.head;
+},"java.util.MapEntry.Type,java.util.LinkedHashMap");
+Clazz.overrideMethod(c$,"hasNext",
+function(){
+return(this.entry!=null);
+});
+Clazz.overrideMethod(c$,"next",
+function(){
+this.checkConcurrentMod();
+if(!this.hasNext()){
+throw new java.util.NoSuchElementException();
+}var a=this.type.get(this.entry);
+this.lastEntry=this.entry;
+this.entry=(this.entry).chainForward;
+this.canRemove=true;
+return a;
+});
+Clazz.overrideMethod(c$,"remove",
+function(){
+this.checkConcurrentMod();
+if(!this.canRemove){
+throw new IllegalStateException();
+}this.canRemove=false;
+this.associatedMap.modCount++;
+var a=this.associatedMap.getModuloHash(this.lastEntry.key);
+var b=this.associatedMap.elementData[a];
+if(b===this.lastEntry){
+this.associatedMap.elementData[a]=this.lastEntry.next;
+}else{
+while(b.next!=null){
+if(b.next===this.lastEntry){
+break;
+}b=b.next;
+}
+b.next=this.lastEntry.next;
+}var c=this.lastEntry;
+var d=c.chainBackward;
+var e=c.chainForward;
+var f=this.associatedMap;
+if(d!=null){
+d.chainForward=e;
+if(e!=null){
+e.chainBackward=d;
+}else{
+f.tail=d;
+}}else{
+f.head=e;
+if(e!=null){
+e.chainBackward=null;
+}else{
+f.tail=null;
+}}this.associatedMap.elementCount--;
+this.expectedModCount++;
+});
+c$=Clazz.p0p();
+Clazz.pu$h(self.c$);
+c$=Clazz.declareType(java.util.LinkedHashMap,"LinkedHashMapEntrySet",java.util.HashMap.HashMapEntrySet);
+Clazz.overrideMethod(c$,"iterator",
+function(){
+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());
+});
+c$.$LinkedHashMap$LinkedHashMapEntrySet$1$=function(){
+Clazz.pu$h(self.c$);
+c$=Clazz.declareAnonymous(java.util,"LinkedHashMap$LinkedHashMapEntrySet$1",null,java.util.MapEntry.Type);
+Clazz.overrideMethod(c$,"get",
+function(a){
+return a;
+},"java.util.MapEntry");
+c$=Clazz.p0p();
+};
+c$=Clazz.p0p();
+Clazz.pu$h(self.c$);
+c$=Clazz.decorateAsClass(function(){
+this.chainForward=null;
+this.chainBackward=null;
+Clazz.instantialize(this,arguments);
+},java.util.LinkedHashMap,"LinkedHashMapEntry",java.util.HashMap.Entry);
+Clazz.makeConstructor(c$,
+function(a,b){
+Clazz.superConstructor(this,java.util.LinkedHashMap.LinkedHashMapEntry,[a,b]);
+this.chainForward=null;
+this.chainBackward=null;
+},"~O,~O");
+Clazz.defineMethod(c$,"clone",
+function(){
+var a=Clazz.superCall(this,java.util.LinkedHashMap.LinkedHashMapEntry,"clone",[]);
+a.chainBackward=this.chainBackward;
+a.chainForward=this.chainForward;
+var b=a.next;
+if(b!=null){
+a.next=b.clone();
+}return a;
+});
+c$=Clazz.p0p();
+});