/* * [BibleBook.java] * * Summary: enumerate the books of the King James Bible. Used by KJV macro. Not a macro. * * Copyright: (c) 2007-2017 Roedy Green, Canadian Mind Products, http://mindprod.com * * Licence: This software may be copied and used freely for any purpose but military. * http://mindprod.com/contact/nonmil.html * * Requires: JDK 1.8+ * * Created with: JetBrains IntelliJ IDEA IDE http://www.jetbrains.com/idea/ * * Version History: * 1.0 2007-04-13 initial version. */ package com.mindprod.htmlmacros.support; /** * enumerate the books of the King James Bible. Used by KJV macro. Not a macro. *
* May be used freely for any purpose but military. * * @author Roedy Green, Canadian Mind Products * @version 1.0 2007-04-13 initial version. * @since 2007-04-13 */ public enum BibleBook { // keep in chronological order /** * @noinspection JavaDoc, UnusedDeclaration */ Genesis( "Genesis", "Genesis", 50 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Exodus( "Exodus", "Exodus", 40 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Leviticus( "Leviticus", "Leviticus", 27 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Deuteronomy( "Deuteronomy", "Deuteronomy", 34 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Numbers( "Numbers", "Numbers", 36 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Joshua( "Joshua", "Joshua", 24 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Judges( "Judges", "Judges", 21 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Ruth( "Ruth", "Ruth", 4 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ First_Samuel( "1_Samuel", "I Samuel", 31 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Second_Samuel( "2_Samuel", "II Samuel", 24 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ First_Kings( "1_Kings", "I Kings", 22 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Second_Kings( "2_Kings", "II Kings", 25 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ First_Chronicles( "1_Chronicles", "I Chronicles", 29 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Second_Chronicles( "2_Chronicles", "II Chronicles", 36 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Ezra( "Ezra", "Ezra", 10 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Nehemiah( "Nehemiah", "Nehemiah", 13 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Esther( "Esther", "Esther", 10 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Job( "Job", "Job", 42 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Psalms( "Psalms", "Psalms", 150 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Proverbs( "Proverbs", "Proverbs", 31 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Ecclesiastes( "Ecclesiastes", "Ecclesiastes", 12 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Song_of_Songs( "Song_of_Songs", "Song of Songs", 8 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Isaiah( "Isaiah", "Isaiah", 66 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Jeremiah( "Jeremiah", "Jeremiah", 52 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Lamentations( "Lamentations", "Lamentations", 5 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Ezekiel( "Ezekiel", "Ezekiel", 48 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Daniel( "Daniel", "Daniel", 12 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Hosea( "Hosea", "Hosea", 14 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Joel( "Joel", "Joel", 3 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Amos( "Amos", "Amos", 9 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Obadiah( "Obadiah", "Obadiah", 1 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Jonah( "Jonah", "Jonah", 4 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Micah( "Micah", "Micah", 7 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Nahum( "Nahum", "Nahum", 3 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Habakkuk( "Habakkuk", "Habakkuk", 3 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Zephaniah( "Zephaniah", "Zephaniah", 3 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Haggai( "Haggai", "Haggai", 2 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Zechariah( "Zechariah", "Zechariah", 14 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Malachi( "Malachi", "Malachi", 4 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Matthew( "Matthew", "Matthew", 28 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Mark( "Mark", "Mark", 16 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Luke( "Luke", "Luke", 24 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ John( "John", "John", 21 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Acts( "Acts", "Acts", 28 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Romans( "Romans", "Romans", 16 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ First_Corinthians( "1_Corinthians", "I Corinthians", 16 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Second_Corinthians( "2_Corinthians", "II Corinthians", 13 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Galatians( "Galatians", "Galatians", 6 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Ephesians( "Ephesians", "Ephesians", 6 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Philippians( "Philippians", "Philippians", 4 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Colossians( "Colossians", "Colossians", 4 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ First_Thessalonian( "1_Thessalonians", "I Thessalonians", 5 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Second_Thessalonian( "2_Thessalonians", "II Thessalonians", 3 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ First_Timothy( "1_Timothy", "I Timothy", 6 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Second_Timothy( "2_Timothy", "II Timothy", 4 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Titus( "Titus", "Titus", 3 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Philemon( "Philemon", "Philemon", 1 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Hebrews( "Hebrews", "Hebrews", 13 ), /** * @noinspection JavaDoc, UnusedDeclaration */ James( "James", "James", 5 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ First_Peter( "1_Peter", "I Peter", 5 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Second_Peter( "2_Peter", "II Peter", 3 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ First_John( "1_John", "I John", 5 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Second_John( "2_John", "II John", 1 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Third_John( "3_John", "III John", 1 ), /** * @noinspection JavaDoc, EnumeratedConstantNamingConvention, UnusedDeclaration */ Jude( "Jude", "Jude", 1 ), /** * @noinspection JavaDoc, UnusedDeclaration */ Revelation( "Revelation", "Revelation", 22 ); // --Commented out by Inspection (13/04/07 5:04 PM):private static final boolean DEBUGGING = false; private final String fullName; private final String htmlName; private final int chapters; /** * Enum constant constructor that captures two extra facts about the enum. * * @param htmlName name of the book in KJV for display e.g. "1_John" * @param fullName name of the book in KJV for display e.g. "II John" * @param chapters number of chapters this book. */ BibleBook( String htmlName, String fullName, int chapters ) { this.htmlName = htmlName; this.fullName = fullName; this.chapters = chapters; } /** * convert alias string to equivalent canonical enum constant, like valueOf but accepts aliases matching the HTML * name too, and does not care about case. * * @param s alias as string * * @return equivalent BibleBook enum constant */ public static BibleBook valueOfAlias( String s ) { try { return valueOf( s ); } catch ( IllegalArgumentException e ) { // usual method failed, try looking up alias // This seems long winded, why no HashSet? // Because Java won't let me access a static common // lookup in the enum constructors. for ( BibleBook candidateEnum : BibleBook.values() ) { if ( candidateEnum.htmlName.equalsIgnoreCase( s ) ) { return candidateEnum; } } // fell out the bottom of search over all enums and aliases // give up throw new IllegalArgumentException( "unknown BibleBook: " + s ); } } /** * get number of chapters in this book * * @return number of chapters */ public int getChapters() { return chapters; } /** * accessor for fullName. * * @return full human description for that this of the bible, e.g. "I John". */ public String getFullName() { return this.fullName; } /** * accessor for htmlName. * * @return name used in HTML for file and reference specs. */ public String getHtmlName() { return this.htmlName; } }