// BH 8/25/2014 1:10:59 AM - removed indirect access/inner class business. Clazz.load(["java.util.AbstractCollection","$.Iterator","$.List","$.ListIterator","$.RandomAccess","$.NoSuchElementException"],"java.util.AbstractList",["java.lang.IllegalArgumentException","$.IllegalStateException","$.IndexOutOfBoundsException","$.UnsupportedOperationException","java.util.ConcurrentModificationException"],function(){ c$=Clazz.decorateAsClass(function(){ this.modCount=0; //if(!Clazz.isClassDefined("java.util.AbstractList.SimpleListIterator")){ //java.util.AbstractList.$AbstractList$SimpleListIterator$(); //} //if(!Clazz.isClassDefined("java.util.AbstractList.FullListIterator")){ //java.util.AbstractList.$AbstractList$FullListIterator$(); //} Clazz.instantialize(this,arguments); },java.util,"AbstractList",java.util.AbstractCollection,java.util.List); Clazz.defineMethod(c$,"add", function(location,object){ throw new UnsupportedOperationException(); },"~N,~O"); Clazz.defineMethod(c$,"add", function(object){ this.add(this.size(),object); return true; },"~O"); Clazz.defineMethod(c$,"addAll", function(location,collection){ var it=collection.iterator(); while(it.hasNext()){ this.add(location++,it.next()); } return!collection.isEmpty(); },"~N,java.util.Collection"); Clazz.overrideMethod(c$,"clear", function(){ this.removeRange(0,this.size()); }); Clazz.overrideMethod(c$,"equals", function(object){ if(this===object){ return true; }if(Clazz.instanceOf(object,java.util.List)){ var list=object; if(list.size()!=this.size()){ return false; }var it1=this.iterator(); var it2=list.iterator(); while(it1.hasNext()){ var e1=it1.next(); var e2=it2.next(); if(!(e1==null?e2==null:e1.equals(e2))){ return false; }} return true; }return false; },"~O"); Clazz.overrideMethod(c$,"hashCode", function(){ var result=1; var it=this.iterator(); while(it.hasNext()){ var object=it.next(); result=(31*result)+(object==null?0:object.hashCode()); } return result; }); Clazz.overrideMethod(c$,"indexOf", function(object){ var it=this.listIterator(); if(object!=null){ while(it.hasNext()){ if(object.equals(it.next())){ return it.previousIndex(); }} }else{ while(it.hasNext()){ if(it.next()==null){ return it.previousIndex(); }} }return-1; },"~O"); Clazz.overrideMethod(c$,"iterator", function(){ return new java.util.AbstractListSimpleListIterator(this); // Clazz.innerTypeInstance(java.util.AbstractList.SimpleListIterator,this,null); }); Clazz.overrideMethod(c$,"lastIndexOf", function(object){ var it=this.listIterator(this.size()); if(object!=null){ while(it.hasPrevious()){ if(object.equals(it.previous())){ return it.nextIndex(); }} }else{ while(it.hasPrevious()){ if(it.previous()==null){ return it.nextIndex(); }} }return-1; },"~O"); //Clazz.defineMethod(c$,"listIterator", //function(){ //return this.listIterator(0); //}); Clazz.defineMethod(c$,"listIterator", function(location){ location || (location = 0); return new java.util.AbstractListFullListIterator(this, location);//Clazz.innerTypeInstance(java.util.AbstractList.FullListIterator,this,null,location); },"~N"); Clazz.defineMethod(c$,"remove", function(location){ throw new UnsupportedOperationException(); },"~N"); Clazz.defineMethod(c$,"removeRange", function(start,end){ var it=this.listIterator(start); for(var i=start;i=0; }); Clazz.overrideMethod(c$,"nextIndex", function(){ return this.pos+1; }); Clazz.overrideMethod(c$,"previous", function(){ if(this.expectedModCount==this._list.modCount){ try{ var a=this._list.get(this.pos); this.lastPosition=this.pos; this.pos--; return a; }catch(e){ if(Clazz.instanceOf(e,IndexOutOfBoundsException)){ throw new java.util.NoSuchElementException(); }else{ throw e; } } }throw new java.util.ConcurrentModificationException(); }); Clazz.overrideMethod(c$,"previousIndex", function(){ return this.pos; }); Clazz.overrideMethod(c$,"set", function(a){ if(this.expectedModCount==this._list.modCount){ try{ this._list.set(this.lastPosition,a); }catch(e){ if(Clazz.instanceOf(e,IndexOutOfBoundsException)){ throw new IllegalStateException(); }else{ throw e; } } }else{ throw new java.util.ConcurrentModificationException(); }},"~O"); c$=Clazz.p0p(); //}; Clazz.pu$h(self.c$); c$=Clazz.declareType(java.util.AbstractList,"SubAbstractListRandomAccess",java.util.AbstractList.SubAbstractList,java.util.RandomAccess); c$=Clazz.p0p(); Clazz.pu$h(self.c$); c$=Clazz.decorateAsClass(function(){ this.fullList=null; this.offset=0; this.$size=0; Clazz.instantialize(this,arguments); },java.util.AbstractList,"SubAbstractList",java.util.AbstractList); Clazz.makeConstructor(c$, function(a,b,c){ Clazz.superConstructor(this,java.util.AbstractList.SubAbstractList); this.fullList=a; this.modCount=this.fullList.modCount; this.offset=b; this.$size=c-b; },"java.util.AbstractList,~N,~N"); Clazz.defineMethod(c$,"add", function(a,b){ if(this.modCount==this.fullList.modCount){ if(0<=a&&a<=this.$size){ this.fullList.add(a+this.offset,b); this.$size++; this.modCount=this.fullList.modCount; }else{ throw new IndexOutOfBoundsException(); }}else{ throw new java.util.ConcurrentModificationException(); }},"~N,~O"); Clazz.defineMethod(c$,"addAll", function(a,b){ if(this.modCount==this.fullList.modCount){ if(0<=a&&a<=this.$size){ var c=this.fullList.addAll(a+this.offset,b); if(c){ this.$size+=b.size(); this.modCount=this.fullList.modCount; }return c; }throw new IndexOutOfBoundsException(); }throw new java.util.ConcurrentModificationException(); },"~N,java.util.Collection"); Clazz.defineMethod(c$,"addAll", function(a){ if(this.modCount==this.fullList.modCount){ var b=this.fullList.addAll(this.offset+this.$size,a); if(b){ this.$size+=a.size(); this.modCount=this.fullList.modCount; }return b; }throw new java.util.ConcurrentModificationException(); },"java.util.Collection"); Clazz.defineMethod(c$,"get", function(a){ if(this.modCount==this.fullList.modCount){ if(0<=a&&a=this.start; }); Clazz.defineMethod(c$,"next", function(){ if(this.iterator.nextIndex()=this.start){ return this.iterator.previous(); }throw new java.util.NoSuchElementException(); }); Clazz.defineMethod(c$,"previousIndex", function(){ var a=this.iterator.previousIndex(); if(a>=this.start){ return a-this.start; }return-1; }); Clazz.defineMethod(c$,"remove", function(){ this.iterator.remove(); this.subList.sizeChanged(false); this.end--; }); Clazz.defineMethod(c$,"set", function(a){ this.iterator.set(a); },"~O"); c$=Clazz.p0p(); c$=Clazz.p0p(); });