From b4ef54028eb4fa58c93705ef0ef8eebe39b0ff3e Mon Sep 17 00:00:00 2001 From: Sami Abdel Malik Date: Mon, 14 Oct 2024 16:58:46 -0400 Subject: [PATCH 1/7] Fix Book Names BibleNames_ar.properties: fix typo in Samuel name BibleNames_he.properties: fix abbreviated NT book names with numbers SystemDefault.java: replace AddEsth with EsthGr at David's request CustomVersification.java: avoid crash when json has unsupported osis name. --- .../custom/CustomVersification.java | 12 +++++++++- .../versification/system/SystemDefault.java | 2 +- src/main/resources/BibleNames_ar.properties | 4 ++-- src/main/resources/BibleNames_he.properties | 22 +++++++++---------- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/crosswire/jsword/versification/custom/CustomVersification.java b/src/main/java/org/crosswire/jsword/versification/custom/CustomVersification.java index 654377ac2..ba2d851a5 100644 --- a/src/main/java/org/crosswire/jsword/versification/custom/CustomVersification.java +++ b/src/main/java/org/crosswire/jsword/versification/custom/CustomVersification.java @@ -3,6 +3,9 @@ import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.ObjectMapper; import org.crosswire.common.util.CWProject; +import org.crosswire.common.util.Reporter; +import org.crosswire.jsword.JSMsg; +import org.crosswire.jsword.JSOtherMsg; import org.crosswire.jsword.book.Book; import org.crosswire.jsword.book.BookException; import org.crosswire.jsword.book.BookMetaData; @@ -49,7 +52,14 @@ public void loadFromJSON(final byte[] jsonData ) throws NoSuchKeyException, Book SystemCustomVersification.BOOKS_OT = new BibleBook[v11n.otbooks.length - 1]; SystemCustomVersification.LAST_VERSE_OT = new int[v11n.otbooks.length - 1][]; for(int i = 0; i < v11n.otbooks.length - 1; i++){ - SystemCustomVersification.BOOKS_OT[i] = BibleBook.fromOSIS(v11n.otbooks[i].osis); + BibleBook bb = BibleBook.fromOSIS(v11n.otbooks[i].osis); + if(bb == null) + { + Reporter.informUser(this, new BookException(JSMsg.gettext("Invalid OSIS name: {0}", v11n.otbooks[i].osis))); + return; + } + SystemCustomVersification.BOOKS_OT[i] = bb; + //SystemCustomVersification.BOOKS_OT[i] = BibleBook.fromOSIS(v11n.otbooks[i].osis); SystemCustomVersification.LAST_VERSE_OT[i] = new int[v11n.otbooks[i].chapmax]; System.arraycopy( v11n.vm, vmIndex, SystemCustomVersification.LAST_VERSE_OT[i], 0, v11n.otbooks[i].chapmax); vmIndex += v11n.otbooks[i].chapmax; diff --git a/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java b/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java index abe0919b6..a3e0235b7 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java +++ b/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java @@ -121,7 +121,7 @@ public class SystemDefault extends Versification { BibleBook.ESD2, BibleBook.TOB, BibleBook.JDT, - BibleBook.ADD_ESTH, + BibleBook.ESTH_GR, BibleBook.WIS, BibleBook.SIR, BibleBook.BAR, diff --git a/src/main/resources/BibleNames_ar.properties b/src/main/resources/BibleNames_ar.properties index 693e121f2..9137cb67e 100644 --- a/src/main/resources/BibleNames_ar.properties +++ b/src/main/resources/BibleNames_ar.properties @@ -42,10 +42,10 @@ Judg.Alt = Ruth.Full = \u0631\u0627\u0639\u0648\u062B Ruth.Short = \u0631\u0627 Ruth.Alt = -1Sam.Full = \u0635\u0645\u0648\u0627\u0626\u064A\u0644 \u0627\u0644\u0627\u0648\u0644 +1Sam.Full = \u0635\u0645\u0648\u0626\u064A\u0644 \u0627\u0644\u0627\u0648\u0644 1Sam.Short = \u0661\u0635\u0645 1Sam.Alt = -2Sam.Full = \u0635\u0645\u0648\u0627\u0626\u064A\u0644 \u0627\u0644\u062B\u0627\u0646\u064A +2Sam.Full = \u0635\u0645\u0648\u0626\u064A\u0644 \u0627\u0644\u062B\u0627\u0646\u064A 2Sam.Short = \u0662\u0635\u0645 2Sam.Alt = 1Kgs.Full = \u0645\u0644\u0648\u0643 \u0627\u0644\u0627\u0648\u0644 diff --git a/src/main/resources/BibleNames_he.properties b/src/main/resources/BibleNames_he.properties index 3d27744c1..1bcd0b206 100644 --- a/src/main/resources/BibleNames_he.properties +++ b/src/main/resources/BibleNames_he.properties @@ -156,10 +156,10 @@ Rom.Full = \u05D0\u05DC \u05D4\u05E8\u05D5\u05DE\u05D9\u05D9\u05DD Rom.Short = \u05E8\u05D5\u05DE Rom.Alt = 1Cor.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05E7\u05D5\u05E8\u05D9\u05E0\u05EA\u05D9\u05D9\u05DD -1Cor.Short = \u05E7\u05D5\u05E81 +1Cor.Short = \u05E7\u05D5\u05E8.\u05D0 1Cor.Alt = 2Cor.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05E7\u05D5\u05E8\u05D9\u05E0\u05EA\u05D9\u05D9\u05DD -2Cor.Short = \u05E7\u05D5\u05E82 +2Cor.Short = \u05E7\u05D5\u05E8.\u05D1 2Cor.Alt = Gal.Full = \u05D0\u05DC \u05D4\u05D2\u05DC\u05D8\u05D9\u05D9\u05DD Gal.Short = \u05D2\u05DC\u05D8\u05D9\u05DD @@ -174,16 +174,16 @@ Col.Full = \u05D0\u05DC \u05D4\u05E7\u05D5\u05DC\u05E1\u05D9\u05D9\u05DD Col.Short = \u05E7\u05D5\u05DC\u05E1 Col.Alt = 1Thess.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05EA\u05E1\u05DC\u05D5\u05E0\u05D9\u05E7\u05D9\u05DD -1Thess.Short = \u05EA\u05E11 +1Thess.Short = \u05EA\u05E1.\u05D0 1Thess.Alt = 2Thess.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05EA\u05E1\u05DC\u05D5\u05E0\u05D9\u05E7\u05D9\u05DD -2Thess.Short = \u05EA\u05E12 +2Thess.Short = \u05EA\u05E1.\u05D1 2Thess.Alt = 1Tim.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05D8\u05D9\u05DE\u05D5\u05EA\u05D9\u05D5\u05E1 -1Tim.Short = \u05D8\u05D9\u05DE1 +1Tim.Short = \u05D8\u05D9\u05DE.\u05D0 1Tim.Alt = 2Tim.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05D8\u05D9\u05DE\u05D5\u05EA\u05D9\u05D5\u05E1 -2Tim.Short = \u05D8\u05D9\u05DE2 +2Tim.Short = \u05D8\u05D9\u05DE.\u05D1 2Tim.Alt = Titus.Full = \u05D8\u05D9\u05D8\u05D5\u05E1 Titus.Short = \u05D8\u05D9\u05D8\u05D5\u05E1 @@ -198,19 +198,19 @@ Jas.Full = \u05D9\u05E2\u05E7\u05D1 Jas.Short = \u05D9\u05E2\u05E7\u05D1 Jas.Alt = 1Pet.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05E4\u05D8\u05E8\u05D5\u05E1 -1Pet.Short = \u05E4\u05D8\u05E81 +1Pet.Short = \u05E4\u05D8\u05E8.\u05D0 1Pet.Alt = 2Pet.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05E4\u05D8\u05E8\u05D5\u05E1 -2Pet.Short = \u05E4\u05D8\u05E82 +2Pet.Short = \u05E4\u05D8\u05E8.\u05D1 2Pet.Alt = 1John.Full = \u05D4\u05E8\u05D0\u05E9\u05D5\u05E0\u05D4 \u05DC\u05D9\u05D5\u05D7\u05E0\u05DF -1John.Short = \u05D9\u05D5\u05D71 +1John.Short = \u05D9\u05D5\u05D7.\u05D0 1John.Alt = 2John.Full = \u05D4\u05E9\u05E0\u05D9\u05D4 \u05DC\u05D9\u05D5\u05D7\u05E0\u05DF -2John.Short = \u05D9\u05D5\u05D72 +2John.Short = \u05D9\u05D5\u05D7.\u05D1 2John.Alt = 3John.Full = \u05D4\u05E9\u05DC\u05D9\u05E9\u05D9\u05EA \u05DC\u05D9\u05D5\u05D7\u05E0\u05DF -3John.Short = \u05D9\u05D5\u05D73 +3John.Short = \u05D9\u05D5\u05D7.\u05D2 3John.Alt = Jude.Full = \u05D0\u05D2\u05E8\u05EA \u05D9\u05D4\u05D5\u05D3\u05D4 Jude.Short = \u05D9\u05D4\u05D5\u05D3\u05D4 From 661d29b3ce2bedae79accc1ae89cdcaea7e01bcb Mon Sep 17 00:00:00 2001 From: Sami Abdel Malik Date: Fri, 25 Oct 2024 10:37:23 -0400 Subject: [PATCH 2/7] Get short book name for a specific language Added public function to get the short Bible book name for a specific language. --- .../crosswire/jsword/versification/BibleNames.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/org/crosswire/jsword/versification/BibleNames.java b/src/main/java/org/crosswire/jsword/versification/BibleNames.java index 1584009e5..828f71603 100644 --- a/src/main/java/org/crosswire/jsword/versification/BibleNames.java +++ b/src/main/java/org/crosswire/jsword/versification/BibleNames.java @@ -183,6 +183,20 @@ private NameList getBibleNamesForLocale(Locale locale) { return bibleNames; } + public String getShortBibleNameForLocale(Locale locale, String bName) { + String name = bName; + BibleBook bBk = getBook(bName); + if (bBk != null) { + NameList names = getBibleNamesForLocale(locale); + BookName bookName = names.books.get(bBk); + if (bookName != null) { + name = bookName.getShortName(); + } + } + + return name; + } + /** * This is simply a convenience function to wrap Character.isLetter() * From c80bb3c9c808432fa2a70f9468fc178c235af524 Mon Sep 17 00:00:00 2001 From: Patrick Tang <36460266+patricksptang@users.noreply.github.com> Date: Fri, 25 Oct 2024 13:24:44 -0700 Subject: [PATCH 3/7] Change version number --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6de1f5fb7..d6f851ddb 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.crosswire jsword jar - 1.6.6-SNAPSHOT + 1.6.7-SNAPSHOT jsword http://maven.apache.org From 5907e6fefc78c031bb1904cb7179d3ba909ea685 Mon Sep 17 00:00:00 2001 From: Sami Abdel Malik Date: Tue, 17 Dec 2024 18:23:33 -0500 Subject: [PATCH 4/7] Added missing Apocryphal books for mapping Added 1Meq, 2Meq, 3Meq, 3Bar to BibleBook enumeration. Added 1Meq, 2Meq, 3Meq, 3Bar to Bible Names properties file. Added the missing Apocrypha to the System Default versification. Added Apocrypha chapter verses counts to KJV versification. This should only affect the mapping logic. --- .../jsword/versification/BibleBook.java | 7 +- .../versification/system/SystemDefault.java | 18 +++- .../versification/system/SystemKJV.java | 98 +++++++++++++++++++ src/main/resources/BibleNames.properties | 14 ++- 4 files changed, 134 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/crosswire/jsword/versification/BibleBook.java b/src/main/java/org/crosswire/jsword/versification/BibleBook.java index 53cc4dfe0..585ac25a7 100644 --- a/src/main/java/org/crosswire/jsword/versification/BibleBook.java +++ b/src/main/java/org/crosswire/jsword/versification/BibleBook.java @@ -173,7 +173,12 @@ public enum BibleBook { // Other books ADD_DAN("AddDan"), ADD_PS("AddPs"), - ESTH_GR("EsthGr"); + ESTH_GR("EsthGr"), + // SM - Added based on Dr, David's input + MEQ1("1Meq"), + MEQ2("2Meq"), + MEQ3("3Meq"), + BAR3("3Bar"); BibleBook(String osis, boolean shortBook) { this(osis); diff --git a/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java b/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java index a3e0235b7..040fa7b32 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java +++ b/src/main/java/org/crosswire/jsword/versification/system/SystemDefault.java @@ -121,7 +121,7 @@ public class SystemDefault extends Versification { BibleBook.ESD2, BibleBook.TOB, BibleBook.JDT, - BibleBook.ESTH_GR, + BibleBook.ADD_ESTH, BibleBook.WIS, BibleBook.SIR, BibleBook.BAR, @@ -131,6 +131,22 @@ public class SystemDefault extends Versification { BibleBook.PR_MAN, BibleBook.MACC1, BibleBook.MACC2, + BibleBook.ESTH_GR, + BibleBook.PSALM_SOL, + BibleBook.MACC3, + BibleBook.MACC4, + BibleBook.ADD_PS, + BibleBook.EN1, + BibleBook.ODES, + BibleBook.MEQ1, + BibleBook.MEQ2, + BibleBook.MEQ3, + BibleBook.T12PATR, + BibleBook.JUBS, + BibleBook.BAR2, + BibleBook.BAR3, + BibleBook.BAR4, + BibleBook.EP_LAO, }; /* protected */ static final BibleBook[] BOOKS_OT = diff --git a/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java b/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java index e5d90db52..39f8c8e4a 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java +++ b/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java @@ -346,6 +346,104 @@ public class SystemKJV extends Versification { 36, 32, 40, 50, 27, 31, 42, 36, 29, 38, 38, 45, 26, 46, 39, }, + // Greek Esther + { + 22, 23, 15, 17, 14, 14, 10, 17, 32, 13, + 12, 6, 18, 19, 16, 24, + }, + // Psalms of Solomon + { + 8, 37, 12, 25, 19, 6, 10, 34, 11, 8, + 9, 6, 12, 10, 13, 15, 46, 12, + }, + // III Maccabees + { + 29, 33, 30, 21, 51, 41, 23, + }, + // IV Maccabees + { + 35, 24, 21, 26, 38, 35, 23, 29, 32, 21, + 27, 19, 27, 20, 32, 25, 24, 24, + }, + // Additional Psalms + { + 7, 6, 6, 20, 21, + }, + // 1 Enoch + { + 9, 3, 9, 1, 10, 8, 6, 4, 11, 22, + 2, 6, 10, 25, 12, 4, 8, 16, 3, 8, + 10, 14, 4, 6, 7, 6, 5, 3, 2, 3, + 3, 6, 4, 3, 1, 4, 6, 6, 14, 10, + 9, 3, 4, 1, 6, 8, 4, 10, 4, 5, + 5, 9, 7, 10, 4, 8, 3, 6, 3, 25, + 13, 16, 12, 2, 12, 3, 13, 5, 30, 4, + 17, 37, 8, 17, 9, 14, 9, 17, 6, 8, + 10, 20, 11, 6, 10, 6, 4, 3, 77, 43, + 19, 17, 14, 11, 7, 8, 10, 16, 16, 13, + 9, 11, 15, 13, 2, 19, 3, 15, + }, + // Odes + { + 19, 43, 10, 20, 20, 19, 45, 88, 79, 88, + 55, 32, 79, 46, + }, + // 1 Meqabyan + { + 28, 28, 38, 37, 39, 38, 33, 35, 10, 8, + 8, 44, 27, 23, 20, 9, 8, 12, 17, 4, + 31, 10, 7, 22, 18, 5, 20, 49, 17, 16, + 7, 4, 11, 18, 8, 46, + }, + // 2 Meqabyan + { + 13, 11, 29, 32, 18, 24, 8, 24, 27, 28, + 25, 15, 14, 36, 21, 15, 12, 14, 15, 14, + 28, + }, + // 3 Meqabyan + { + 24, 23, 11, 36, 16, 16, 5, 12, 36, + 29, + }, + // Testament of 12 Patriarchs + { + 7, 9, 19, 26, 7, 10, 7, 9, 8, 8, + 20, 12, + }, + // Jubilees + { + 29, 33, 35, 33, 32, 38, 39, 30, 14, 36, + 24, 31, 29, 24, 34, 31, 18, 19, 31, 13, + 26, 30, 32, 33, 23, 35, 27, 30, 20, 26, + 32, 34, 23, 21, 27, 24, 25, 24, 18, 13, + 28, 25, 24, 34, 16, 16, 12, 19, 23, 13 + }, + // 2 Baruch + { + 5, 1, 9, 7, 7, 9, 1, 5, 2, 19, + 7, 5, 12, 19, 8, 1, 4, 2, 8, 6, + 26, 8, 7, 4, 4, 1, 15, 7, 8, 5, + 5, 9, 3, 1, 4, 11, 1, 4, 8, 4, + 6, 8, 3, 15, 2, 7, 2, 50, 3, 4, + 16, 7, 12, 22, 8, 16, 3, 2, 12, 2, + 8, 8, 11, 10, 2, 8, 9, 8, 5, 10, + 2, 6, 7, 4, 8, 5, 26, 7, 4, 7, + 4, 9, 23, 11, 15, 1, 1, + }, + // 3 Baruch + { + 10, 7, 8, 17, 3, 16, 6, 7, 8, 9, + 9, 8, 5, 2, 4, 8, 4, + }, + // 4 Baruch + { + 12, 10, 22, 12, 35, 25, 37, 12, 32, + }, + // Epistle to Laodicea + { + 20, + }, }; diff --git a/src/main/resources/BibleNames.properties b/src/main/resources/BibleNames.properties index 9ec03b1ac..9191c569c 100644 --- a/src/main/resources/BibleNames.properties +++ b/src/main/resources/BibleNames.properties @@ -410,7 +410,19 @@ AddPs.Alt= EsthGr.Full=Esther (Greek) EsthGr.Short=EsthGr EsthGr.Alt= - +// SM Added for Mapping +1Meq.Full= 1 Meqabyan +1Meq.Short= 1 Meq +1Meq.Alt= +2Meq.Full= 2 Meqabyan +2Meq.Short= 2 Meq +2Meq.Alt= +3Meq.Full= 3 Meqabyan +3Meq.Short= 3 Meq +3Meq.Alt= +3Bar.Full= 3 Baruch +3Bar.Short= 3 Bar +3Bar.Alt= # Introduction titles for the book as a whole, the OT and the NT. Intro.Bible.Full=Bible Introduction From 2303d9aacf014fa44b3381a303d93b141788260e Mon Sep 17 00:00:00 2001 From: Sami Abdel Malik Date: Wed, 18 Dec 2024 16:12:43 -0500 Subject: [PATCH 5/7] Make verse mapping separate from KJV versification --- .../VersificationToKJVMapper.java | 14 +- .../versification/system/SystemKJV.java | 168 +----- .../versification/system/SystemMapper.java | 562 ++++++++++++++++++ .../versification/system/Versifications.java | 5 + 4 files changed, 575 insertions(+), 174 deletions(-) create mode 100644 src/main/java/org/crosswire/jsword/versification/system/SystemMapper.java diff --git a/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java b/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java index c857461d1..7cf76eaf2 100644 --- a/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java +++ b/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java @@ -131,7 +131,7 @@ public class VersificationToKJVMapper { * @param mapping the mappings from one versification to another */ public VersificationToKJVMapper(Versification nonKjv, final FileVersificationMapping mapping) { - absentVerses = createEmptyPassage(KJV); + absentVerses = createEmptyPassage(Mapper); toKJVMappings = new HashMap>(); fromKJVMappings = new HashMap(); this.nonKjv = nonKjv; @@ -182,7 +182,7 @@ private void processEntry(final KeyValuePair entry) throws NoSuchKeyException { // The right hand side can start with ? which means that the left maps to nothing in the KJV. // The ? leads a section name - QualifiedKey kjv = getRange(KJV, kjvHand, left.getKey()); + QualifiedKey kjv = getRange(Mapper, kjvHand, left.getKey()); addMappings(left, kjv); } @@ -540,7 +540,7 @@ public List map(QualifiedKey qualifiedKey) { //then we found no mapping, so we're essentially going to return the same key back... //unless it's a verse 0 and then we'll check the global flag. kjvKeys = new ArrayList(); - kjvKeys.add(qualifiedKey.reversify(KJV)); + kjvKeys.add(qualifiedKey.reversify(Mapper)); return kjvKeys; } return kjvKeys; @@ -568,7 +568,7 @@ public VerseKey unmap(final QualifiedKey kjvVerse) { if (left == null) { VerseKey vk = kjvVerse.getKey(); if (vk != null && this.absentVerses.contains(vk)) { - return createEmptyPassage(KJV); + return createEmptyPassage(Mapper); } return kjvVerse.reversify(this.nonKjv).getKey(); } @@ -611,7 +611,7 @@ public void dump(PrintStream out) { List kjvVerses = entry.getValue(); String osisRef = entry.getKey().getOsisRef(); for (QualifiedKey q : kjvVerses) { - out.println(String.format("\t(%s) %s => (KJV) %s", + out.println(String.format("\t(%s) %s => (Mapper) %s", nonKjvName, osisRef, q.toString())); @@ -625,7 +625,7 @@ public void dump(PrintStream out) { out.println(" Backwards mappings from KJV"); out.println(" ******************************"); for (Map.Entry entry : this.fromKJVMappings.entrySet()) { - out.println(String.format("\t(KJV): %s => (%s) %s", + out.println(String.format("\t(Mapper): %s => (%s) %s", entry.getKey().toString(), nonKjvName, entry.getValue().getOsisRef())); @@ -659,6 +659,6 @@ private Passage createEmptyPassage(Versification versification) { private OsisParser osisParser = new OsisParser(); - private static final Versification KJV = Versifications.instance().getVersification(Versifications.DEFAULT_V11N); + private static final Versification Mapper = Versifications.instance().getVersification(Versifications.MAPPER_V11N); private static final Logger LOGGER = LoggerFactory.getLogger(VersificationToKJVMapper.class); } diff --git a/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java b/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java index 39f8c8e4a..9c25ffe04 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java +++ b/src/main/java/org/crosswire/jsword/versification/system/SystemKJV.java @@ -41,7 +41,7 @@ public class SystemKJV extends Versification { public static final String V11N_NAME = "KJV"; - /* protected */ static final BibleBook[] BOOKS_OT = SystemDefault.BOOKS_OTA; + /* protected */ static final BibleBook[] BOOKS_OT = SystemDefault.BOOKS_OT; /* protected */ static final BibleBook[] BOOKS_NT = SystemDefault.BOOKS_NT; @@ -278,172 +278,6 @@ public class SystemKJV extends Versification { { 14, 17, 18, 6, }, - // I Esdras - { - 58, 30, 24, 63, 73, 34, 15, 96, 55, - }, - // II Esdras - { - 40, 48, 36, 52, 56, 59, 70, 63, 47, 59, - 46, 51, 58, 48, 63, 78, - }, - // Tobit - { - 22, 14, 17, 21, 22, 17, 18, 21, 6, 12, - 19, 22, 18, 15, - }, - // Judith - { - 16, 28, 10, 15, 24, 21, 32, 36, 14, 23, - 23, 20, 20, 19, 13, 25, - }, - // Additions to Esther - { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, - 12, 6, 18, 19, 16, 24, - }, - // Wisdom - { - 16, 24, 19, 20, 23, 25, 30, 21, 18, 21, - 26, 27, 19, 31, 19, 29, 21, 25, 22, - }, - // Sirach - { - 30, 18, 31, 31, 15, 37, 36, 19, 18, 31, - 34, 18, 26, 27, 20, 30, 32, 33, 30, 32, - 28, 27, 28, 34, 26, 29, 30, 26, 28, 25, - 31, 24, 31, 26, 20, 26, 31, 34, 35, 30, - 24, 25, 33, 22, 26, 20, 25, 25, 16, 29, - 30, - }, - // Baruch - { - 22, 35, 37, 37, 9, 73, - }, - // Prayer of Azariah - { - 68, - }, - // Susanna - { - 64, - }, - // Bel and the Dragon - { - 42, - }, - // Prayer of Manasses - { - 1, - }, - // I Maccabees - { - 64, 70, 60, 61, 68, 63, 50, 32, 73, 89, - 74, 53, 53, 49, 41, 24, - }, - // II Maccabees - { - 36, 32, 40, 50, 27, 31, 42, 36, 29, 38, - 38, 45, 26, 46, 39, - }, - // Greek Esther - { - 22, 23, 15, 17, 14, 14, 10, 17, 32, 13, - 12, 6, 18, 19, 16, 24, - }, - // Psalms of Solomon - { - 8, 37, 12, 25, 19, 6, 10, 34, 11, 8, - 9, 6, 12, 10, 13, 15, 46, 12, - }, - // III Maccabees - { - 29, 33, 30, 21, 51, 41, 23, - }, - // IV Maccabees - { - 35, 24, 21, 26, 38, 35, 23, 29, 32, 21, - 27, 19, 27, 20, 32, 25, 24, 24, - }, - // Additional Psalms - { - 7, 6, 6, 20, 21, - }, - // 1 Enoch - { - 9, 3, 9, 1, 10, 8, 6, 4, 11, 22, - 2, 6, 10, 25, 12, 4, 8, 16, 3, 8, - 10, 14, 4, 6, 7, 6, 5, 3, 2, 3, - 3, 6, 4, 3, 1, 4, 6, 6, 14, 10, - 9, 3, 4, 1, 6, 8, 4, 10, 4, 5, - 5, 9, 7, 10, 4, 8, 3, 6, 3, 25, - 13, 16, 12, 2, 12, 3, 13, 5, 30, 4, - 17, 37, 8, 17, 9, 14, 9, 17, 6, 8, - 10, 20, 11, 6, 10, 6, 4, 3, 77, 43, - 19, 17, 14, 11, 7, 8, 10, 16, 16, 13, - 9, 11, 15, 13, 2, 19, 3, 15, - }, - // Odes - { - 19, 43, 10, 20, 20, 19, 45, 88, 79, 88, - 55, 32, 79, 46, - }, - // 1 Meqabyan - { - 28, 28, 38, 37, 39, 38, 33, 35, 10, 8, - 8, 44, 27, 23, 20, 9, 8, 12, 17, 4, - 31, 10, 7, 22, 18, 5, 20, 49, 17, 16, - 7, 4, 11, 18, 8, 46, - }, - // 2 Meqabyan - { - 13, 11, 29, 32, 18, 24, 8, 24, 27, 28, - 25, 15, 14, 36, 21, 15, 12, 14, 15, 14, - 28, - }, - // 3 Meqabyan - { - 24, 23, 11, 36, 16, 16, 5, 12, 36, - 29, - }, - // Testament of 12 Patriarchs - { - 7, 9, 19, 26, 7, 10, 7, 9, 8, 8, - 20, 12, - }, - // Jubilees - { - 29, 33, 35, 33, 32, 38, 39, 30, 14, 36, - 24, 31, 29, 24, 34, 31, 18, 19, 31, 13, - 26, 30, 32, 33, 23, 35, 27, 30, 20, 26, - 32, 34, 23, 21, 27, 24, 25, 24, 18, 13, - 28, 25, 24, 34, 16, 16, 12, 19, 23, 13 - }, - // 2 Baruch - { - 5, 1, 9, 7, 7, 9, 1, 5, 2, 19, - 7, 5, 12, 19, 8, 1, 4, 2, 8, 6, - 26, 8, 7, 4, 4, 1, 15, 7, 8, 5, - 5, 9, 3, 1, 4, 11, 1, 4, 8, 4, - 6, 8, 3, 15, 2, 7, 2, 50, 3, 4, - 16, 7, 12, 22, 8, 16, 3, 2, 12, 2, - 8, 8, 11, 10, 2, 8, 9, 8, 5, 10, - 2, 6, 7, 4, 8, 5, 26, 7, 4, 7, - 4, 9, 23, 11, 15, 1, 1, - }, - // 3 Baruch - { - 10, 7, 8, 17, 3, 16, 6, 7, 8, 9, - 9, 8, 5, 2, 4, 8, 4, - }, - // 4 Baruch - { - 12, 10, 22, 12, 35, 25, 37, 12, 32, - }, - // Epistle to Laodicea - { - 20, - }, }; diff --git a/src/main/java/org/crosswire/jsword/versification/system/SystemMapper.java b/src/main/java/org/crosswire/jsword/versification/system/SystemMapper.java new file mode 100644 index 000000000..62862ac05 --- /dev/null +++ b/src/main/java/org/crosswire/jsword/versification/system/SystemMapper.java @@ -0,0 +1,562 @@ +package org.crosswire.jsword.versification.system; + +import org.crosswire.jsword.versification.BibleBook; +import org.crosswire.jsword.versification.Versification; + +/** + * The Mapper versification is a special versification used only for the mapping logic + * Originally, the mapper used KJV versification which does not include the apocrypha + * This mapper includes most of the apocryphal books. + * + * @see gnu.lgpl.License for license details.
v + * The copyright to this program is held by it's authors. + * @author DM Smith + */ +public class SystemMapper extends Versification { + /** + * Build the "Mapper" Versification. + */ + /* protected */ SystemMapper() { + super(V11N_NAME, BOOKS_OT, BOOKS_NT, LAST_VERSE_OT, LAST_VERSE_NT); + } + + public static final String V11N_NAME = "Mapper"; + + /* protected */ static final BibleBook[] BOOKS_OT = SystemDefault.BOOKS_OTA; + + /* protected */ static final BibleBook[] BOOKS_NT = SystemDefault.BOOKS_NT; + + /** Constant for the max verse number in each chapter */ + /* protected */ static final int[][] LAST_VERSE_OT = + { + // Genesis + { + 31, 25, 24, 26, 32, 22, 24, 22, 29, 32, + 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, + 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, + 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, + 57, 38, 34, 34, 28, 34, 31, 22, 33, 26, + }, + // Exodus + { + 22, 25, 22, 31, 23, 30, 25, 32, 35, 29, + 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, + 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, + 18, 35, 23, 35, 35, 38, 29, 31, 43, 38, + }, + // Leviticus + { + 17, 16, 17, 35, 19, 30, 38, 36, 24, 20, + 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, + 24, 33, 44, 23, 55, 46, 34, + }, + // Numbers + { + 54, 34, 51, 49, 31, 27, 89, 26, 23, 36, + 35, 16, 33, 45, 41, 50, 13, 32, 22, 29, + 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, + 54, 42, 56, 29, 34, 13, + }, + // Deuteronomy + { + 46, 37, 29, 49, 33, 25, 26, 20, 29, 22, + 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, + 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, + 30, 52, 29, 12, + }, + // Joshua + { + 18, 24, 17, 24, 15, 27, 26, 35, 27, 43, + 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, + 45, 34, 16, 33, + }, + // Judges + { + 36, 23, 31, 24, 31, 40, 25, 35, 57, 18, + 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, + 25, + }, + // Ruth + { + 22, 23, 18, 22, + }, + // I Samuel + { + 28, 36, 21, 22, 12, 21, 17, 22, 27, 27, + 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, + 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, + 13, + }, + // II Samuel + { + 27, 32, 39, 12, 25, 23, 29, 18, 13, 19, + 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, + 22, 51, 39, 25, + }, + // I Kings + { + 53, 46, 28, 34, 18, 38, 51, 66, 28, 29, + 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, + 29, 53, + }, + // II Kings + { + 18, 25, 27, 44, 27, 33, 20, 29, 37, 36, + 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, + 26, 20, 37, 20, 30, + }, + // I Chronicles + { + 54, 55, 24, 43, 26, 81, 40, 40, 44, 14, + 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, + 30, 19, 32, 31, 31, 32, 34, 21, 30, + }, + // II Chronicles + { + 17, 18, 17, 22, 14, 42, 22, 18, 31, 19, + 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, + 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, + 21, 33, 25, 33, 27, 23, + }, + // Ezra + { + 11, 70, 13, 24, 17, 22, 28, 36, 15, 44, + }, + // Nehemiah + { + 11, 20, 32, 23, 19, 19, 73, 18, 38, 39, + 36, 47, 31, + }, + // Esther + { + 22, 23, 15, 17, 14, 14, 10, 17, 32, 3, + }, + // Job + { + 22, 13, 26, 21, 27, 30, 21, 22, 35, 22, + 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, + 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, + 40, 22, 33, 37, 16, 33, 24, 41, 30, 24, + 34, 17, + }, + // Psalms + { + 6, 12, 8, 8, 12, 10, 17, 9, 20, 18, + 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, + 13, 31, 6, 10, 22, 12, 14, 9, 11, 12, + 24, 11, 22, 22, 28, 12, 40, 22, 13, 17, + 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, + 19, 9, 6, 7, 23, 13, 11, 11, 17, 12, + 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, + 24, 20, 28, 23, 10, 12, 20, 72, 13, 19, + 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, + 16, 15, 5, 23, 11, 13, 12, 9, 9, 5, + 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, + 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, + 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, + 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, + 10, 7, 12, 15, 21, 10, 20, 14, 9, 6, + }, + // Proverbs + { + 33, 22, 35, 27, 23, 35, 27, 36, 18, 32, + 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, + 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, + 31, + }, + // Ecclesiastes + { + 18, 26, 22, 16, 20, 12, 29, 17, 18, 20, + 10, 14, + }, + // Song of Solomon + { + 17, 17, 11, 16, 16, 13, 13, 14, + }, + // Isaiah + { + 31, 22, 26, 6, 30, 13, 25, 22, 21, 34, + 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, + 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, + 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, + 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, + 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, + 11, 12, 19, 12, 25, 24, + }, + // Jeremiah + { + 19, 37, 25, 31, 31, 30, 34, 22, 26, 25, + 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, + 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, + 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, + 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, + 64, 34, + }, + // Lamentations + { + 22, 22, 66, 22, 22, + }, + // Ezekiel + { + 28, 10, 27, 17, 17, 14, 27, 18, 11, 22, + 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, + 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, + 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, + 26, 20, 27, 31, 25, 24, 23, 35, + }, + // Daniel + { + 21, 49, 30, 37, 31, 28, 28, 27, 27, 21, + 45, 13, + }, + // Hosea + { + 11, 23, 5, 19, 15, 11, 16, 14, 17, 15, + 12, 14, 16, 9, + }, + // Joel + { + 20, 32, 21, + }, + // Amos + { + 15, 16, 15, 13, 27, 14, 17, 14, 15, + }, + // Obadiah + { + 21, + }, + // Jonah + { + 17, 10, 10, 11, + }, + // Micah + { + 16, 13, 12, 13, 15, 16, 20, + }, + // Nahum + { + 15, 13, 19, + }, + // Habakkuk + { + 17, 20, 19, + }, + // Zephaniah + { + 18, 15, 20, + }, + // Haggai + { + 15, 23, + }, + // Zechariah + { + 21, 13, 10, 14, 11, 15, 14, 23, 17, 12, + 17, 14, 9, 21, + }, + // Malachi + { + 14, 17, 18, 6, + }, + // I Esdras + { + 58, 30, 24, 63, 73, 34, 15, 96, 55, + }, + // II Esdras + { + 40, 48, 36, 52, 56, 59, 70, 63, 47, 59, + 46, 51, 58, 48, 63, 78, + }, + // Tobit + { + 22, 14, 17, 21, 22, 17, 18, 21, 6, 12, + 19, 22, 18, 15, + }, + // Judith + { + 16, 28, 10, 15, 24, 21, 32, 36, 14, 23, + 23, 20, 20, 19, 13, 25, + }, + // Additions to Esther + { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, + 12, 6, 18, 19, 16, 24, + }, + // Wisdom + { + 16, 24, 19, 20, 23, 25, 30, 21, 18, 21, + 26, 27, 19, 31, 19, 29, 21, 25, 22, + }, + // Sirach + { + 30, 18, 31, 31, 15, 37, 36, 19, 18, 31, + 34, 18, 26, 27, 20, 30, 32, 33, 30, 32, + 28, 27, 28, 34, 26, 29, 30, 26, 28, 25, + 31, 24, 31, 26, 20, 26, 31, 34, 35, 30, + 24, 25, 33, 22, 26, 20, 25, 25, 16, 29, + 30, + }, + // Baruch + { + 22, 35, 37, 37, 9, 73, + }, + // Prayer of Azariah + { + 68, + }, + // Susanna + { + 64, + }, + // Bel and the Dragon + { + 42, + }, + // Prayer of Manasses + { + 1, + }, + // I Maccabees + { + 64, 70, 60, 61, 68, 63, 50, 32, 73, 89, + 74, 53, 53, 49, 41, 24, + }, + // II Maccabees + { + 36, 32, 40, 50, 27, 31, 42, 36, 29, 38, + 38, 45, 26, 46, 39, + }, + // Greek Esther + { + 22, 23, 15, 17, 14, 14, 10, 17, 32, 13, + 12, 6, 18, 19, 16, 24, + }, + // Psalms of Solomon + { + 8, 37, 12, 25, 19, 6, 10, 34, 11, 8, + 9, 6, 12, 10, 13, 15, 46, 12, + }, + // III Maccabees + { + 29, 33, 30, 21, 51, 41, 23, + }, + // IV Maccabees + { + 35, 24, 21, 26, 38, 35, 23, 29, 32, 21, + 27, 19, 27, 20, 32, 25, 24, 24, + }, + // Additional Psalms + { + 7, 6, 6, 20, 21, + }, + // 1 Enoch + { + 9, 3, 9, 1, 10, 8, 6, 4, 11, 22, + 2, 6, 10, 25, 12, 4, 8, 16, 3, 8, + 10, 14, 4, 6, 7, 6, 5, 3, 2, 3, + 3, 6, 4, 3, 1, 4, 6, 6, 14, 10, + 9, 3, 4, 1, 6, 8, 4, 10, 4, 5, + 5, 9, 7, 10, 4, 8, 3, 6, 3, 25, + 13, 16, 12, 2, 12, 3, 13, 5, 30, 4, + 17, 37, 8, 17, 9, 14, 9, 17, 6, 8, + 10, 20, 11, 6, 10, 6, 4, 3, 77, 43, + 19, 17, 14, 11, 7, 8, 10, 16, 16, 13, + 9, 11, 15, 13, 2, 19, 3, 15, + }, + // Odes + { + 19, 43, 10, 20, 20, 19, 45, 88, 79, 88, + 55, 32, 79, 46, + }, + // 1 Meqabyan + { + 28, 28, 38, 37, 39, 38, 33, 35, 10, 8, + 8, 44, 27, 23, 20, 9, 8, 12, 17, 4, + 31, 10, 7, 22, 18, 5, 20, 49, 17, 16, + 7, 4, 11, 18, 8, 46, + }, + // 2 Meqabyan + { + 13, 11, 29, 32, 18, 24, 8, 24, 27, 28, + 25, 15, 14, 36, 21, 15, 12, 14, 15, 14, + 28, + }, + // 3 Meqabyan + { + 24, 23, 11, 36, 16, 16, 5, 12, 36, + 29, + }, + // Testament of 12 Patriarchs + { + 7, 9, 19, 26, 7, 10, 7, 9, 8, 8, + 20, 12, + }, + // Jubilees + { + 29, 33, 35, 33, 32, 38, 39, 30, 14, 36, + 24, 31, 29, 24, 34, 31, 18, 19, 31, 13, + 26, 30, 32, 33, 23, 35, 27, 30, 20, 26, + 32, 34, 23, 21, 27, 24, 25, 24, 18, 13, + 28, 25, 24, 34, 16, 16, 12, 19, 23, 13 + }, + // 2 Baruch + { + 5, 1, 9, 7, 7, 9, 1, 5, 2, 19, + 7, 5, 12, 19, 8, 1, 4, 2, 8, 6, + 26, 8, 7, 4, 4, 1, 15, 7, 8, 5, + 5, 9, 3, 1, 4, 11, 1, 4, 8, 4, + 6, 8, 3, 15, 2, 7, 2, 50, 3, 4, + 16, 7, 12, 22, 8, 16, 3, 2, 12, 2, + 8, 8, 11, 10, 2, 8, 9, 8, 5, 10, + 2, 6, 7, 4, 8, 5, 26, 7, 4, 7, + 4, 9, 23, 11, 15, 1, 1, + }, + // 3 Baruch + { + 10, 7, 8, 17, 3, 16, 6, 7, 8, 9, + 9, 8, 5, 2, 4, 8, 4, + }, + // 4 Baruch + { + 12, 10, 22, 12, 35, 25, 37, 12, 32, + }, + // Epistle to Laodicea + { + 20, + }, + }; + + + /* protected */ static final int[][] LAST_VERSE_NT = + { + // Matthew + { + 25, 23, 17, 25, 48, 34, 29, 34, 38, 42, + 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, + 46, 46, 39, 51, 46, 75, 66, 20, + }, + // Mark + { + 45, 28, 35, 41, 43, 56, 37, 38, 50, 52, + 33, 44, 37, 72, 47, 20, + }, + // Luke + { + 80, 52, 38, 44, 39, 49, 50, 56, 62, 42, + 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, + 38, 71, 56, 53, + }, + // John + { + 51, 25, 36, 54, 47, 71, 53, 59, 41, 42, + 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, + 25, + }, + // Acts + { + 26, 47, 26, 37, 42, 15, 60, 40, 43, 48, + 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, + 40, 30, 35, 27, 27, 32, 44, 31, + }, + // Romans + { + 32, 29, 31, 25, 21, 23, 25, 39, 33, 21, + 36, 21, 14, 23, 33, 27, + }, + // I Corinthians + { + 31, 16, 23, 21, 13, 20, 40, 13, 27, 33, + 34, 31, 13, 40, 58, 24, + }, + // II Corinthians + { + 24, 17, 18, 18, 21, 18, 16, 24, 15, 18, + 33, 21, 14, + }, + // Galatians + { + 24, 21, 29, 31, 26, 18, + }, + // Ephesians + { + 23, 22, 21, 32, 33, 24, + }, + // Philippians + { + 30, 30, 21, 23, + }, + // Colossians + { + 29, 23, 25, 18, + }, + // I Thessalonians + { + 10, 20, 13, 18, 28, + }, + // II Thessalonians + { + 12, 17, 18, + }, + // I Timothy + { + 20, 15, 16, 16, 25, 21, + }, + // II Timothy + { + 18, 26, 17, 22, + }, + // Titus + { + 16, 15, 15, + }, + // Philemon + { + 25, + }, + // Hebrews + { + 14, 18, 19, 16, 14, 20, 28, 13, 28, 39, + 40, 29, 25, + }, + // James + { + 27, 26, 18, 17, 20, + }, + // I Peter + { + 25, 25, 22, 19, 14, + }, + // II Peter + { + 21, 22, 18, + }, + // I John + { + 10, 29, 24, 21, 21, + }, + // II John + { + 13, + }, + // III John + { + 14, + }, + // Jude + { + 25, + }, + // Revelation of John + { + 20, 29, 22, 11, 14, 17, 17, 13, 21, 11, + 19, 17, 18, 20, 8, 21, 18, 24, 21, 15, + 27, 21, + }, + }; + + /** + * Serialization ID + */ + private static final long serialVersionUID = 3365882007485277008L; +} diff --git a/src/main/java/org/crosswire/jsword/versification/system/Versifications.java b/src/main/java/org/crosswire/jsword/versification/system/Versifications.java index df668747a..3558c453d 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/Versifications.java +++ b/src/main/java/org/crosswire/jsword/versification/system/Versifications.java @@ -43,6 +43,7 @@ public final class Versifications { * This is subject to change at any time. */ public static final String DEFAULT_V11N = SystemKJV.V11N_NAME; + public static final String MAPPER_V11N = SystemMapper.V11N_NAME; /** * Get the singleton instance of Versifications. @@ -148,6 +149,9 @@ private Versification fluff(String name) { if (SystemVulg.V11N_NAME.equals(name)) { return new SystemVulg(); } + if (SystemMapper.V11N_NAME.equals(name)) { + return new SystemVulg(); + } return null; } @@ -204,6 +208,7 @@ private Versifications() { known.add(SystemSynodal.V11N_NAME); known.add(SystemSynodalProt.V11N_NAME); known.add(SystemVulg.V11N_NAME); + known.add(SystemMapper.V11N_NAME); fluffed = new HashMap(); } From 333bffdd0433ff7051cbead427ed203486207b05 Mon Sep 17 00:00:00 2001 From: Sami Abdel Malik Date: Wed, 18 Dec 2024 21:57:08 -0500 Subject: [PATCH 6/7] Added missing change for the mapper --- .../crosswire/jsword/versification/VersificationsMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java b/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java index fcc6b59e9..667d0bc63 100644 --- a/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java +++ b/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java @@ -256,7 +256,7 @@ private void ensure(final Versification versification) { } private static volatile VersificationsMapper instance; - private static final Versification KJV = Versifications.instance().getVersification(Versifications.DEFAULT_V11N); + private static final Versification KJV = Versifications.instance().getVersification(Versifications.MAPPER_V11N); private static final Map MAPPERS = new HashMap(); private static final Logger LOGGER = LoggerFactory.getLogger(VersificationsMapper.class); } From 733ea3a9cd81d2b3767815a1a82349642ccb4ec0 Mon Sep 17 00:00:00 2001 From: Sami Abdel Malik Date: Thu, 19 Dec 2024 11:25:24 -0500 Subject: [PATCH 7/7] Change mapping versification name name from Mapper to KJVAPlus --- .../jsword/versification/VersificationToKJVMapper.java | 10 +++++----- .../jsword/versification/VersificationsMapper.java | 10 +++++----- .../system/{SystemMapper.java => SystemKJVAPlus.java} | 6 +++--- .../jsword/versification/system/Versifications.java | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) rename src/main/java/org/crosswire/jsword/versification/system/{SystemMapper.java => SystemKJVAPlus.java} (99%) diff --git a/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java b/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java index 7cf76eaf2..db0df431d 100644 --- a/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java +++ b/src/main/java/org/crosswire/jsword/versification/VersificationToKJVMapper.java @@ -131,7 +131,7 @@ public class VersificationToKJVMapper { * @param mapping the mappings from one versification to another */ public VersificationToKJVMapper(Versification nonKjv, final FileVersificationMapping mapping) { - absentVerses = createEmptyPassage(Mapper); + absentVerses = createEmptyPassage(KJVAPlus); toKJVMappings = new HashMap>(); fromKJVMappings = new HashMap(); this.nonKjv = nonKjv; @@ -182,7 +182,7 @@ private void processEntry(final KeyValuePair entry) throws NoSuchKeyException { // The right hand side can start with ? which means that the left maps to nothing in the KJV. // The ? leads a section name - QualifiedKey kjv = getRange(Mapper, kjvHand, left.getKey()); + QualifiedKey kjv = getRange(KJVAPlus, kjvHand, left.getKey()); addMappings(left, kjv); } @@ -540,7 +540,7 @@ public List map(QualifiedKey qualifiedKey) { //then we found no mapping, so we're essentially going to return the same key back... //unless it's a verse 0 and then we'll check the global flag. kjvKeys = new ArrayList(); - kjvKeys.add(qualifiedKey.reversify(Mapper)); + kjvKeys.add(qualifiedKey.reversify(KJVAPlus)); return kjvKeys; } return kjvKeys; @@ -568,7 +568,7 @@ public VerseKey unmap(final QualifiedKey kjvVerse) { if (left == null) { VerseKey vk = kjvVerse.getKey(); if (vk != null && this.absentVerses.contains(vk)) { - return createEmptyPassage(Mapper); + return createEmptyPassage(KJVAPlus); } return kjvVerse.reversify(this.nonKjv).getKey(); } @@ -659,6 +659,6 @@ private Passage createEmptyPassage(Versification versification) { private OsisParser osisParser = new OsisParser(); - private static final Versification Mapper = Versifications.instance().getVersification(Versifications.MAPPER_V11N); + private static final Versification KJVAPlus = Versifications.instance().getVersification(Versifications.KJVAPLUS_V11N); private static final Logger LOGGER = LoggerFactory.getLogger(VersificationToKJVMapper.class); } diff --git a/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java b/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java index 667d0bc63..b6c68f263 100644 --- a/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java +++ b/src/main/java/org/crosswire/jsword/versification/VersificationsMapper.java @@ -68,7 +68,7 @@ public final class VersificationsMapper { private VersificationsMapper() { // we have no mapper for the KJV, since everything maps map to the KJV, so we'll simply add an entry // in there to avoid ever trying to load it - MAPPERS.put(KJV, null); + MAPPERS.put(KJVAPlus, null); } /** @@ -135,7 +135,7 @@ public VerseKey mapVerse(Verse v, Versification targetVersification) { // and assume that it maps directly on to the KJV, // and thereby continue with the process kjvVerses = new ArrayList(); - final Verse reversifiedVerse = v.reversify(KJV); + final Verse reversifiedVerse = v.reversify(KJVAPlus); //check that the key actually exists if(reversifiedVerse != null) { kjvVerses.add(new QualifiedKey(reversifiedVerse)); @@ -145,9 +145,9 @@ public VerseKey mapVerse(Verse v, Versification targetVersification) { kjvVerses = mapper.map(new QualifiedKey(v)); } - if (KJV.equals(targetVersification)) { + if (KJVAPlus.equals(targetVersification)) { // we're done, so simply return the key we have so far. - return getKeyFromQualifiedKeys(KJV, kjvVerses); + return getKeyFromQualifiedKeys(KJVAPlus, kjvVerses); } // we're continuing, so we need to unmap from the KJV qualified key onto @@ -256,7 +256,7 @@ private void ensure(final Versification versification) { } private static volatile VersificationsMapper instance; - private static final Versification KJV = Versifications.instance().getVersification(Versifications.MAPPER_V11N); + private static final Versification KJVAPlus = Versifications.instance().getVersification(Versifications.KJVAPLUS_V11N); private static final Map MAPPERS = new HashMap(); private static final Logger LOGGER = LoggerFactory.getLogger(VersificationsMapper.class); } diff --git a/src/main/java/org/crosswire/jsword/versification/system/SystemMapper.java b/src/main/java/org/crosswire/jsword/versification/system/SystemKJVAPlus.java similarity index 99% rename from src/main/java/org/crosswire/jsword/versification/system/SystemMapper.java rename to src/main/java/org/crosswire/jsword/versification/system/SystemKJVAPlus.java index 62862ac05..26af686c9 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/SystemMapper.java +++ b/src/main/java/org/crosswire/jsword/versification/system/SystemKJVAPlus.java @@ -12,15 +12,15 @@ * The copyright to this program is held by it's authors. * @author DM Smith */ -public class SystemMapper extends Versification { +public class SystemKJVAPlus extends Versification { /** * Build the "Mapper" Versification. */ - /* protected */ SystemMapper() { + /* protected */ SystemKJVAPlus() { super(V11N_NAME, BOOKS_OT, BOOKS_NT, LAST_VERSE_OT, LAST_VERSE_NT); } - public static final String V11N_NAME = "Mapper"; + public static final String V11N_NAME = "KJVAPlus"; /* protected */ static final BibleBook[] BOOKS_OT = SystemDefault.BOOKS_OTA; diff --git a/src/main/java/org/crosswire/jsword/versification/system/Versifications.java b/src/main/java/org/crosswire/jsword/versification/system/Versifications.java index 3558c453d..1df17533d 100644 --- a/src/main/java/org/crosswire/jsword/versification/system/Versifications.java +++ b/src/main/java/org/crosswire/jsword/versification/system/Versifications.java @@ -43,7 +43,7 @@ public final class Versifications { * This is subject to change at any time. */ public static final String DEFAULT_V11N = SystemKJV.V11N_NAME; - public static final String MAPPER_V11N = SystemMapper.V11N_NAME; + public static final String KJVAPLUS_V11N = SystemKJVAPlus.V11N_NAME; /** * Get the singleton instance of Versifications. @@ -149,7 +149,7 @@ private Versification fluff(String name) { if (SystemVulg.V11N_NAME.equals(name)) { return new SystemVulg(); } - if (SystemMapper.V11N_NAME.equals(name)) { + if (SystemKJVAPlus.V11N_NAME.equals(name)) { return new SystemVulg(); } @@ -208,7 +208,7 @@ private Versifications() { known.add(SystemSynodal.V11N_NAME); known.add(SystemSynodalProt.V11N_NAME); known.add(SystemVulg.V11N_NAME); - known.add(SystemMapper.V11N_NAME); + known.add(SystemKJVAPlus.V11N_NAME); fluffed = new HashMap(); }