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