public synchronized Iterator<Key> iterator() { return ref.iterator(); }
public Iterator<Key> iterator() { return ref.iterator(); }
public boolean containsAll(Passage that) { if (that instanceof RangedPassage) { Iterator<VerseRange> iter = null; iter = ((RangedPassage) that).rangeIterator(RestrictionType.NONE); while (iter.hasNext()) { if (!contains(iter.next())) { return false; } } } else { Iterator<Key> iter = that.iterator(); while (iter.hasNext()) { if (!contains(iter.next())) { return false; } } } return true; }
/** * Maps a whole passage, and does so verse by verse. We can't do any better, since, we may for * example have: * Ps.1.1-Ps.1.10 => Ps.1.2-Ps.1.11 so one would think we can simply map each of the start and end verses. * However, this would be inaccurate since verse 9 might map to verse 12, 13, etc. * * @param key the key if the source versification * @param target the target versification * @return the new key in the new versification */ public Passage map(final Passage key, final Versification target) { if (key.getVersification().equals(target)) { return key; } Passage newPassage = new RangedPassage(target); Iterator<Key> verses = key.iterator(); while (verses.hasNext()) { Verse verse = (Verse) verses.next(); newPassage.addAll(this.mapVerse(verse, target)); } return newPassage; }
Iterator<Key> passageKeys = passageOfInterest.iterator(); while (passageKeys.hasNext()) { Key singleKey = passageKeys.next();