diff options
Diffstat (limited to 'src/jrummikub')
-rw-r--r-- | src/jrummikub/model/StoneSet.java | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/jrummikub/model/StoneSet.java b/src/jrummikub/model/StoneSet.java index d949187..ba96625 100644 --- a/src/jrummikub/model/StoneSet.java +++ b/src/jrummikub/model/StoneSet.java @@ -1,19 +1,24 @@ package jrummikub.model; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; import java.util.List; +import sun.reflect.generics.reflectiveObjects.NotImplementedException; + import jrummikub.util.Pair; /** Class managing {@link Stone}s joined together to form sets */ -public class StoneSet { +public class StoneSet implements Iterable<Stone> { private List<Stone> stones; public StoneSet(Stone stone) { - + stones = Collections.singletonList(stone); } public StoneSet(List<Stone> stones) { - + this.stones = new ArrayList<Stone>(stones); } /** Test for rule conflict within the StoneSet */ @@ -60,4 +65,28 @@ public class StoneSet { return stones.get(i); } + @Override + public Iterator<Stone> iterator() { + final Iterator<Stone> it = stones.iterator(); + + return new Iterator<Stone>(){ + + @Override + public boolean hasNext() { + return it.hasNext(); + } + + @Override + public Stone next() { + return it.next(); + } + + @Override + public void remove() { + // removing stones is impossible + + throw new NotImplementedException(); + }}; + } + } |