public static Key prevChapter(Key key) { Verse verse; // Get verse to work with if (Utils.isVerse(key)) { verse = (Verse) key; } else if (Utils.isVerseRange(key)) { verse = ((VerseRange) key).getStart(); } else { throw new RuntimeException("Unsupported Type for next chapter key"); } // Check if start of Bible if ((verse.getChapter() == 1 && verse.getBook().equals(BibleBook.GEN))) { return key; } else { return new VerseRange( verse.getFirstVerseInChapter().subtract(1).getFirstVerseInChapter(), verse.getFirstVerseInChapter().subtract(1)); } // if(TextUtility.isVerse((key))){ // //Check if it is the first book of Genesis // if (((Verse) key).getChapter() == 1 && ((Verse) key).getBook().equals(BibleBook.GEN)){ // return key; // } // return new VerseRange(((Verse) // key).getFirstVerseInChapter().subtract(1).getFirstVerseInChapter(), ((Verse) // key).getFirstVerseInChapter().subtract(1)); // } else if (TextUtility.isVerseRange((key))) { // //TODO: what if the book is not a bible book? // // //Check if it is the first book of Genesis // if (((VerseRange) key).getStart().getChapter() == 1 && ((VerseRange) // key).getStart().getBook().equals(BibleBook.GEN)){ // return key; // } // //Else just the chapter reference // return new VerseRange(((VerseRange) // key).getStart().getFirstVerseInChapter().subtract(1).getFirstVerseInChapter(),((VerseRange) // key).getStart().getFirstVerseInChapter().subtract(1)); // } else { // throw new RuntimeException("Unsupported Type for next chapter key"); // } }