package railo.runtime.type.util; import java.util.List; import java.util.ListIterator; import java.util.NoSuchElementException; public class ListIteratorImpl implements ListIterator { private static final int UNDEFINED = Integer.MIN_VALUE; private List list; private int index=-1; private int current=UNDEFINED; /** * Constructor of the class * @param arr * @param index */ public ListIteratorImpl(List list, int index){ this.list=list; this.index=index-1; } @Override public void add(Object o) { list.add(++index,o); } public void remove() { if(current==UNDEFINED)throw new IllegalStateException(); list.remove(current); current=UNDEFINED; } public void set(Object o) { if(current==UNDEFINED) throw new IllegalStateException(); list.set(current, o); } ///////////// public boolean hasNext() { return list.size()>index+1; } public boolean hasPrevious() { return index>-1; } public int previousIndex() { return index; } public int nextIndex() { return index+1; } public Object previous() { if(!hasPrevious()) throw new NoSuchElementException(); current=index; return list.get(index--); } public Object next() { if(!hasNext()) throw new NoSuchElementException(); return list.get(current=++index); } }