//BH note: a declared static superclass must come before a static class referencing it Clazz.load(["java.util.AbstractList","$.AbstractMap","$.AbstractSet","$.Collection","$.Iterator","$.List","$.ListIterator","$.Map","$.RandomAccess","$.Set","$.SortedMap","$.SortedSet","java.lang.NullPointerException","$.UnsupportedOperationException","java.lang.reflect.Array"],"java.util.Collections",["java.lang.ArrayIndexOutOfBoundsException","$.ClassCastException","$.IllegalArgumentException","$.IndexOutOfBoundsException","java.util.ArrayList","$.Arrays","$.Enumeration","java.util.Map.Entry","java.util.NoSuchElementException","$.Random"],function(){ c$=Clazz.declareType(java.util,"Collections"); c$.binarySearch=Clazz.defineMethod(c$,"binarySearch", function(list,object){ if(list==null){ throw new NullPointerException(); }if(list.isEmpty()){ return-1; }var key=object; if(!(Clazz.instanceOf(list,java.util.RandomAccess))){ var it=list.listIterator(); while(it.hasNext()){ var result; if((result=key.compareTo(it.next()))<=0){ if(result==0){ return it.previousIndex(); }return-it.previousIndex()-1; }} return-list.size()-1; }var low=0; var mid=list.size(); var high=mid-1; var result=-1; while(low<=high){ mid=(low+high)>>1; if((result=key.compareTo(list.get(mid)))>0){ low=mid+1; }else if(result==0){ return mid; }else{ high=mid-1; }} return-mid-(result<0?1:2); },"java.util.List,~O"); c$.binarySearch=Clazz.defineMethod(c$,"binarySearch", function(list,object,comparator){ if(comparator==null){ return java.util.Collections.binarySearch(list,object); }if(!(Clazz.instanceOf(list,java.util.RandomAccess))){ var it=list.listIterator(); while(it.hasNext()){ var result; if((result=comparator.compare(object,it.next()))<=0){ if(result==0){ return it.previousIndex(); }return-it.previousIndex()-1; }} return-list.size()-1; }var low=0; var mid=list.size(); var high=mid-1; var result=-1; while(low<=high){ mid=(low+high)>>1; if((result=comparator.compare(object,list.get(mid)))>0){ low=mid+1; }else if(result==0){ return mid; }else{ high=mid-1; }} return-mid-(result<0?1:2); },"java.util.List,~O,java.util.Comparator"); c$.copy=Clazz.defineMethod(c$,"copy", function(destination,source){ if(destination.size()0){ min=next; }} return min; },"java.util.Collection"); c$.min=Clazz.defineMethod(c$,"min", function(collection,comparator){ var it=collection.iterator(); var min=it.next(); while(it.hasNext()){ var next=it.next(); if(comparator.compare(min,next)>0){ min=next; }} return min; },"java.util.Collection,java.util.Comparator"); c$.nCopies=Clazz.defineMethod(c$,"nCopies", function(length,object){ return new java.util.Collections.CopiesList(length,object); },"~N,~O"); c$.reverse=Clazz.defineMethod(c$,"reverse", function(list){ var size=list.size(); var front=list.listIterator(); var back=list.listIterator(size); for(var i=0;i0;i--){ var index=random.nextInt()%(i+1); if(index<0){ index=-index; }var temp=array[i]; array[i]=array[index]; array[index]=temp; } var i=0; var it=list.listIterator(); while(it.hasNext()){ it.next(); it.set(array[i++]); } }else{ var rawList=list; for(var i=rawList.size()-1;i>0;i--){ var index=random.nextInt()%(i+1); if(index<0){ index=-index; }rawList.set(index,rawList.set(i,rawList.get(index))); } }},"java.util.List,java.util.Random"); c$.singleton=Clazz.defineMethod(c$,"singleton", function(object){ return new java.util.Collections.SingletonSet(object); },"~O"); c$.singletonList=Clazz.defineMethod(c$,"singletonList", function(object){ return new java.util.Collections.SingletonList(object); },"~O"); c$.singletonMap=Clazz.defineMethod(c$,"singletonMap", function(key,value){ return new java.util.Collections.SingletonMap(key,value); },"~O,~O"); c$.sort=Clazz.defineMethod(c$,"sort", function(list){ var array=list.toArray(); java.util.Arrays.sort(array); var i=0; var it=list.listIterator(); while(it.hasNext()){ it.next(); it.set(array[i++]); } },"java.util.List"); c$.sort=Clazz.defineMethod(c$,"sort", function(list,comparator){ var array=list.toArray(new Array(list.size())); java.util.Arrays.sort(array,comparator); var i=0; var it=list.listIterator(); while(it.hasNext()){ it.next(); it.set(array[i++]); } },"java.util.List,java.util.Comparator"); c$.swap=Clazz.defineMethod(c$,"swap", function(list,index1,index2){ if(list==null){ throw new NullPointerException(); }if(index1==index2){ return; }var rawList=list; rawList.set(index2,rawList.set(index1,rawList.get(index2))); },"java.util.List,~N,~N"); c$.replaceAll=Clazz.defineMethod(c$,"replaceAll", function(list,obj,obj2){ var index; var found=false; while((index=list.indexOf(obj))>-1){ found=true; list.set(index,obj2); } return found; },"java.util.List,~O,~O"); c$.rotate=Clazz.defineMethod(c$,"rotate", function(lst,dist){ var list=lst; var size=list.size(); if(size==0){ return; }var normdist; if(dist>0){ normdist=dist%size; }else{ normdist=size-((dist%size)*(-1)); }if(normdist==0||normdist==size){ return; }if(Clazz.instanceOf(list,java.util.RandomAccess)){ var temp=list.get(0); var index=0; var beginIndex=0; for(var i=0;isize){ return-1; }if(sublistSize==0){ return 0; }var firstObj=sublist.get(0); var index=list.indexOf(firstObj); if(index==-1){ return-1; }while(index=sublistSize)){ var listIt=list.listIterator(index); if((firstObj==null)?listIt.next()==null:firstObj.equals(listIt.next())){ var sublistIt=sublist.listIterator(1); var difFound=false; while(sublistIt.hasNext()){ var element=sublistIt.next(); if(!listIt.hasNext()){ return-1; }if((element==null)?listIt.next()!=null:!element.equals(listIt.next())){ difFound=true; break; }} if(!difFound){ return index; }}index++; } return-1; },"java.util.List,java.util.List"); c$.lastIndexOfSubList=Clazz.defineMethod(c$,"lastIndexOfSubList", function(list,sublist){ var sublistSize=sublist.size(); var size=list.size(); if(sublistSize>size){ return-1; }if(sublistSize==0){ return size; }var lastObj=sublist.get(sublistSize-1); var index=list.lastIndexOf(lastObj); while((index>-1)&&(index+1>=sublistSize)){ var listIt=list.listIterator(index+1); if((lastObj==null)?listIt.previous()==null:lastObj.equals(listIt.previous())){ var sublistIt=sublist.listIterator(sublistSize-1); var difFound=false; while(sublistIt.hasPrevious()){ var element=sublistIt.previous(); if(!listIt.hasPrevious()){ return-1; }if((element==null)?listIt.previous()!=null:!element.equals(listIt.previous())){ difFound=true; break; }} if(!difFound){ return listIt.nextIndex(); }}index--; } return-1; },"java.util.List,java.util.List"); c$.list=Clazz.defineMethod(c$,"list", function(enumeration){ var list=new java.util.ArrayList(); while(enumeration.hasMoreElements()){ list.add(enumeration.nextElement()); } return list; },"java.util.Enumeration"); c$.synchronizedCollection=Clazz.defineMethod(c$,"synchronizedCollection", function(collection){ if(collection==null){ throw new NullPointerException(); }return new java.util.Collections.SynchronizedCollection(collection); },"java.util.Collection"); c$.synchronizedList=Clazz.defineMethod(c$,"synchronizedList", function(list){ if(list==null){ throw new NullPointerException(); }if(Clazz.instanceOf(list,java.util.RandomAccess)){ return new java.util.Collections.SynchronizedRandomAccessList(list); }return new java.util.Collections.SynchronizedList(list); },"java.util.List"); c$.synchronizedMap=Clazz.defineMethod(c$,"synchronizedMap", function(map){ if(map==null){ throw new NullPointerException(); }return new java.util.Collections.SynchronizedMap(map); },"java.util.Map"); c$.synchronizedSet=Clazz.defineMethod(c$,"synchronizedSet", function(set){ if(set==null){ throw new NullPointerException(); }return new java.util.Collections.SynchronizedSet(set); },"java.util.Set"); c$.synchronizedSortedMap=Clazz.defineMethod(c$,"synchronizedSortedMap", function(map){ if(map==null){ throw new NullPointerException(); }return new java.util.Collections.SynchronizedSortedMap(map); },"java.util.SortedMap"); c$.synchronizedSortedSet=Clazz.defineMethod(c$,"synchronizedSortedSet", function(set){ if(set==null){ throw new NullPointerException(); }return new java.util.Collections.SynchronizedSortedSet(set); },"java.util.SortedSet"); c$.unmodifiableCollection=Clazz.defineMethod(c$,"unmodifiableCollection", function(collection){ if(collection==null){ throw new NullPointerException(); }return new java.util.Collections.UnmodifiableCollection(collection); },"java.util.Collection"); c$.unmodifiableList=Clazz.defineMethod(c$,"unmodifiableList", function(list){ if(list==null){ throw new NullPointerException(); }if(Clazz.instanceOf(list,java.util.RandomAccess)){ return new java.util.Collections.UnmodifiableRandomAccessList(list); }return new java.util.Collections.UnmodifiableList(list); },"java.util.List"); c$.unmodifiableMap=Clazz.defineMethod(c$,"unmodifiableMap", function(map){ if(map==null){ throw new NullPointerException(); }return new java.util.Collections.UnmodifiableMap(map); },"java.util.Map"); c$.unmodifiableSet=Clazz.defineMethod(c$,"unmodifiableSet", function(set){ if(set==null){ throw new NullPointerException(); }return new java.util.Collections.UnmodifiableSet(set); },"java.util.Set"); c$.unmodifiableSortedMap=Clazz.defineMethod(c$,"unmodifiableSortedMap", function(map){ if(map==null){ throw new NullPointerException(); }return new java.util.Collections.UnmodifiableSortedMap(map); },"java.util.SortedMap"); c$.unmodifiableSortedSet=Clazz.defineMethod(c$,"unmodifiableSortedSet", function(set){ if(set==null){ throw new NullPointerException(); }return new java.util.Collections.UnmodifiableSortedSet(set); },"java.util.SortedSet"); c$.frequency=Clazz.defineMethod(c$,"frequency", function(c,o){ if(c==null){ throw new NullPointerException(); }if(c.isEmpty()){ return 0; } var result=0; var itr=c.iterator(); while(itr.hasNext()){ var e=itr.next(); if(o==null?e==null:o.equals(e)){ result++; }} return result; },"java.util.Collection,~O"); c$.emptyList=Clazz.defineMethod(c$,"emptyList", function(){ return java.util.Collections.EMPTY_LIST; }); c$.emptySet=Clazz.defineMethod(c$,"emptySet", function(){ return java.util.Collections.EMPTY_SET; }); c$.emptyMap=Clazz.defineMethod(c$,"emptyMap", function(){ return java.util.Collections.EMPTY_MAP; }); c$.checkedCollection=Clazz.defineMethod(c$,"checkedCollection", function(c,type){ return new java.util.Collections.CheckedCollection(c,type); },"java.util.Collection,Class"); c$.checkedMap=Clazz.defineMethod(c$,"checkedMap", function(m,keyType,valueType){ return new java.util.Collections.CheckedMap(m,keyType,valueType); },"java.util.Map,Class,Class"); c$.checkedList=Clazz.defineMethod(c$,"checkedList", function(list,type){ if(Clazz.instanceOf(list,java.util.RandomAccess)){ return new java.util.Collections.CheckedRandomAccessList(list,type); }return new java.util.Collections.CheckedList(list,type); },"java.util.List,Class"); c$.checkedSet=Clazz.defineMethod(c$,"checkedSet", function(s,type){ return new java.util.Collections.CheckedSet(s,type); },"java.util.Set,Class"); c$.checkedSortedMap=Clazz.defineMethod(c$,"checkedSortedMap", function(m,keyType,valueType){ return new java.util.Collections.CheckedSortedMap(m,keyType,valueType); },"java.util.SortedMap,Class,Class"); c$.checkedSortedSet=Clazz.defineMethod(c$,"checkedSortedSet", function(s,type){ return new java.util.Collections.CheckedSortedSet(s,type); },"java.util.SortedSet,Class"); c$.addAll=Clazz.defineMethod(c$,"addAll", function(c,a){ var modified=false; for(var i=0;ic1.size()){ var tmp=c1; c1=c2; c2=tmp; }var it=c1.iterator(); while(it.hasNext()){ if(c2.contains(it.next())){ return false; }} return true; },"java.util.Collection,java.util.Collection"); c$.checkType=Clazz.defineMethod(c$,"checkType", function(obj,type){ if(!type.isInstance(obj)){ throw new ClassCastException("Attempt to insert "+obj.getClass()+" element into collection with element type "+type); }return obj; },"~O,Class"); c$.$Collections$1$=function(c){ Clazz.pu$h(self.c$); c$=Clazz.decorateAsClass(function(){ Clazz.prepareCallback(this,arguments); this.it=null; Clazz.instantialize(this,arguments); },java.util,"Collections$1",null,java.util.Enumeration); Clazz.prepareFields(c$,function(){ this.it=c.iterator(); }); Clazz.defineMethod(c$,"hasMoreElements", function(){ return this.it.hasNext(); }); Clazz.defineMethod(c$,"nextElement", function(){ return this.it.next(); }); c$=Clazz.p0p(); }; Clazz.pu$h(self.c$); c$=Clazz.decorateAsClass(function(){ this.n=0; this.element=null; Clazz.instantialize(this,arguments); },java.util.Collections,"CopiesList",java.util.AbstractList,java.io.Serializable); Clazz.makeConstructor(c$, function(a,b){ Clazz.superConstructor(this,java.util.Collections.CopiesList,[]); if(a<0){ throw new IllegalArgumentException(); }this.n=a; this.element=b; },"~N,~O"); Clazz.overrideMethod(c$,"contains", function(a){ return this.element==null?a==null:this.element.equals(a); },"~O"); Clazz.overrideMethod(c$,"size", function(){ return this.n; }); Clazz.overrideMethod(c$,"get", function(a){ if(0<=a&&a=0;){ b[d]=c.next(); } return b; }); Clazz.defineMethod(c$,"toArray", function(a){ var b=this.c.size(); var c=0; var d=this.iterator(); if(b>a.length){ var e=a.getClass().getComponentType(); a=java.lang.reflect.Array.newInstance(e,b); }while(c