Clazz.load(["java.util.AbstractList"],"java.util.AbstractSequentialList",["java.lang.IndexOutOfBoundsException"],function(){ c$=Clazz.declareType(java.util,"AbstractSequentialList",java.util.AbstractList); Clazz.defineMethod(c$,"add", function(location,object){ this.listIterator(location).add(object); },"~N,~O"); Clazz.defineMethod(c$,"addAll", function(location,collection){ var it=this.listIterator(location); var colIt=collection.iterator(); var next=it.nextIndex(); while(colIt.hasNext()){ it.add(colIt.next()); it.previous(); } return next!=it.nextIndex(); },"~N,java.util.Collection"); Clazz.overrideMethod(c$,"get", function(location){ try{ return this.listIterator(location).next(); }catch(e){ if(Clazz.instanceOf(e,java.util.NoSuchElementException)){ throw new IndexOutOfBoundsException(); }else{ throw e; } } },"~N"); Clazz.overrideMethod(c$,"iterator", function(){ return this.listIterator(0); }); Clazz.defineMethod(c$,"remove", function(location){ try{ var it=this.listIterator(location); var result=it.next(); it.remove(); return result; }catch(e){ if(Clazz.instanceOf(e,java.util.NoSuchElementException)){ throw new IndexOutOfBoundsException(); }else{ throw e; } } },"~N"); Clazz.overrideMethod(c$,"set", function(location,object){ var it=this.listIterator(location); var result=it.next(); it.set(object); return result; },"~N,~O"); });