1   /**
2    * Distribution License:
3    * JSword is free software; you can redistribute it and/or modify it under
4    * the terms of the GNU Lesser General Public License, version 2.1 or later
5    * as published by the Free Software Foundation. This program is distributed
6    * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
7    * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8    * See the GNU Lesser General Public License for more details.
9    *
10   * The License is available on the internet at:
11   *      http://www.gnu.org/copyleft/lgpl.html
12   * or by writing to:
13   *      Free Software Foundation, Inc.
14   *      59 Temple Place - Suite 330
15   *      Boston, MA 02111-1307, USA
16   *
17   * © CrossWire Bible Society, 2012 - 2016
18   *
19   */
20  package org.crosswire.jsword.versification.system;
21  
22  import org.crosswire.jsword.versification.BibleBook;
23  import org.crosswire.jsword.versification.Versification;
24  
25  /**
26   * LXX a compromise versification system, intended to allow encoding of Bibles using
27   * a number of slightly varying LXX-based versification systems. In particular, it was
28   * produced in consultation with OTs:
29   * <ul>
30   * <li>Rahlfs', </li>
31   * <li>Swete's, </li>
32   * <li>Tischendorf's, and Thomson's editions of the LXX</li>
33   * <li>the NETS, </li>
34   * <li>SAAS (OSB OT), </li>
35   * <li>Brenton, and </li>
36   * <li>Asser translations</li>
37   * <li>R. H. Charles' and James H. Charlesworth's anthologies of Apocrypha and Pseudepigrapha</li>
38   * <li>Henry E. J. Howard's Pentateuch and R. R. Ottley's Isaiah translations from the LXX.</li>
39   * </ul>
40   * In addition to the LXX OT, the GNT has been included in this system to facilitate production
41   * of modern Bibles such as the OSB, which are translated from the LXX but include the NT as well.
42   * The following NTs were consulted in producing this versification system:
43   * <ul>
44   * <li>Antoniades' Patriarchal GNT and its translation, </li>
45   * <li>the EOB</li>
46   * <li>the NKJV (OSB NT) and</li>
47   * <li>NRSV translations</li>
48   * </ul>
49   *
50   * All of these Bibles &amp; texts should be accommodated by this versification definition without
51   * requiring that any extra verses be appended; as a consequence, no Bible will include every
52   * verse of this system.
53   *
54   * @see gnu.lgpl.License The GNU Lesser General Public License for details.
55   * @author DM Smith
56   */
57  public class SystemLXX extends Versification {
58      /**
59       * Build the "LXX" Versification.
60       */
61      /* protected */ SystemLXX() {
62          super(V11N_NAME, BOOKS_OT, BOOKS_NT, LAST_VERSE_OT, LAST_VERSE_NT);
63      }
64  
65      public static final String V11N_NAME = "LXX";
66  
67      /* protected */ static final BibleBook[] BOOKS_OT =
68      {
69          BibleBook.GEN,
70          BibleBook.EXOD,
71          BibleBook.LEV,
72          BibleBook.NUM,
73          BibleBook.DEUT,
74          BibleBook.JOSH,
75          BibleBook.JUDG,
76          BibleBook.RUTH,
77          BibleBook.SAM1,
78          BibleBook.SAM2,
79          BibleBook.KGS1,
80          BibleBook.KGS2,
81          BibleBook.CHR1,
82          BibleBook.CHR2,
83          BibleBook.ESD1,
84          BibleBook.EZRA,
85          BibleBook.NEH,
86          BibleBook.ESTH,
87          BibleBook.JDT,
88          BibleBook.TOB,
89          BibleBook.MACC1,
90          BibleBook.MACC2,
91          BibleBook.MACC3,
92          BibleBook.MACC4,
93          BibleBook.PS,
94          BibleBook.PR_MAN,
95          BibleBook.PROV,
96          BibleBook.ECCL,
97          BibleBook.SONG,
98          BibleBook.JOB,
99          BibleBook.WIS,
100         BibleBook.SIR,
101         BibleBook.PSALM_SOL,
102         BibleBook.HOS,
103         BibleBook.AMOS,
104         BibleBook.MIC,
105         BibleBook.JOEL,
106         BibleBook.OBAD,
107         BibleBook.JONAH,
108         BibleBook.NAH,
109         BibleBook.HAB,
110         BibleBook.ZEPH,
111         BibleBook.HAG,
112         BibleBook.ZECH,
113         BibleBook.MAL,
114         BibleBook.ISA,
115         BibleBook.JER,
116         BibleBook.BAR,
117         BibleBook.LAM,
118         BibleBook.EP_JER,
119         BibleBook.EZEK,
120         BibleBook.PR_AZAR,
121         BibleBook.SUS,
122         BibleBook.DAN,
123         BibleBook.BEL,
124         BibleBook.EN1,
125         BibleBook.ODES,
126     };
127 
128     /* protected */ static final BibleBook[] BOOKS_NT = SystemDefault.BOOKS_NT;
129 
130     /** Constant for the max verse number in each chapter */
131     /* protected */ static final int[][] LAST_VERSE_OT =
132     {
133         // Genesis
134         {
135            31,  25,  25,  26,  32,  23,  24,  22,  29,  32,
136            32,  20,  18,  24,  21,  16,  27,  33,  39,  18,
137            34,  24,  20,  67,  34,  35,  46,  22,  35,  43,
138            55,  33,  20,  31,  29,  44,  36,  30,  23,  23,
139            57,  39,  34,  34,  28,  34,  31,  22,  33,  26,
140         },
141         // Exodus
142         {
143            22,  25,  22,  31,  23,  30,  29,  32,  35,  29,
144            10,  51,  22,  31,  27,  36,  16,  27,  25,  26,
145            37,  31,  33,  18,  40,  37,  21,  43,  46,  38,
146            18,  35,  23,  35,  35,  40,  21,  29,  23,  38,
147         },
148         // Leviticus
149         {
150            17,  16,  17,  35,  26,  40,  38,  36,  24,  20,
151            47,   8,  59,  57,  33,  34,  16,  30,  37,  27,
152            24,  33,  44,  23,  55,  46,  34,
153         },
154         // Numbers
155         {
156            54,  34,  51,  49,  31,  27,  89,  26,  23,  36,
157            35,  16,  34,  45,  41,  50,  28,  32,  22,  29,
158            35,  41,  30,  25,  18,  65,  23,  31,  40,  17,
159            54,  42,  56,  29,  34,  13,
160         },
161         // Deuteronomy
162         {
163            46,  37,  29,  49,  33,  25,  26,  20,  29,  22,
164            32,  32,  19,  29,  23,  22,  20,  22,  21,  20,
165            23,  30,  26,  24,  19,  19,  27,  69,  29,  20,
166            30,  52,  29,  12,
167         },
168         // Joshua
169         {
170            18,  24,  17,  24,  16,  27,  26,  35,  33,  43,
171            23,  24,  33,  15,  64,  10,  18,  28,  54,   9,
172            49,  34,  16,  36,
173         },
174         // Judges
175         {
176            36,  23,  31,  24,  32,  40,  25,  35,  57,  18,
177            40,  15,  25,  20,  20,  31,  13,  32,  30,  48,
178            25,
179         },
180         // Ruth
181         {
182            22,  23,  18,  22,
183         },
184         // I Samuel
185         {
186            28,  36,  21,  22,  12,  21,  17,  22,  27,  27,
187            15,  25,  23,  52,  35,  23,  58,  30,  24,  43,
188            16,  23,  29,  23,  44,  25,  12,  25,  11,  32,
189            13,
190         },
191         // II Samuel
192         {
193            27,  32,  39,  12,  26,  23,  29,  18,  13,  19,
194            27,  31,  39,  33,  37,  23,  29,  33,  44,  26,
195            22,  51,  41,  25,
196         },
197         // I Kings
198         {
199            53,  71,  39,  34,  32,  38,  51,  66,  28,  33,
200            44,  54,  34,  31,  34,  42,  24,  46,  21,  43,
201            43,  54,
202         },
203         // II Kings
204         {
205            22,  25,  27,  44,  27,  35,  20,  29,  37,  36,
206            21,  22,  25,  29,  38,  20,  41,  37,  37,  21,
207            26,  20,  37,  20,  30,
208         },
209         // I Chronicles
210         {
211            54,  55,  24,  43,  41,  81,  40,  40,  44,  14,
212            47,  41,  14,  17,  29,  43,  27,  17,  19,   8,
213            30,  19,  32,  31,  31,  32,  34,  21,  30,
214         },
215         // II Chronicles
216         {
217            18,  18,  17,  23,  14,  42,  22,  18,  31,  19,
218            23,  16,  23,  15,  19,  14,  19,  34,  11,  37,
219            20,  12,  21,  27,  28,  23,   9,  27,  36,  27,
220            21,  33,  25,  33,  31,  31,
221         },
222         // I Esdras
223         {
224            58,  30,  24,  63,  73,  34,  15,  96,  55,
225         },
226         // Ezra
227         {
228            11,  70,  13,  24,  17,  22,  28,  36,  15,  44,
229         },
230         // Nehemiah
231         {
232            11,  20,  37,  23,  19,  19,  73,  18,  38,  40,
233            36,  47,  31,
234         },
235         // Esther
236         {
237            22,  23,  15,  17,  22,  14,  10,  17,  35,  13,
238            17,   7,  30,  19,  24,  24,
239         },
240         // Judith
241         {
242            16,  28,  10,  15,  24,  21,  32,  36,  14,  23,
243            23,  20,  20,  19,  14,  25,
244         },
245         // Tobit
246         {
247            22,  14,  17,  21,  23,  19,  18,  21,   6,  14,
248            19,  22,  19,  15,
249         },
250         // I Maccabees
251         {
252            64,  70,  60,  61,  68,  63,  50,  32,  73,  89,
253            74,  53,  54,  49,  41,  24,
254         },
255         // II Maccabees
256         {
257            36,  32,  40,  50,  27,  31,  42,  36,  29,  38,
258            38,  46,  26,  46,  39,
259         },
260         // III Maccabees
261         {
262            29,  33,  30,  21,  51,  41,  23,
263         },
264         // IV Maccabees
265         {
266            35,  24,  21,  26,  38,  35,  25,  29,  32,  21,
267            27,  20,  27,  20,  32,  25,  24,  24,
268         },
269         // Psalms
270         {
271             6,  13,   9,   9,  13,  11,  18,  10,  40,   8,
272             9,   6,   7,   6,  11,  15,  51,  15,  10,  14,
273            32,   6,  10,  22,  12,  14,   9,  11,  13,  25,
274            11,  22,  23,  28,  13,  40,  23,  14,  18,  14,
275            12,   6,  27,  18,  12,  10,  15,  21,  23,  21,
276            11,   7,   9,  24,  14,  12,  12,  19,  14,   9,
277            13,  12,  11,  14,  20,   8,  36,  37,   7,  24,
278            20,  28,  23,  11,  13,  21,  72,  13,  20,  17,
279             8,  19,  13,  14,  17,   7,  19,  53,  17,  16,
280            16,   5,  23,  11,  13,  12,   9,   9,   5,   8,
281            29,  22,  36,  45,  48,  43,  14,  31,   7,  10,
282            10,   9,  26,  18,  19,   2,  29, 176,   7,   8,
283             9,   4,   8,   5,   7,   5,   6,   8,   8,   3,
284            18,   3,   3,  21,  26,   9,   8,  24,  15,  10,
285             8,  12,  15,  22,  10,  11,  20,  14,   9,   6,
286             7,
287         },
288         // Prayer of Manasses
289         {
290            15,
291         },
292         // Proverbs
293         {
294            35,  23,  38,  28,  23,  40,  28,  37,  25,  33,
295            31,  31,  27,  36,  38,  33,  30,  24,  29,  30,
296            31,  31,  36,  77,  31,  29,  29,  30,  49,  35,
297            31,
298         },
299         // Ecclesiastes
300         {
301            18,  26,  22,  17,  20,  12,  30,  17,  18,  20,
302            10,  14,
303         },
304         // Song of Solomon
305         {
306            17,  17,  11,  16,  17,  13,  14,  15,
307         },
308         // Job
309         {
310            22,  18,  26,  21,  27,  30,  22,  22,  35,  22,
311            20,  25,  28,  22,  35,  23,  16,  21,  29,  29,
312            34,  30,  17,  25,   6,  14,  23,  28,  25,  31,
313            40,  22,  33,  37,  16,  34,  24,  41,  35,  32,
314            34,  22,
315         },
316         // Wisdom
317         {
318            16,  25,  19,  20,  24,  27,  30,  21,  19,  21,
319            27,  27,  19,  31,  19,  29,  21,  25,  22,
320         },
321         // Sirach
322         {
323            30,  18,  31,  31,  15,  37,  36,  19,  18,  31,
324            34,  18,  26,  27,  20,  30,  32,  33,  31,  32,
325            28,  27,  28,  34,  26,  29,  30,  26,  28,  40,
326            31,  26,  33,  31,  26,  31,  31,  35,  35,  30,
327            27,  27,  33,  24,  26,  20,  25,  25,  16,  29,
328            30,
329         },
330         // Psalms of Solomon
331         {
332             8,  41,  16,  29,  22,   9,  10,  40,  20,   9,
333             9,   8,  12,  10,  15,  15,  51,  14,
334         },
335         // Hosea
336         {
337            11,  25,   5,  19,  15,  12,  16,  14,  17,  15,
338            12,  15,  16,  10,
339         },
340         // Amos
341         {
342            15,  16,  15,  13,  27,  15,  17,  14,  15,
343         },
344         // Micah
345         {
346            16,  13,  12,  14,  15,  16,  20,
347         },
348         // Joel
349         {
350            20,  32,  21,  21,
351         },
352         // Obadiah
353         {
354            21,
355         },
356         // Jonah
357         {
358            17,  11,  10,  11,
359         },
360         // Nahum
361         {
362            15,  14,  19,
363         },
364         // Habakkuk
365         {
366            17,  20,  19,
367         },
368         // Zephaniah
369         {
370            18,  15,  21,
371         },
372         // Haggai
373         {
374            15,  24,
375         },
376         // Zechariah
377         {
378            21,  17,  11,  14,  11,  15,  14,  23,  17,  12,
379            17,  14,   9,  21,
380         },
381         // Malachi
382         {
383            14,  17,  24,   6,
384         },
385         // Isaiah
386         {
387            31,  22,  26,   6,  30,  13,  25,  23,  21,  34,
388            16,   6,  22,  32,   9,  14,  14,   7,  25,   6,
389            17,  25,  18,  23,  12,  21,  13,  29,  24,  33,
390             9,  20,  24,  17,  10,  22,  38,  22,   8,  31,
391            29,  25,  28,  28,  26,  13,  15,  22,  26,  11,
392            23,  15,  12,  17,  13,  12,  21,  14,  21,  22,
393            11,  12,  20,  12,  25,  24,
394         },
395         // Jeremiah
396         {
397            19,  37,  25,  31,  31,  30,  34,  23,  26,  25,
398            23,  17,  27,  22,  21,  21,  27,  23,  15,  18,
399            14,  30,  42,  10,  39,  28,  46,  64,  31,  33,
400            47,  44,  24,  22,  19,  32,  24,  40,  44,  26,
401            22,  22,  32,  30,  28,  28,  16,  44,  38,  46,
402            63,  34,
403         },
404         // Baruch
405         {
406            22,  35,  38,  37,  9,
407         },
408         // Lamentations
409         {
410            22,  22,  66,  22,  22,
411         },
412         // Epistle of Jeremiah
413         {
414            73,
415         },
416         // Ezekiel
417         {
418            28,  13,  27,  17,  17,  14,  27,  18,  11,  22,
419            25,  28,  23,  23,   8,  63,  24,  32,  14,  49,
420            37,  31,  49,  27,  17,  21,  36,  26,  21,  26,
421            18,  32,  33,  31,  15,  38,  28,  23,  29,  49,
422            26,  20,  27,  31,  25,  24,  23,  35,
423         },
424         // Prayer of Azariah
425         {
426            68,
427         },
428         // Susanna
429         {
430            64,
431         },
432         // Daniel
433         {
434            21,  49, 100,  37,  31,  29,  28,  27,  27,  21,
435            45,  13,
436         },
437         // Bel and the Dragon
438         {
439            42,
440         },
441         // I Enoch
442         {
443             9,   3,   1,   1,  10,   8,   6,   4,  11,  22,
444             2,   6,  10,  25,  12,   4,   8,  16,   3,   8,
445            10,  14,   4,   6,   7,   6,   5,   3,   2,   3,
446             3,   6,   4,   3,   1,   4,   6,   6,  14,  10,
447             9,   3,   4,   1,   6,   8,   4,  10,   4,   5,
448             5,   9,   7,  10,   4,   8,   3,   6,   3,  25,
449            13,  16,  12,   2,  12,   3,  13,   5,  30,   4,
450            17,  37,   8,  17,   9,  14,   9,  17,   6,   8,
451            10,  20,  11,   6,  10,   6,   4,   3,  77,  43,
452            19,  17,  14,  11,   7,   8,  10,  16,  16,  13,
453             9,  11,  15,  13,   2,  19,   3,  15,
454         },
455         // Odes
456         {
457            19,  43,  10,  20,  20,  19,  45,  88,  79,  88,
458            55,  32,  79,  46,
459         },
460     };
461 
462     /* protected */ static final int[][] LAST_VERSE_NT =
463     {
464         // Matthew
465         {
466            25,  23,  17,  25,  48,  34,  29,  34,  38,  42,
467            30,  50,  58,  36,  39,  28,  27,  35,  30,  34,
468            46,  46,  39,  51,  46,  75,  66,  20,
469         },
470         // Mark
471         {
472            45,  28,  35,  41,  43,  56,  37,  38,  50,  52,
473            33,  44,  37,  72,  47,  20,
474         },
475         // Luke
476         {
477            80,  52,  38,  44,  39,  49,  50,  56,  62,  42,
478            54,  59,  35,  35,  32,  31,  37,  43,  48,  47,
479            38,  71,  56,  53,
480         },
481         // John
482         {
483            52,  25,  36,  54,  47,  71,  53,  59,  41,  42,
484            57,  50,  38,  31,  27,  33,  26,  40,  42,  31,
485            25,
486         },
487         // Acts
488         {
489            26,  47,  26,  37,  42,  15,  60,  40,  43,  48,
490            30,  25,  52,  28,  41,  40,  34,  28,  41,  38,
491            40,  30,  35,  27,  27,  32,  44,  31,
492         },
493         // Romans
494         {
495            32,  29,  31,  25,  21,  23,  25,  39,  33,  21,
496            36,  21,  14,  26,  33,  27,
497         },
498         // I Corinthians
499         {
500            31,  16,  23,  21,  13,  20,  40,  13,  27,  33,
501            34,  31,  13,  40,  58,  24,
502         },
503         // II Corinthians
504         {
505            24,  17,  18,  18,  21,  18,  16,  24,  15,  18,
506            33,  21,  14,
507         },
508         // Galatians
509         {
510            24,  21,  29,  31,  26,  18,
511         },
512         // Ephesians
513         {
514            23,  22,  21,  32,  33,  24,
515         },
516         // Philippians
517         {
518            30,  30,  21,  23,
519         },
520         // Colossians
521         {
522            29,  23,  25,  18,
523         },
524         // I Thessalonians
525         {
526            10,  20,  13,  18,  28,
527         },
528         // II Thessalonians
529         {
530            12,  17,  18,
531         },
532         // I Timothy
533         {
534            20,  15,  16,  16,  25,  21,
535         },
536         // II Timothy
537         {
538            18,  26,  17,  22,
539         },
540         // Titus
541         {
542            16,  15,  15,
543         },
544         // Philemon
545         {
546            25,
547         },
548         // Hebrews
549         {
550            14,  18,  19,  16,  14,  20,  28,  13,  28,  39,
551            40,  29,  25,
552         },
553         // James
554         {
555            27,  26,  18,  17,  20,
556         },
557         // I Peter
558         {
559            25,  25,  22,  19,  14,
560         },
561         // II Peter
562         {
563            21,  22,  18,
564         },
565         // I John
566         {
567            10,  29,  24,  21,  21,
568         },
569         // II John
570         {
571            13,
572         },
573         // III John
574         {
575            15,
576         },
577         // Jude
578         {
579            25,
580         },
581         // Revelation of John
582         {
583            20,  29,  22,  11,  14,  17,  17,  13,  21,  11,
584            19,  18,  18,  20,   9,  21,  18,  24,  21,  15,
585            27,  21
586         },
587     };
588 
589     /**
590      * Serialization ID
591      */
592     private static final long serialVersionUID = 3365882007485277007L;
593 }
594