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 Leningrad Codex versification differs from the Masoretic Text (MT)
27   * versification only in the placement of 1 and 2 Chronicles.
28   * The Leningrad Codex places them between Malachi and Psalms,
29   * while the Masoretic Text puts it after Nehemiah at the end of the
30   * Old Testament.
31   *
32   * @see gnu.lgpl.License The GNU Lesser General Public License for details.
33   * @author DM Smith
34   */
35  public class SystemLeningrad extends Versification {
36      /**
37       * Build the "Leningrad" Versification.
38       */
39      /* protected */ SystemLeningrad() {
40          super(V11N_NAME, BOOKS_OT, BOOKS_NT, LAST_VERSE_OT, LAST_VERSE_NT);
41      }
42  
43      public static final String V11N_NAME = "Leningrad";
44  
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.SAM1,
55          BibleBook.SAM2,
56          BibleBook.KGS1,
57          BibleBook.KGS2,
58          BibleBook.ISA,
59          BibleBook.JER,
60          BibleBook.EZEK,
61          BibleBook.HOS,
62          BibleBook.JOEL,
63          BibleBook.AMOS,
64          BibleBook.OBAD,
65          BibleBook.JONAH,
66          BibleBook.MIC,
67          BibleBook.NAH,
68          BibleBook.HAB,
69          BibleBook.ZEPH,
70          BibleBook.HAG,
71          BibleBook.ZECH,
72          BibleBook.MAL,
73          BibleBook.CHR1,
74          BibleBook.CHR2,
75          BibleBook.PS,
76          BibleBook.JOB,
77          BibleBook.PROV,
78          BibleBook.RUTH,
79          BibleBook.SONG,
80          BibleBook.ECCL,
81          BibleBook.LAM,
82          BibleBook.ESTH,
83          BibleBook.DAN,
84          BibleBook.EZRA,
85          BibleBook.NEH,
86      };
87  
88      /* protected */ static final BibleBook[] BOOKS_NT = SystemDefault.BOOKS_NONE;
89  
90      /* protected */ static final int[][] LAST_VERSE_OT =
91      {
92          // Genesis
93          {
94             31,  25,  24,  26,  32,  22,  24,  22,  29,  32,
95             32,  20,  18,  24,  21,  16,  27,  33,  38,  18,
96             34,  24,  20,  67,  34,  35,  46,  22,  35,  43,
97             54,  33,  20,  31,  29,  43,  36,  30,  23,  23,
98             57,  38,  34,  34,  28,  34,  31,  22,  33,  26,
99          },
100         // Exodus
101         {
102            22,  25,  22,  31,  23,  30,  29,  28,  35,  29,
103            10,  51,  22,  31,  27,  36,  16,  27,  25,  26,
104            37,  30,  33,  18,  40,  37,  21,  43,  46,  38,
105            18,  35,  23,  35,  35,  38,  29,  31,  43,  38,
106         },
107         // Leviticus
108         {
109            17,  16,  17,  35,  26,  23,  38,  36,  24,  20,
110            47,   8,  59,  57,  33,  34,  16,  30,  37,  27,
111            24,  33,  44,  23,  55,  46,  34,
112         },
113         // Numbers
114         {
115            54,  34,  51,  49,  31,  27,  89,  26,  23,  36,
116            35,  16,  33,  45,  41,  35,  28,  32,  22,  29,
117            35,  41,  30,  25,  19,  65,  23,  31,  39,  17,
118            54,  42,  56,  29,  34,  13,
119         },
120         // Deuteronomy
121         {
122            46,  37,  29,  49,  33,  25,  26,  20,  29,  22,
123            32,  31,  19,  29,  23,  22,  20,  22,  21,  20,
124            23,  29,  26,  22,  19,  19,  26,  69,  28,  20,
125            30,  52,  29,  12,
126         },
127         // Joshua
128         {
129            18,  24,  17,  24,  15,  27,  26,  35,  27,  43,
130            23,  24,  33,  15,  63,  10,  18,  28,  51,   9,
131            45,  34,  16,  33,
132         },
133         // Judges
134         {
135            36,  23,  31,  24,  31,  40,  25,  35,  57,  18,
136            40,  15,  25,  20,  20,  31,  13,  31,  30,  48,
137            25,
138         },
139         // I Samuel
140         {
141            28,  36,  21,  22,  12,  21,  17,  22,  27,  27,
142            15,  25,  23,  52,  35,  23,  58,  30,  24,  42,
143            16,  23,  28,  23,  44,  25,  12,  25,  11,  31,
144            13,
145         },
146         // II Samuel
147         {
148            27,  32,  39,  12,  25,  23,  29,  18,  13,  19,
149            27,  31,  39,  33,  37,  23,  29,  32,  44,  26,
150            22,  51,  39,  25,
151         },
152         // I Kings
153         {
154            53,  46,  28,  20,  32,  38,  51,  66,  28,  29,
155            43,  33,  34,  31,  34,  34,  24,  46,  21,  43,
156            29,  54,
157         },
158         // II Kings
159         {
160            18,  25,  27,  44,  27,  33,  20,  29,  37,  36,
161            20,  22,  25,  29,  38,  20,  41,  37,  37,  21,
162            26,  20,  37,  20,  30,
163         },
164         // Isaiah
165         {
166            31,  22,  26,   6,  30,  13,  25,  23,  20,  34,
167            16,   6,  22,  32,   9,  14,  14,   7,  25,   6,
168            17,  25,  18,  23,  12,  21,  13,  29,  24,  33,
169             9,  20,  24,  17,  10,  22,  38,  22,   8,  31,
170            29,  25,  28,  28,  25,  13,  15,  22,  26,  11,
171            23,  15,  12,  17,  13,  12,  21,  14,  21,  22,
172            11,  12,  19,  11,  25,  24,
173         },
174         // Jeremiah
175         {
176            19,  37,  25,  31,  31,  30,  34,  23,  25,  25,
177            23,  17,  27,  22,  21,  21,  27,  23,  15,  18,
178            14,  30,  40,  10,  38,  24,  22,  17,  32,  24,
179            40,  44,  26,  22,  19,  32,  21,  28,  18,  16,
180            18,  22,  13,  30,   5,  28,   7,  47,  39,  46,
181            64,  34,
182         },
183         // Ezekiel
184         {
185            28,  10,  27,  17,  17,  14,  27,  18,  11,  22,
186            25,  28,  23,  23,   8,  63,  24,  32,  14,  44,
187            37,  31,  49,  27,  17,  21,  36,  26,  21,  26,
188            18,  32,  33,  31,  15,  38,  28,  23,  29,  49,
189            26,  20,  27,  31,  25,  24,  23,  35,
190         },
191         // Hosea
192         {
193             9,  25,   5,  19,  15,  11,  16,  14,  17,  15,
194            11,  15,  15,  10,
195         },
196         // Joel
197         {
198            20,  27,   5,  21,
199         },
200         // Amos
201         {
202            15,  16,  15,  13,  27,  14,  17,  14,  15,
203         },
204         // Obadiah
205         {
206            21,
207         },
208         // Jonah
209         {
210            16,  11,  10,  11,
211         },
212         // Micah
213         {
214            16,  13,  12,  14,  14,  16,  20,
215         },
216         // Nahum
217         {
218            14,  14,  19,
219         },
220         // Habakkuk
221         {
222            17,  20,  19,
223         },
224         // Zephaniah
225         {
226            18,  15,  20,
227         },
228         // Haggai
229         {
230            15,  23,
231         },
232         // Zechariah
233         {
234            17,  17,  10,  14,  11,  15,  14,  23,  17,  12,
235            17,  14,   9,  21,
236         },
237         // Malachi
238         {
239            14,  17,  24,
240         },
241         // I Chronicles
242         {
243            54,  55,  24,  43,  41,  66,  40,  40,  44,  14,
244            47,  41,  14,  17,  29,  43,  27,  17,  19,   8,
245            30,  19,  32,  31,  31,  32,  34,  21,  30,
246         },
247         // II Chronicles
248         {
249            18,  17,  17,  22,  14,  42,  22,  18,  31,  19,
250            23,  16,  23,  14,  19,  14,  19,  34,  11,  37,
251            20,  12,  21,  27,  28,  23,   9,  27,  36,  27,
252            21,  33,  25,  33,  27,  23,
253         },
254         // Psalms
255         {
256             6,  12,   9,   9,  13,  11,  18,  10,  21,  18,
257             7,   9,   6,   7,   5,  11,  15,  51,  15,  10,
258            14,  32,   6,  10,  22,  12,  14,   9,  11,  13,
259            25,  11,  22,  23,  28,  13,  40,  23,  14,  18,
260            14,  12,   5,  27,  18,  12,  10,  15,  21,  23,
261            21,  11,   7,   9,  24,  14,  12,  12,  18,  14,
262             9,  13,  12,  11,  14,  20,   8,  36,  37,   6,
263            24,  20,  28,  23,  11,  13,  21,  72,  13,  20,
264            17,   8,  19,  13,  14,  17,   7,  19,  53,  17,
265            16,  16,   5,  23,  11,  13,  12,   9,   9,   5,
266             8,  29,  22,  35,  45,  48,  43,  14,  31,   7,
267            10,  10,   9,   8,  18,  19,   2,  29, 176,   7,
268             8,   9,   4,   8,   5,   6,   5,   6,   8,   8,
269             3,  18,   3,   3,  21,  26,   9,   8,  24,  14,
270            10,   8,  12,  15,  21,  10,  20,  14,   9,   6,
271         },
272         // Job
273         {
274            22,  13,  26,  21,  27,  30,  21,  22,  35,  22,
275            20,  25,  28,  22,  35,  22,  16,  21,  29,  29,
276            34,  30,  17,  25,   6,  14,  23,  28,  25,  31,
277            40,  22,  33,  37,  16,  33,  24,  41,  30,  32,
278            26,  17,
279         },
280         // Proverbs
281         {
282            33,  22,  35,  27,  23,  35,  27,  36,  18,  32,
283            31,  28,  25,  35,  33,  33,  28,  24,  29,  30,
284            31,  29,  35,  34,  28,  28,  27,  28,  27,  33,
285            31,
286         },
287         // Ruth
288         {
289            22,  23,  18,  22,
290         },
291         // Song of Solomon
292         {
293            17,  17,  11,  16,  16,  12,  14,  14,
294         },
295         // Ecclesiastes
296         {
297            18,  26,  22,  17,  19,  12,  29,  17,  18,  20,
298            10,  14,
299         },
300         // Lamentations
301         {
302            22,  22,  66,  22,  22,
303         },
304         // Esther
305         {
306            22,  23,  15,  17,  14,  14,  10,  17,  32,   3,
307         },
308         // Daniel
309         {
310            21,  49,  33,  34,  30,  29,  28,  27,  27,  21,
311            45,  13,
312         },
313         // Ezra
314         {
315            11,  70,  13,  24,  17,  22,  28,  36,  15,  44,
316         },
317         // Nehemiah
318         {
319            11,  20,  38,  17,  19,  19,  72,  18,  37,  40,
320            36,  47,  31,
321         },
322     };
323 
324     /* protected */ static final int[][] LAST_VERSE_NT = SystemDefault.LAST_VERSE_NONE;
325 
326     /**
327      * Serialization ID
328      */
329     private static final long serialVersionUID = -1483944788413812511L;
330 }
331