package com.quran.labs.androidquran.data;
public class SuraAyahIterator {
private SuraAyah start;
private SuraAyah end;
private boolean started;
private int curSura;
private int curAyah;
public SuraAyahIterator(SuraAyah start, SuraAyah end) {
// Sanity check
if (start.compareTo(end) <= 0) {
this.start = start;
this.end = end;
} else {
this.start = end;
this.end = start;
}
reset();
}
private void reset() {
curSura = start.sura;
curAyah = start.ayah;
started = false;
}
public int getSura() {
return curSura;
}
public int getAyah() {
return curAyah;
}
private boolean hasNext() {
return !started || curSura < end.sura || curAyah < end.ayah;
}
public boolean next() {
if (!started) {
return started = true;
} else if (!hasNext()) {
return false;
}
if (curAyah < QuranInfo.getNumAyahs(curSura)) {
curAyah++;
} else {
curAyah = 1;
curSura++;
}
return true;
}
}