package iterator; import exceptions.BoundaryViolationException; import position.Position; import position.PositionList; import java.util.Iterator; import java.util.NoSuchElementException; /** * Created with MONSTER. * User: xgiovio * Date: 06/04/2014 * Time: 21:06 */ //iterator implementation with cursor for PositionList data structures. public class ElementIterator implements Iterator { public ElementIterator (PositionList structure){ new_structure = structure; } @Override public boolean hasNext() { if (pos == null){ if (new_structure. size() <= 0){ return false; } else { return true; } } else { try { new_structure.next(pos); return true; } catch (BoundaryViolationException err){ return false; } } } @Override public E next() throws NoSuchElementException { if (hasNext()){ if (pos == null){ pos = new_structure.first(); }else { pos = new_structure.next(pos); } return pos.element(); } else{ throw new NoSuchElementException(); } } @Override public void remove() { throw new UnsupportedOperationException (); } PositionList new_structure = null; Position pos = null; }