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   *
27   *
28   * @see gnu.lgpl.License The GNU Lesser General Public License for details.
29   * @author DM Smith
30   */
31  public class SystemVulg extends Versification {
32      /**
33       * Build the "Vulg" Versification.
34       */
35      /* protected */ SystemVulg() {
36          super(V11N_NAME, BOOKS_OT, BOOKS_NT, LAST_VERSE_OT, LAST_VERSE_NT);
37      }
38  
39      public static final String V11N_NAME = "Vulg";
40  
41      // Has all the SystemDefault.booksOT
42      // with deuterocanonical books mixed into
43      // a very distinctive order
44      /* protected */ static final BibleBook[] BOOKS_OT =
45      {
46          BibleBook.GEN,
47          BibleBook.EXOD,
48          BibleBook.LEV,
49          BibleBook.NUM,
50          BibleBook.DEUT,
51          BibleBook.JOSH,
52          BibleBook.JUDG,
53          BibleBook.RUTH,
54          BibleBook.SAM1,
55          BibleBook.SAM2,
56          BibleBook.KGS1,
57          BibleBook.KGS2,
58          BibleBook.CHR1,
59          BibleBook.CHR2,
60          BibleBook.EZRA,
61          BibleBook.NEH,
62          BibleBook.TOB,
63          BibleBook.JDT,
64          BibleBook.ESTH,
65          BibleBook.JOB,
66          BibleBook.PS,
67          BibleBook.PROV,
68          BibleBook.ECCL,
69          BibleBook.SONG,
70          BibleBook.WIS,
71          BibleBook.SIR,
72          BibleBook.ISA,
73          BibleBook.JER,
74          BibleBook.LAM,
75          BibleBook.BAR,
76          BibleBook.EZEK,
77          BibleBook.DAN,
78          BibleBook.HOS,
79          BibleBook.JOEL,
80          BibleBook.AMOS,
81          BibleBook.OBAD,
82          BibleBook.JONAH,
83          BibleBook.MIC,
84          BibleBook.NAH,
85          BibleBook.HAB,
86          BibleBook.ZEPH,
87          BibleBook.HAG,
88          BibleBook.ZECH,
89          BibleBook.MAL,
90          BibleBook.MACC1,
91          BibleBook.MACC2,
92      };
93  
94      // Start with SystemDefault.booksNT
95      // and follow with additional deuterocanonical books
96      /* protected */ static final BibleBook[] BOOKS_NT =
97      {
98          BibleBook.MATT,
99          BibleBook.MARK,
100         BibleBook.LUKE,
101         BibleBook.JOHN,
102         BibleBook.ACTS,
103         BibleBook.ROM,
104         BibleBook.COR1,
105         BibleBook.COR2,
106         BibleBook.GAL,
107         BibleBook.EPH,
108         BibleBook.PHIL,
109         BibleBook.COL,
110         BibleBook.THESS1,
111         BibleBook.THESS2,
112         BibleBook.TIM1,
113         BibleBook.TIM2,
114         BibleBook.TITUS,
115         BibleBook.PHLM,
116         BibleBook.HEB,
117         BibleBook.JAS,
118         BibleBook.PET1,
119         BibleBook.PET2,
120         BibleBook.JOHN1,
121         BibleBook.JOHN2,
122         BibleBook.JOHN3,
123         BibleBook.JUDE,
124         BibleBook.REV,
125         // Additional books
126         BibleBook.PR_MAN,
127         BibleBook.ESD1,
128         BibleBook.ESD2,
129         BibleBook.ADD_PS,
130         BibleBook.EP_LAO,
131     };
132 
133     /* protected */ static final int[][] LAST_VERSE_OT =
134     {
135         // Genesis
136         {
137            31,  25,  24,  26,  31,  22,  24,  22,  29,  32,
138            32,  20,  18,  24,  21,  16,  27,  33,  38,  18,
139            34,  24,  20,  67,  34,  35,  46,  22,  35,  43,
140            55,  32,  20,  31,  29,  43,  36,  30,  23,  23,
141            57,  38,  34,  34,  28,  34,  31,  22,  32,  25,
142         },
143         // Exodus
144         {
145            22,  25,  22,  31,  23,  30,  25,  32,  35,  29,
146            10,  51,  22,  31,  27,  36,  16,  27,  25,  26,
147            36,  31,  33,  18,  40,  37,  21,  43,  46,  38,
148            18,  35,  23,  35,  35,  38,  29,  31,  43,  36,
149         },
150         // Leviticus
151         {
152            17,  16,  17,  35,  19,  30,  38,  36,  24,  20,
153            47,   8,  59,  57,  33,  34,  16,  30,  37,  27,
154            24,  33,  44,  23,  55,  45,  34,
155         },
156         // Numbers
157         {
158            54,  34,  51,  49,  31,  27,  89,  26,  23,  36,
159            34,  15,  34,  45,  41,  50,  13,  32,  22,  30,
160            35,  41,  30,  25,  18,  65,  23,  31,  39,  17,
161            54,  42,  56,  29,  34,  13,
162         },
163         // Deuteronomy
164         {
165            46,  37,  29,  49,  33,  25,  26,  20,  29,  22,
166            32,  32,  18,  29,  23,  22,  20,  22,  21,  20,
167            23,  30,  25,  22,  19,  19,  26,  68,  29,  20,
168            30,  52,  29,  12,
169         },
170         // Joshua
171         {
172            18,  24,  17,  25,  16,  27,  26,  35,  27,  43,
173            23,  24,  33,  15,  63,  10,  18,  28,  51,   9,
174            43,  34,  16,  33,
175         },
176         // Judges
177         {
178            36,  23,  31,  24,  32,  40,  25,  35,  57,  18,
179            40,  15,  25,  20,  20,  31,  13,  31,  30,  48,
180            24,
181         },
182         // Ruth
183         {
184            22,  23,  18,  22,
185         },
186         // I Samuel
187         {
188            28,  36,  21,  22,  12,  21,  17,  22,  27,  27,
189            15,  25,  23,  52,  35,  23,  58,  30,  24,  43,
190            15,  23,  28,  23,  44,  25,  12,  25,  11,  31,
191            13,
192         },
193         // II Samuel
194         {
195            27,  32,  39,  12,  25,  23,  29,  18,  13,  19,
196            27,  31,  39,  33,  37,  23,  29,  33,  43,  26,
197            22,  51,  39,  25,
198         },
199         // I Kings
200         {
201            53,  46,  28,  34,  18,  38,  51,  66,  28,  29,
202            43,  33,  34,  31,  34,  34,  24,  46,  21,  43,
203            29,  54,
204         },
205         // II Kings
206         {
207            18,  25,  27,  44,  27,  33,  20,  29,  37,  36,
208            21,  21,  25,  29,  38,  20,  41,  37,  37,  21,
209            26,  20,  37,  20,  30,
210         },
211         // I Chronicles
212         {
213            54,  55,  24,  43,  26,  81,  40,  40,  44,  14,
214            46,  40,  14,  17,  29,  43,  27,  17,  19,   7,
215            30,  19,  32,  31,  31,  32,  34,  21,  30,
216         },
217         // II Chronicles
218         {
219            17,  18,  17,  22,  14,  42,  22,  18,  31,  19,
220            23,  16,  22,  15,  19,  14,  19,  34,  11,  37,
221            20,  12,  21,  27,  28,  23,   9,  27,  36,  27,
222            21,  33,  25,  33,  27,  23,
223         },
224         // Ezra
225         {
226            11,  70,  13,  24,  17,  22,  28,  36,  15,  44,
227         },
228         // Nehemiah
229         {
230            11,  20,  31,  23,  19,  19,  73,  18,  38,  39,
231            36,  46,  31,
232         },
233         // Tobit
234         {
235            25,  23,  25,  23,  28,  22,  20,  24,  12,  13,
236            21,  22,  23,  17,
237         },
238         // Judith
239         {
240            12,  18,  15,  17,  29,  21,  25,  34,  19,  20,
241            21,  20,  31,  18,  15,  31,
242         },
243         // Esther
244         {
245            22,  23,  15,  17,  14,  14,  10,  17,  32,  13,
246            12,   6,  18,  19,  19,  24,
247         },
248         // Job
249         {
250            22,  13,  26,  21,  27,  30,  21,  22,  35,  22,
251            20,  25,  28,  22,  35,  23,  16,  21,  29,  29,
252            34,  30,  17,  25,   6,  14,  23,  28,  25,  31,
253            40,  22,  33,  37,  16,  33,  24,  41,  35,  28,
254            25,  16,
255         },
256         // Psalms
257         {
258             6,  13,   9,  10,  13,  11,  18,  10,  39,   8,
259             9,   6,   7,   5,  11,  15,  51,  15,  10,  14,
260            32,   6,  10,  22,  12,  14,   9,  11,  13,  25,
261            11,  22,  23,  28,  13,  40,  23,  14,  18,  14,
262            12,   6,  26,  18,  12,  10,  15,  21,  23,  21,
263            11,   7,   9,  24,  13,  12,  12,  18,  14,   9,
264            13,  12,  11,  14,  20,   8,  36,  37,   6,  24,
265            20,  28,  23,  11,  13,  21,  72,  13,  20,  17,
266             8,  19,  13,  14,  17,   7,  19,  53,  17,  16,
267            16,   5,  23,  11,  13,  12,   9,   9,   5,   8,
268            29,  22,  35,  45,  48,  43,  14,  31,   7,  10,
269            10,   9,  26,   9,  10,   2,  29, 176,   7,   8,
270             9,   4,   8,   5,   7,   5,   6,   8,   8,   3,
271            18,   3,   3,  21,  27,   9,   8,  24,  14,  10,
272             8,  12,  15,  21,  10,  11,   9,  14,   9,   6,
273         },
274         // Proverbs
275         {
276            33,  22,  35,  27,  23,  35,  27,  36,  18,  32,
277            31,  28,  25,  35,  33,  33,  28,  24,  29,  30,
278            31,  29,  35,  34,  28,  28,  27,  28,  27,  33,
279            31,
280         },
281         // Ecclesiastes
282         {
283            18,  26,  22,  17,  19,  11,  30,  17,  18,  20,
284            10,  14,
285         },
286         // Song of Solomon
287         {
288            16,  17,  11,  16,  17,  12,  13,  14,
289         },
290         // Wisdom
291         {
292            16,  25,  19,  20,  24,  27,  30,  21,  19,  21,
293            27,  27,  19,  31,  19,  29,  20,  25,  20,
294         },
295         // Sirach
296         {
297            40,  23,  34,  36,  18,  37,  40,  22,  25,  34,
298            36,  19,  32,  27,  22,  31,  31,  33,  28,  33,
299            31,  33,  38,  47,  36,  28,  33,  30,  35,  27,
300            42,  28,  33,  31,  26,  28,  34,  39,  41,  32,
301            28,  26,  37,  27,  31,  23,  31,  28,  19,  31,
302            38,
303         },
304         // Isaiah
305         {
306            31,  22,  26,   6,  30,  13,  25,  22,  21,  34,
307            16,   6,  22,  32,   9,  14,  14,   7,  25,   6,
308            17,  25,  18,  23,  12,  21,  13,  29,  24,  33,
309             9,  20,  24,  17,  10,  22,  38,  22,   8,  31,
310            29,  25,  28,  28,  26,  13,  15,  22,  26,  11,
311            23,  15,  12,  17,  13,  12,  21,  14,  21,  22,
312            11,  12,  19,  12,  25,  24,
313         },
314         // Jeremiah
315         {
316            19,  37,  25,  31,  31,  30,  34,  22,  26,  25,
317            23,  17,  27,  22,  21,  21,  27,  23,  15,  18,
318            14,  30,  40,  10,  38,  24,  22,  17,  32,  24,
319            40,  44,  26,  22,  19,  32,  20,  28,  18,  16,
320            18,  22,  13,  30,   5,  28,   7,  47,  39,  46,
321            64,  34,
322         },
323         // Lamentations
324         {
325            22,  22,  66,  22,  22,
326         },
327         // Baruch
328         {
329            22,  35,  38,  37,   9,  72,
330         },
331         // Ezekiel
332         {
333            28,   9,  27,  17,  17,  14,  27,  18,  11,  22,
334            25,  28,  23,  23,   8,  63,  24,  32,  14,  49,
335            32,  31,  49,  27,  17,  21,  36,  26,  21,  26,
336            18,  32,  33,  31,  15,  38,  28,  23,  29,  49,
337            26,  20,  27,  31,  25,  24,  23,  35,
338         },
339         // Daniel
340         {
341            21,  49, 100,  34,  31,  28,  28,  27,  27,  21,
342            45,  13,  65,  42,
343         },
344         // Hosea
345         {
346            11,  24,   5,  19,  15,  11,  16,  14,  17,  15,
347            12,  14,  15,  10,
348         },
349         // Joel
350         {
351            20,  32,  21,
352         },
353         // Amos
354         {
355            15,  16,  15,  13,  27,  15,  17,  14,  15,
356         },
357         // Obadiah
358         {
359            21,
360         },
361         // Jonah
362         {
363            16,  11,  10,  11,
364         },
365         // Micah
366         {
367            16,  13,  12,  13,  14,  16,  20,
368         },
369         // Nahum
370         {
371            15,  13,  19,
372         },
373         // Habakkuk
374         {
375            17,  20,  19,
376         },
377         // Zephaniah
378         {
379            18,  15,  20,
380         },
381         // Haggai
382         {
383            14,  24,
384         },
385         // Zechariah
386         {
387            21,  13,  10,  14,  11,  15,  14,  23,  17,  12,
388            17,  14,   9,  21,
389         },
390         // Malachi
391         {
392            14,  17,  18,   6,
393         },
394         // I Maccabees
395         {
396            67,  70,  60,  61,  68,  63,  50,  32,  73,  89,
397            74,  54,  54,  49,  41,  24,
398         },
399         // II Maccabees
400         {
401            36,  33,  40,  50,  27,  31,  42,  36,  29,  38,
402            38,  46,  26,  46,  40,
403         },
404     };
405 
406     /* protected */ static final int[][] LAST_VERSE_NT =
407     {
408         // Matthew
409         {
410            25,  23,  17,  25,  48,  34,  29,  34,  38,  42,
411            30,  50,  58,  36,  39,  28,  26,  35,  30,  34,
412            46,  46,  39,  51,  46,  75,  66,  20,
413         },
414         // Mark
415         {
416            45,  28,  35,  40,  43,  56,  37,  39,  49,  52,
417            33,  44,  37,  72,  47,  20,
418         },
419         // Luke
420         {
421            80,  52,  38,  44,  39,  49,  50,  56,  62,  42,
422            54,  59,  35,  35,  32,  31,  37,  43,  48,  47,
423            38,  71,  56,  53,
424         },
425         // John
426         {
427            51,  25,  36,  54,  47,  72,  53,  59,  41,  42,
428            57,  50,  38,  31,  27,  33,  26,  40,  42,  31,
429            25,
430         },
431         // Acts
432         {
433            26,  47,  26,  37,  42,  15,  59,  40,  43,  48,
434            30,  25,  52,  27,  41,  40,  34,  28,  40,  38,
435            40,  30,  35,  27,  27,  32,  44,  31,
436         },
437         // Romans
438         {
439            32,  29,  31,  25,  21,  23,  25,  39,  33,  21,
440            36,  21,  14,  23,  33,  27,
441         },
442         // I Corinthians
443         {
444            31,  16,  23,  21,  13,  20,  40,  13,  27,  33,
445            34,  31,  13,  40,  58,  24,
446         },
447         // II Corinthians
448         {
449            24,  17,  18,  18,  21,  18,  16,  24,  15,  18,
450            33,  21,  13,
451         },
452         // Galatians
453         {
454            24,  21,  29,  31,  26,  18,
455         },
456         // Ephesians
457         {
458            23,  22,  21,  32,  33,  24,
459         },
460         // Philippians
461         {
462            30,  30,  21,  23,
463         },
464         // Colossians
465         {
466            29,  23,  25,  18,
467         },
468         // I Thessalonians
469         {
470            10,  20,  13,  18,  28,
471         },
472         // II Thessalonians
473         {
474            12,  17,  18,
475         },
476         // I Timothy
477         {
478            20,  15,  16,  16,  25,  21,
479         },
480         // II Timothy
481         {
482            18,  26,  17,  22,
483         },
484         // Titus
485         {
486            16,  15,  15,
487         },
488         // Philemon
489         {
490            25,
491         },
492         // Hebrews
493         {
494            14,  18,  19,  16,  14,  20,  28,  13,  28,  39,
495            40,  29,  25,
496         },
497         // James
498         {
499            27,  26,  18,  17,  20,
500         },
501         // I Peter
502         {
503            25,  25,  22,  19,  14,
504         },
505         // II Peter
506         {
507            21,  22,  18,
508         },
509         // I John
510         {
511            10,  29,  24,  21,  21,
512         },
513         // II John
514         {
515            13,
516         },
517         // III John
518         {
519            15,
520         },
521         // Jude
522         {
523            25,
524         },
525         // Revelation of John
526         {
527            20,  29,  22,  11,  14,  17,  17,  13,  21,  11,
528            19,  18,  18,  20,   8,  21,  18,  24,  21,  15,
529            27,  21,
530         },
531         // Prayer of Manasses
532         {
533            15,
534         },
535         // I Esdras
536         {
537            58,  31,  24,  63,  73,  34,  15,  97,  56,
538         },
539         // II Esdras
540         {
541            40,  48,  36,  52,  56,  59,  140,  63,  47,  60,
542            46,  51,  58,  48,  63,  78,
543         },
544         // Additional Psalm
545         {
546             7,
547         },
548         // Laodiceans
549         {
550            20,
551         }
552     };
553 
554     /**
555      * Serialization ID
556      */
557     private static final long serialVersionUID = -2155122813160088809L;
558 }
559