diff --git a/com/xgiovio/NodePositionListTest.java b/com/xgiovio/NodePositionListTest.java index 8069bcb..5a2938e 100644 --- a/com/xgiovio/NodePositionListTest.java +++ b/com/xgiovio/NodePositionListTest.java @@ -4,6 +4,8 @@ import arraylist.ArrayIndexList; import general_utility.test_object; import position.NodePositionList; +import java.util.Iterator; + /** * Created with xgiovio.macbookair. * User: xgiovio @@ -25,6 +27,18 @@ public class NodePositionListTest { a.reverse(); System.out.print(a); + Iterator it = a.iterator(); + System.out.print(it.hasNext()); + System.out.print(it.next()); + System.out.print(it.hasNext()); + System.out.print(it.next()); + System.out.print(it.hasNext()); + System.out.print(it.next()); + System.out.print(it.hasNext()); + System.out.print(it.next()); + System.out.print(it.hasNext()); + + diff --git a/position/NodePositionList.java b/position/NodePositionList.java index 9f2d5f4..e85c286 100644 --- a/position/NodePositionList.java +++ b/position/NodePositionList.java @@ -1,6 +1,10 @@ package position; import exceptions.*; import position.utility.DNode; +import sun.org.mozilla.javascript.internal.ObjToIntMap; + +import java.util.Iterator; +import java.util.NoSuchElementException; /** * Realization of a PositionList using a doubly-linked list of nodes. @@ -187,4 +191,74 @@ public class NodePositionList implements PositionList { } + @Override + public Iterator iterator() { + return new MyIterator(this); + } + + class MyIterator implements Iterator{ + + public MyIterator (NodePositionList structure){ + + new_structure = new NodePositionList(); + if (structure.size() != 0){ + Position temp; + for (temp = structure.first() ; temp!= structure.last() ; temp = structure.next(temp)){ + new_structure.addLast(temp.element()); + } + new_structure.addLast(temp.element()); + } + + } + + @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() { + + } + + NodePositionList new_structure; + Position pos = null; + + + } + + } diff --git a/position/PositionList.java b/position/PositionList.java index 0b2746d..c9ccb65 100644 --- a/position/PositionList.java +++ b/position/PositionList.java @@ -9,7 +9,7 @@ import exceptions.*; //Copyright (c) 2003 Brown University, Providence, RI //Additional modifications and methods by xgiovio -public interface PositionList { +public interface PositionList extends Iterable { public int size(); diff --git a/sequence/ArraySequence.java b/sequence/ArraySequence.java index a3b988b..c485fc7 100644 --- a/sequence/ArraySequence.java +++ b/sequence/ArraySequence.java @@ -7,6 +7,8 @@ import exceptions.InvalidPositionException; import position.Position; import sequence.utility.ArrayPosition; +import java.util.Iterator; + /** * Created with xgiovio.macbookair. * User: xgiovio @@ -283,4 +285,9 @@ public class ArraySequence implements Sequence { } } + + @Override + public Iterator iterator() { + return null; + } } diff --git a/sequence/ArraySequenceFake.java b/sequence/ArraySequenceFake.java index e1de7b1..728663c 100644 --- a/sequence/ArraySequenceFake.java +++ b/sequence/ArraySequenceFake.java @@ -8,6 +8,8 @@ import exceptions.InvalidPositionException; import position.Position; import sequence.utility.DNodeFake; +import java.util.Iterator; + /** * Created with MONSTER. * User: xgiovio @@ -219,6 +221,8 @@ public class ArraySequenceFake extends ArrayIndexList implements Sequence< } } - - + @Override + public Iterator iterator() { + return null; + } }