public static Key nextChapter(Key key) { Verse verse; // Get verse to work with if (Utils.isVerse(key)) { verse = (Verse) key; } else if (Utils.isVerseRange(key)) { verse = ((VerseRange) key).getEnd(); } else { throw new RuntimeException("Unsupported Type for next chapter key"); } // Check if end of Bible if (verse.getLastVerseInBook().equals(verse.getLastVerseInChapter()) && verse.getBook().equals(BibleBook.REV)) { return key; } else { return new VerseRange( verse.getLastVerseInChapter().add(1).getFirstVerseInChapter(), verse.getLastVerseInChapter().add(1).getLastVerseInChapter()); } // if(TextUtility.isVerse((key))){ // //Does not return next but simply returns current chapter // return new VerseRange(((Verse) key).getFirstVerseInChapter(), ((Verse) // key).getLastVerseInChapter()); // } else if (TextUtility.isVerseRange((key))) { // //Else just the chapter reference // if (((VerseRange) key).getEnd().getLastVerseInBook().equals(((VerseRange) key).getEnd()) // && ((VerseRange) key).getEnd().getBook().equals(BibleBook.REV)){ // return key; // } // return new VerseRange(((VerseRange) // key).getEnd().getLastVerseInChapter().add(1),((VerseRange) // key).getEnd().getLastVerseInChapter().add(1).getLastVerseInChapter()); // } else { // throw new RuntimeException("Unsupported Type for next chapter key"); // } }