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   * The Synodal versification data is based on the Synodal and Slavonic
27   * translations from rusbible dot ru (of early 2009) and the BFBS Synodal database,
28   * as supplied by Konstantin Maslyuk. The three data sets were compared. The two
29   * Synodal sets were in agreement on all substantive matters. The Slavonic data
30   * set had numerous deviations from the Synodal sets, so all points of
31   * disagreement were verified against a printed Synodal translation (from the
32   * Judson Press, printed 1900) and demonstrated that the two Synodal data sets
33   * were in all cases correct (and also showed that the printed edition itself
34   * has some errors in verse numbers). In select instances, printed editions of a
35   * Polish translation and an OCS Bible, which employ very similar
36   * versifications, were also consulted.
37   *
38   * Some details that may not be immediately obvious: <br>
39   * The Prologue to Sirach is neither a separate book nor a separate chapter of
40   * Sirach. It should be placed within the introduction of Sirach (Sir.0.0). <br>
41   * The Prayer of Manasseh (PrMan) is a separate book, following 2Chr. This is
42   * primarily for referencing purposes, but also because PrMan is explicitly NOT
43   * the final chapter of 2Chr, though it is often printed as an appendix to that
44   * book. <br>
45   * The first, second, and third books of Ezra or Esdras (so named according to
46   * Slavonic Orthodox tradition) have the OSIS names Ezra, 1Esd, and 2Esd,
47   * respectively. This is due to the strange history of the books of Ezra/Esdras
48   * in the eastern &amp; western Churches and the standard naming conventions
49   * proscribed by the SBL (which BTG &amp; OSIS follow). <br>
50   * The Epistle of Jeremiah and Baruch are two separate books.
51   *
52   *
53   * @see gnu.lgpl.License The GNU Lesser General Public License for details.
54   * @author DM Smith
55   */
56  public class SystemSynodal extends Versification {
57      /**
58       * Build the "Synodal" Versification.
59       */
60      /* protected */ SystemSynodal() {
61          super(V11N_NAME, BOOKS_OT, BOOKS_NT, LAST_VERSE_OT, LAST_VERSE_NT);
62      }
63  
64      public static final String V11N_NAME = "Synodal";
65  
66      // Contains deuterocanonical books
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.PR_MAN,
84          BibleBook.EZRA,
85          BibleBook.NEH,
86          BibleBook.ESD1,
87          BibleBook.TOB,
88          BibleBook.JDT,
89          BibleBook.ESTH,
90          BibleBook.JOB,
91          BibleBook.PS,
92          BibleBook.PROV,
93          BibleBook.ECCL,
94          BibleBook.SONG,
95          BibleBook.WIS,
96          BibleBook.SIR,
97          BibleBook.ISA,
98          BibleBook.JER,
99          BibleBook.LAM,
100         BibleBook.EP_JER,
101         BibleBook.BAR,
102         BibleBook.EZEK,
103         BibleBook.DAN,
104         BibleBook.HOS,
105         BibleBook.JOEL,
106         BibleBook.AMOS,
107         BibleBook.OBAD,
108         BibleBook.JONAH,
109         BibleBook.MIC,
110         BibleBook.NAH,
111         BibleBook.HAB,
112         BibleBook.ZEPH,
113         BibleBook.HAG,
114         BibleBook.ZECH,
115         BibleBook.MAL,
116         BibleBook.MACC1,
117         BibleBook.MACC2,
118         BibleBook.MACC3,
119         BibleBook.ESD2,
120     };
121 
122     // The books are the SystemDefault.BOOKS_NT
123     // in a different order
124     /* protected */ static final BibleBook[] BOOKS_NT =
125     {
126         BibleBook.MATT,
127         BibleBook.MARK,
128         BibleBook.LUKE,
129         BibleBook.JOHN,
130         BibleBook.ACTS,
131         BibleBook.JAS,
132         BibleBook.PET1,
133         BibleBook.PET2,
134         BibleBook.JOHN1,
135         BibleBook.JOHN2,
136         BibleBook.JOHN3,
137         BibleBook.JUDE,
138         BibleBook.ROM,
139         BibleBook.COR1,
140         BibleBook.COR2,
141         BibleBook.GAL,
142         BibleBook.EPH,
143         BibleBook.PHIL,
144         BibleBook.COL,
145         BibleBook.THESS1,
146         BibleBook.THESS2,
147         BibleBook.TIM1,
148         BibleBook.TIM2,
149         BibleBook.TITUS,
150         BibleBook.PHLM,
151         BibleBook.HEB,
152         BibleBook.REV,
153     };
154 
155     /* protected */ static final int[][] LAST_VERSE_OT =
156     {
157         // Genesis
158         {
159            31,  25,  24,  26,  32,  22,  24,  22,  29,  32,
160            32,  20,  18,  24,  21,  16,  27,  33,  38,  18,
161            34,  24,  20,  67,  34,  35,  46,  22,  35,  43,
162            55,  32,  20,  31,  29,  43,  36,  30,  23,  23,
163            57,  38,  34,  34,  28,  34,  31,  22,  33,  26,
164         },
165         // Exodus
166         {
167            22,  25,  22,  31,  23,  30,  25,  32,  35,  29,
168            10,  51,  22,  31,  27,  36,  16,  27,  25,  26,
169            36,  31,  33,  18,  40,  37,  21,  43,  46,  38,
170            18,  35,  23,  35,  35,  38,  29,  31,  43,  38,
171         },
172         // Leviticus
173         {
174            17,  16,  17,  35,  19,  30,  38,  36,  24,  20,
175            47,   8,  59,  56,  33,  34,  16,  30,  37,  27,
176            24,  33,  44,  23,  55,  46,  34,
177         },
178         // Numbers
179         {
180            54,  34,  51,  49,  31,  27,  89,  26,  23,  36,
181            35,  15,  34,  45,  41,  50,  13,  32,  22,  29,
182            35,  41,  30,  25,  18,  65,  23,  31,  39,  17,
183            54,  42,  56,  29,  34,  13,
184         },
185         // Deuteronomy
186         {
187            46,  37,  29,  49,  33,  25,  26,  20,  29,  22,
188            32,  32,  18,  29,  23,  22,  20,  22,  21,  20,
189            23,  30,  25,  22,  19,  19,  26,  68,  29,  20,
190            30,  52,  29,  12,
191         },
192         // Joshua
193         {
194            18,  24,  17,  24,  16,  26,  26,  35,  27,  43,
195            23,  24,  33,  15,  63,  10,  18,  28,  51,   9,
196            45,  34,  16,  36,
197         },
198         // Judges
199         {
200            36,  23,  31,  24,  31,  40,  25,  35,  57,  18,
201            40,  15,  25,  20,  20,  31,  13,  31,  30,  48,
202            25,
203         },
204         // Ruth
205         {
206            22,  23,  18,  22,
207         },
208         // I Samuel
209         {
210            28,  36,  21,  22,  12,  21,  17,  22,  27,  27,
211            15,  25,  23,  52,  35,  23,  58,  30,  24,  43,
212            15,  23,  28,  23,  44,  25,  12,  25,  11,  31,
213            13,
214         },
215         // II Samuel
216         {
217            27,  32,  39,  12,  25,  23,  29,  18,  13,  19,
218            27,  31,  39,  33,  37,  23,  29,  33,  43,  26,
219            22,  51,  39,  25,
220         },
221         // I Kings
222         {
223            53,  46,  28,  34,  18,  38,  51,  66,  28,  29,
224            43,  33,  34,  31,  34,  34,  24,  46,  21,  43,
225            29,  53,
226         },
227         // II Kings
228         {
229            18,  25,  27,  44,  27,  33,  20,  29,  37,  36,
230            21,  21,  25,  29,  38,  20,  41,  37,  37,  21,
231            26,  20,  37,  20,  30,
232         },
233         // I Chronicles
234         {
235            54,  55,  24,  43,  26,  81,  40,  40,  44,  14,
236            47,  40,  14,  17,  29,  43,  27,  17,  19,   8,
237            30,  19,  32,  31,  31,  32,  34,  21,  30,
238         },
239         // II Chronicles
240         {
241            17,  18,  17,  22,  14,  42,  22,  18,  31,  19,
242            23,  16,  22,  15,  19,  14,  19,  34,  11,  37,
243            20,  12,  21,  27,  28,  23,   9,  27,  36,  27,
244            21,  33,  25,  33,  27,  23,
245         },
246         // Prayer of Manasses
247         {
248            12,
249         },
250         // Ezra
251         {
252            11,  70,  13,  24,  17,  22,  28,  36,  15,  44,
253         },
254         // Nehemiah
255         {
256            11,  20,  32,  23,  19,  19,  73,  18,  38,  39,
257            36,  47,  31,
258         },
259         // I Esdras
260         {
261            58,  31,  24,  63,  70,  34,  15,  92,  55,
262         },
263         // Tobit
264         {
265            22,  14,  17,  21,  22,  18,  17,  21,   6,  13,
266            18,  22,  18,  15,
267         },
268         // Judith
269         {
270            16,  28,  10,  15,  24,  21,  32,  36,  14,  23,
271            23,  20,  20,  19,  14,  25,
272         },
273         // Esther
274         {
275            22,  23,  15,  17,  14,  14,  10,  17,  32,   3,
276         },
277         // Job
278         {
279            22,  13,  26,  21,  27,  30,  21,  22,  35,  22,
280            20,  25,  28,  22,  35,  22,  16,  21,  29,  29,
281            34,  30,  17,  25,   6,  14,  23,  28,  25,  31,
282            40,  22,  33,  37,  16,  33,  24,  41,  35,  27,
283            26,  17,
284         },
285         // Psalms
286         {
287             6,  12,   9,   9,  13,  11,  18,  10,  39,   7,
288             9,   6,   7,   5,  11,  15,  51,  15,  10,  14,
289            32,   6,  10,  22,  12,  14,   9,  11,  13,  25,
290            11,  22,  23,  28,  13,  40,  23,  14,  18,  14,
291            12,   5,  27,  18,  12,  10,  15,  21,  23,  21,
292            11,   7,   9,  24,  14,  12,  12,  18,  14,   9,
293            13,  12,  11,  14,  20,   8,  36,  37,   6,  24,
294            20,  28,  23,  11,  13,  21,  72,  13,  20,  17,
295             8,  19,  13,  14,  17,   7,  19,  53,  17,  16,
296            16,   5,  23,  11,  13,  12,   9,   9,   5,   8,
297            29,  22,  35,  45,  48,  43,  14,  31,   7,  10,
298            10,   9,  26,   9,  10,   2,  29, 176,   7,   8,
299             9,   4,   8,   5,   6,   5,   6,   8,   8,   3,
300            18,   3,   3,  21,  26,   9,   8,  24,  14,  10,
301             7,  12,  15,  21,  10,  11,   9,  14,   9,   6,
302             7,
303         },
304         // Proverbs
305         {
306            33,  22,  35,  29,  23,  35,  27,  36,  18,  32,
307            31,  28,  26,  35,  33,  33,  28,  25,  29,  30,
308            31,  29,  35,  34,  28,  28,  27,  28,  27,  33,
309            31,
310         },
311         // Ecclesiastes
312         {
313            18,  26,  22,  17,  19,  12,  29,  17,  18,  20,
314            10,  14,
315         },
316         // Song of Solomon
317         {
318            16,  17,  11,  16,  16,  12,  14,  14,
319         },
320         // Wisdom
321         {
322            16,  24,  19,  20,  24,  27,  30,  21,  19,  21,
323            27,  28,  19,  31,  19,  29,  20,  25,  21,
324         },
325         // Sirach
326         {
327            30,  18,  31,  35,  18,  37,  39,  22,  23,  34,
328            34,  18,  32,  27,  20,  31,  31,  33,  28,  31,
329            31,  31,  37,  37,  29,  27,  33,  30,  31,  27,
330            37,  25,  33,  26,  23,  29,  34,  39,  42,  32,
331            29,  26,  36,  27,  31,  23,  31,  28,  18,  31,
332            38,
333         },
334         // Isaiah
335         {
336            31,  22,  25,   6,  30,  13,  25,  22,  21,  34,
337            16,   6,  22,  32,   9,  14,  14,   7,  25,   6,
338            17,  25,  18,  23,  12,  21,  13,  29,  24,  33,
339             9,  20,  24,  17,  10,  22,  38,  22,   8,  31,
340            29,  25,  28,  28,  25,  13,  15,  22,  26,  11,
341            23,  15,  12,  17,  13,  12,  21,  14,  21,  22,
342            11,  12,  19,  12,  25,  24,
343         },
344         // Jeremiah
345         {
346            19,  37,  25,  31,  31,  30,  34,  22,  26,  25,
347            23,  17,  27,  22,  21,  21,  27,  23,  15,  18,
348            14,  30,  40,  10,  38,  24,  22,  17,  32,  24,
349            40,  44,  26,  22,  19,  32,  21,  28,  18,  16,
350            18,  22,  13,  30,   5,  28,   7,  47,  39,  46,
351            64,  34,
352         },
353         // Lamentations
354         {
355            22,  22,  66,  22,  22,
356         },
357         // Epistle of Jeremiah
358         {
359            72,
360         },
361         // Baruch
362         {
363            22,  35,  38,  37,   9,
364         },
365         // Ezekiel
366         {
367            28,  10,  27,  17,  17,  14,  27,  18,  11,  22,
368            25,  28,  23,  23,   8,  63,  24,  32,  14,  49,
369            32,  31,  49,  27,  17,  21,  36,  26,  21,  26,
370            18,  32,  33,  31,  15,  38,  28,  23,  29,  49,
371            26,  20,  27,  31,  25,  24,  23,  35,
372         },
373         // Daniel
374         {
375            21,  49, 100,  34,  31,  28,  28,  27,  27,  21,
376            45,  13,  64,  42,
377         },
378         // Hosea
379         {
380            11,  23,   5,  19,  15,  11,  16,  14,  17,  15,
381            12,  14,  15,  10,
382         },
383         // Joel
384         {
385            20,  32,  21,
386         },
387         // Amos
388         {
389            15,  16,  15,  13,  27,  14,  17,  14,  15,
390         },
391         // Obadiah
392         {
393            21,
394         },
395         // Jonah
396         {
397            16,  11,  10,  11,
398         },
399         // Micah
400         {
401            16,  13,  12,  13,  15,  16,  20,
402         },
403         // Nahum
404         {
405            15,  13,  19,
406         },
407         // Habakkuk
408         {
409            17,  20,  19,
410         },
411         // Zephaniah
412         {
413            18,  15,  20,
414         },
415         // Haggai
416         {
417            15,  23,
418         },
419         // Zechariah
420         {
421            21,  13,  10,  14,  11,  15,  14,  23,  17,  12,
422            17,  14,   9,  21,
423         },
424         // Malachi
425         {
426            14,  17,  18,   6,
427         },
428         // I Maccabees
429         {
430            64,  70,  60,  61,  68,  63,  50,  32,  73,  89,
431            74,  53,  53,  49,  41,  24,
432         },
433         // II Maccabees
434         {
435            36,  33,  40,  50,  27,  31,  42,  36,  29,  38,
436            38,  45,  26,  46,  39,
437         },
438         // III Maccabees
439         {
440            25,  24,  22,  16,  36,  37,  20,
441         },
442         // II Esdras
443         {
444            40,  48,  36,  52,  56,  59,  70,  63,  47,  60,
445            46,  51,  58,  48,  63,  78,
446         },
447     };
448 
449     /* protected */ static final int[][] LAST_VERSE_NT =
450     {
451         // Matthew
452         {
453            25,  23,  17,  25,  48,  34,  29,  34,  38,  42,
454            30,  50,  58,  36,  39,  28,  27,  35,  30,  34,
455            46,  46,  39,  51,  46,  75,  66,  20,
456         },
457         // Mark
458         {
459            45,  28,  35,  41,  43,  56,  37,  38,  50,  52,
460            33,  44,  37,  72,  47,  20,
461         },
462         // Luke
463         {
464            80,  52,  38,  44,  39,  49,  50,  56,  62,  42,
465            54,  59,  35,  35,  32,  31,  37,  43,  48,  47,
466            38,  71,  56,  53,
467         },
468         // John
469         {
470            51,  25,  36,  54,  47,  71,  53,  59,  41,  42,
471            57,  50,  38,  31,  27,  33,  26,  40,  42,  31,
472            25,
473         },
474         // Acts
475         {
476            26,  47,  26,  37,  42,  15,  60,  40,  43,  48,
477            30,  25,  52,  28,  41,  40,  34,  28,  40,  38,
478            40,  30,  35,  27,  27,  32,  44,  31,
479         },
480         // James
481         {
482            27,  26,  18,  17,  20,
483         },
484         // I Peter
485         {
486            25,  25,  22,  19,  14,
487         },
488         // II Peter
489         {
490            21,  22,  18,
491         },
492         // I John
493         {
494            10,  29,  24,  21,  21,
495         },
496         // II John
497         {
498            13,
499         },
500         // III John
501         {
502            15,
503         },
504         // Jude
505         {
506            25,
507         },
508         // Romans
509         {
510            32,  29,  31,  25,  21,  23,  25,  39,  33,  21,
511            36,  21,  14,  26,  33,  24,
512         },
513         // I Corinthians
514         {
515            31,  16,  23,  21,  13,  20,  40,  13,  27,  33,
516            34,  31,  13,  40,  58,  24,
517         },
518         // II Corinthians
519         {
520            24,  17,  18,  18,  21,  18,  16,  24,  15,  18,
521            32,  21,  13,
522         },
523         // Galatians
524         {
525            24,  21,  29,  31,  26,  18,
526         },
527         // Ephesians
528         {
529            23,  22,  21,  32,  33,  24,
530         },
531         // Philippians
532         {
533            30,  30,  21,  23,
534         },
535         // Colossians
536         {
537            29,  23,  25,  18,
538         },
539         // I Thessalonians
540         {
541            10,  20,  13,  18,  28,
542         },
543         // II Thessalonians
544         {
545            12,  17,  18,
546         },
547         // I Timothy
548         {
549            20,  15,  16,  16,  25,  21,
550         },
551         // II Timothy
552         {
553            18,  26,  17,  22,
554         },
555         // Titus
556         {
557            16,  15,  15,
558         },
559         // Philemon
560         {
561            25,
562         },
563         // Hebrews
564         {
565            14,  18,  19,  16,  14,  20,  28,  13,  28,  39,
566            40,  29,  25,
567         },
568         // Revelation of John
569         {
570            20,  29,  22,  11,  14,  17,  17,  13,  21,  11,
571            19,  17,  18,  20,   8,  21,  18,  24,  21,  15,
572            27,  21
573         }
574     };
575 
576    /**
577     * Serialization ID
578     */
579    private static final long serialVersionUID = -6281906491023123413L;
580 }
581