package iterables; import iterators.Urn_Iterator; import java.lang.Iterable; import java.util.Iterator; import tests.Urn_Test; /** * * @author J Paul Gibson * @version 1 * *An urn of votes, where each vote is a table of strings, eg:
*
  [["gibson", "smith", "hughes"],
  ["jones", "bell"],
  ["raffy", "lallet"]]
  
* represents three preferential votes with the first vote being -
first preference for gibson, * second preference for smith and third preference for hughes
* Tested by {@link Urn_Test} */ public class Urn implements Iterable{ public MyTableOfStringsReverseIteration[] bulletins; /** * We will iterate over the bulletins in normal order - see {@link Urn_Iterator}, * but the name strings in each bulletin in reverse order - see {@link MyTableOfStringsReverseIteration} * @param votes is the array of bulletins that can be iterated over */ public Urn (MyTableOfStringsReverseIteration [] votes) { bulletins = votes; } public int numberOfVotes(){return bulletins.length;} public Iterator iterator() { return new Urn_Iterator(this); } }