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);
}
}