/** * Find the first unused verse * * @param v11n * the versification to which this reference pertains * @param vit * @param board */ protected OrderedVerseRangeIterator(Versification v11n, Iterator<Key> vit, int[] board) { Set<TalliedVerseRange> output = new TreeSet<TalliedVerseRange>(); Iterator<VerseRange> rit = new VerseRangeIterator(v11n, vit, RestrictionType.NONE); while (rit.hasNext()) { VerseRange range = rit.next(); // Calculate the maximum rank for a verse int rank = 0; Iterator<Key> iter = range.iterator(); while (iter.hasNext()) { Verse verse = (Verse) iter.next(); int temp = board[verse.getOrdinal()]; if (temp > rank) { rank = temp; } } output.add(new TalliedVerseRange(range, rank)); } this.it = output.iterator(); last = null; }
public Iterator<VerseRange> rangeIterator(RestrictionType restrict) { return new VerseRangeIterator(getVersification(), iterator(), restrict); }
@Override public Iterator<VerseRange> rangeIterator(RestrictionType restrict) { if (order == Order.BIBLICAL) { return new VerseRangeIterator(getVersification(), iterator(), restrict); } return new OrderedVerseRangeIterator(getVersification(), iterator(), board); }
/** * Enumerate the subranges in this range * * @param restrict * @return a range iterator */ public Iterator<VerseRange> rangeIterator(RestrictionType restrict) { return new AbstractPassage.VerseRangeIterator(v11n, iterator(), restrict); }