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 KJV versification is the first implemented versification
27   * and is the default versification for JSword/SWORD.
28   *
29   * @see gnu.lgpl.License The GNU Lesser General Public License for details.
30   * @author DM Smith
31   */
32  public class SystemKJV extends Versification {
33      /**
34       * Build the "KJV" Versification.
35       */
36      /* protected */ SystemKJV() {
37          super(V11N_NAME, BOOKS_OT, BOOKS_NT, LAST_VERSE_OT, LAST_VERSE_NT);
38      }
39  
40      public static final String V11N_NAME = "KJV";
41  
42      /* protected */ static final BibleBook[] BOOKS_OT = SystemDefault.BOOKS_OT;
43  
44      /* protected */ static final BibleBook[] BOOKS_NT = SystemDefault.BOOKS_NT;
45  
46      /** Constant for the max verse number in each chapter */
47      /* protected */ static final int[][] LAST_VERSE_OT =
48      {
49          // Genesis
50          {
51             31,  25,  24,  26,  32,  22,  24,  22,  29,  32,
52             32,  20,  18,  24,  21,  16,  27,  33,  38,  18,
53             34,  24,  20,  67,  34,  35,  46,  22,  35,  43,
54             55,  32,  20,  31,  29,  43,  36,  30,  23,  23,
55             57,  38,  34,  34,  28,  34,  31,  22,  33,  26,
56          },
57          // Exodus
58          {
59             22,  25,  22,  31,  23,  30,  25,  32,  35,  29,
60             10,  51,  22,  31,  27,  36,  16,  27,  25,  26,
61             36,  31,  33,  18,  40,  37,  21,  43,  46,  38,
62             18,  35,  23,  35,  35,  38,  29,  31,  43,  38,
63          },
64          // Leviticus
65          {
66             17,  16,  17,  35,  19,  30,  38,  36,  24,  20,
67             47,   8,  59,  57,  33,  34,  16,  30,  37,  27,
68             24,  33,  44,  23,  55,  46,  34,
69          },
70          // Numbers
71          {
72             54,  34,  51,  49,  31,  27,  89,  26,  23,  36,
73             35,  16,  33,  45,  41,  50,  13,  32,  22,  29,
74             35,  41,  30,  25,  18,  65,  23,  31,  40,  16,
75             54,  42,  56,  29,  34,  13,
76          },
77          // Deuteronomy
78          {
79             46,  37,  29,  49,  33,  25,  26,  20,  29,  22,
80             32,  32,  18,  29,  23,  22,  20,  22,  21,  20,
81             23,  30,  25,  22,  19,  19,  26,  68,  29,  20,
82             30,  52,  29,  12,
83          },
84          // Joshua
85          {
86             18,  24,  17,  24,  15,  27,  26,  35,  27,  43,
87             23,  24,  33,  15,  63,  10,  18,  28,  51,   9,
88             45,  34,  16,  33,
89          },
90          // Judges
91          {
92             36,  23,  31,  24,  31,  40,  25,  35,  57,  18,
93             40,  15,  25,  20,  20,  31,  13,  31,  30,  48,
94             25,
95          },
96          // Ruth
97          {
98             22,  23,  18,  22,
99          },
100         // I Samuel
101         {
102            28,  36,  21,  22,  12,  21,  17,  22,  27,  27,
103            15,  25,  23,  52,  35,  23,  58,  30,  24,  42,
104            15,  23,  29,  22,  44,  25,  12,  25,  11,  31,
105            13,
106         },
107         // II Samuel
108         {
109            27,  32,  39,  12,  25,  23,  29,  18,  13,  19,
110            27,  31,  39,  33,  37,  23,  29,  33,  43,  26,
111            22,  51,  39,  25,
112         },
113         // I Kings
114         {
115            53,  46,  28,  34,  18,  38,  51,  66,  28,  29,
116            43,  33,  34,  31,  34,  34,  24,  46,  21,  43,
117            29,  53,
118         },
119         // II Kings
120         {
121            18,  25,  27,  44,  27,  33,  20,  29,  37,  36,
122            21,  21,  25,  29,  38,  20,  41,  37,  37,  21,
123            26,  20,  37,  20,  30,
124         },
125         // I Chronicles
126         {
127            54,  55,  24,  43,  26,  81,  40,  40,  44,  14,
128            47,  40,  14,  17,  29,  43,  27,  17,  19,   8,
129            30,  19,  32,  31,  31,  32,  34,  21,  30,
130         },
131         // II Chronicles
132         {
133            17,  18,  17,  22,  14,  42,  22,  18,  31,  19,
134            23,  16,  22,  15,  19,  14,  19,  34,  11,  37,
135            20,  12,  21,  27,  28,  23,   9,  27,  36,  27,
136            21,  33,  25,  33,  27,  23,
137         },
138         // Ezra
139         {
140            11,  70,  13,  24,  17,  22,  28,  36,  15,  44,
141         },
142         // Nehemiah
143         {
144            11,  20,  32,  23,  19,  19,  73,  18,  38,  39,
145            36,  47,  31,
146         },
147         // Esther
148         {
149            22,  23,  15,  17,  14,  14,  10,  17,  32,   3,
150         },
151         // Job
152         {
153            22,  13,  26,  21,  27,  30,  21,  22,  35,  22,
154            20,  25,  28,  22,  35,  22,  16,  21,  29,  29,
155            34,  30,  17,  25,   6,  14,  23,  28,  25,  31,
156            40,  22,  33,  37,  16,  33,  24,  41,  30,  24,
157            34,  17,
158         },
159         // Psalms
160         {
161             6,  12,   8,   8,  12,  10,  17,   9,  20,  18,
162             7,   8,   6,   7,   5,  11,  15,  50,  14,   9,
163            13,  31,   6,  10,  22,  12,  14,   9,  11,  12,
164            24,  11,  22,  22,  28,  12,  40,  22,  13,  17,
165            13,  11,   5,  26,  17,  11,   9,  14,  20,  23,
166            19,   9,   6,   7,  23,  13,  11,  11,  17,  12,
167             8,  12,  11,  10,  13,  20,   7,  35,  36,   5,
168            24,  20,  28,  23,  10,  12,  20,  72,  13,  19,
169            16,   8,  18,  12,  13,  17,   7,  18,  52,  17,
170            16,  15,   5,  23,  11,  13,  12,   9,   9,   5,
171             8,  28,  22,  35,  45,  48,  43,  13,  31,   7,
172            10,  10,   9,   8,  18,  19,   2,  29, 176,   7,
173             8,   9,   4,   8,   5,   6,   5,   6,   8,   8,
174             3,  18,   3,   3,  21,  26,   9,   8,  24,  13,
175            10,   7,  12,  15,  21,  10,  20,  14,   9,   6,
176         },
177         // Proverbs
178         {
179            33,  22,  35,  27,  23,  35,  27,  36,  18,  32,
180            31,  28,  25,  35,  33,  33,  28,  24,  29,  30,
181            31,  29,  35,  34,  28,  28,  27,  28,  27,  33,
182            31,
183         },
184         // Ecclesiastes
185         {
186            18,  26,  22,  16,  20,  12,  29,  17,  18,  20,
187            10,  14,
188         },
189         // Song of Solomon
190         {
191            17,  17,  11,  16,  16,  13,  13,  14,
192         },
193         // Isaiah
194         {
195            31,  22,  26,   6,  30,  13,  25,  22,  21,  34,
196            16,   6,  22,  32,   9,  14,  14,   7,  25,   6,
197            17,  25,  18,  23,  12,  21,  13,  29,  24,  33,
198             9,  20,  24,  17,  10,  22,  38,  22,   8,  31,
199            29,  25,  28,  28,  25,  13,  15,  22,  26,  11,
200            23,  15,  12,  17,  13,  12,  21,  14,  21,  22,
201            11,  12,  19,  12,  25,  24,
202         },
203         // Jeremiah
204         {
205            19,  37,  25,  31,  31,  30,  34,  22,  26,  25,
206            23,  17,  27,  22,  21,  21,  27,  23,  15,  18,
207            14,  30,  40,  10,  38,  24,  22,  17,  32,  24,
208            40,  44,  26,  22,  19,  32,  21,  28,  18,  16,
209            18,  22,  13,  30,   5,  28,   7,  47,  39,  46,
210            64,  34,
211         },
212         // Lamentations
213         {
214            22,  22,  66,  22,  22,
215         },
216         // Ezekiel
217         {
218            28,  10,  27,  17,  17,  14,  27,  18,  11,  22,
219            25,  28,  23,  23,   8,  63,  24,  32,  14,  49,
220            32,  31,  49,  27,  17,  21,  36,  26,  21,  26,
221            18,  32,  33,  31,  15,  38,  28,  23,  29,  49,
222            26,  20,  27,  31,  25,  24,  23,  35,
223         },
224         // Daniel
225         {
226            21,  49,  30,  37,  31,  28,  28,  27,  27,  21,
227            45,  13,
228         },
229         // Hosea
230         {
231            11,  23,   5,  19,  15,  11,  16,  14,  17,  15,
232            12,  14,  16,   9,
233         },
234         // Joel
235         {
236            20,  32,  21,
237         },
238         // Amos
239         {
240            15,  16,  15,  13,  27,  14,  17,  14,  15,
241         },
242         // Obadiah
243         {
244            21,
245         },
246         // Jonah
247         {
248            17,  10,  10,  11,
249         },
250         // Micah
251         {
252            16,  13,  12,  13,  15,  16,  20,
253         },
254         // Nahum
255         {
256            15,  13,  19,
257         },
258         // Habakkuk
259         {
260            17,  20,  19,
261         },
262         // Zephaniah
263         {
264            18,  15,  20,
265         },
266         // Haggai
267         {
268            15,  23,
269         },
270         // Zechariah
271         {
272            21,  13,  10,  14,  11,  15,  14,  23,  17,  12,
273            17,  14,   9,  21,
274         },
275         // Malachi
276         {
277            14,  17,  18,   6,
278         },
279     };
280 
281 
282     /* protected */ static final int[][] LAST_VERSE_NT =
283     {
284         // Matthew
285         {
286            25,  23,  17,  25,  48,  34,  29,  34,  38,  42,
287            30,  50,  58,  36,  39,  28,  27,  35,  30,  34,
288            46,  46,  39,  51,  46,  75,  66,  20,
289         },
290         // Mark
291         {
292            45,  28,  35,  41,  43,  56,  37,  38,  50,  52,
293            33,  44,  37,  72,  47,  20,
294         },
295         // Luke
296         {
297            80,  52,  38,  44,  39,  49,  50,  56,  62,  42,
298            54,  59,  35,  35,  32,  31,  37,  43,  48,  47,
299            38,  71,  56,  53,
300         },
301         // John
302         {
303            51,  25,  36,  54,  47,  71,  53,  59,  41,  42,
304            57,  50,  38,  31,  27,  33,  26,  40,  42,  31,
305            25,
306         },
307         // Acts
308         {
309            26,  47,  26,  37,  42,  15,  60,  40,  43,  48,
310            30,  25,  52,  28,  41,  40,  34,  28,  41,  38,
311            40,  30,  35,  27,  27,  32,  44,  31,
312         },
313         // Romans
314         {
315            32,  29,  31,  25,  21,  23,  25,  39,  33,  21,
316            36,  21,  14,  23,  33,  27,
317         },
318         // I Corinthians
319         {
320            31,  16,  23,  21,  13,  20,  40,  13,  27,  33,
321            34,  31,  13,  40,  58,  24,
322         },
323         // II Corinthians
324         {
325            24,  17,  18,  18,  21,  18,  16,  24,  15,  18,
326            33,  21,  14,
327         },
328         // Galatians
329         {
330            24,  21,  29,  31,  26,  18,
331         },
332         // Ephesians
333         {
334            23,  22,  21,  32,  33,  24,
335         },
336         // Philippians
337         {
338            30,  30,  21,  23,
339         },
340         // Colossians
341         {
342            29,  23,  25,  18,
343         },
344         // I Thessalonians
345         {
346            10,  20,  13,  18,  28,
347         },
348         // II Thessalonians
349         {
350            12,  17,  18,
351         },
352         // I Timothy
353         {
354            20,  15,  16,  16,  25,  21,
355         },
356         // II Timothy
357         {
358            18,  26,  17,  22,
359         },
360         // Titus
361         {
362            16,  15,  15,
363         },
364         // Philemon
365         {
366            25,
367         },
368         // Hebrews
369         {
370            14,  18,  19,  16,  14,  20,  28,  13,  28,  39,
371            40,  29,  25,
372         },
373         // James
374         {
375            27,  26,  18,  17,  20,
376         },
377         // I Peter
378         {
379            25,  25,  22,  19,  14,
380         },
381         // II Peter
382         {
383            21,  22,  18,
384         },
385         // I John
386         {
387            10,  29,  24,  21,  21,
388         },
389         // II John
390         {
391            13,
392         },
393         // III John
394         {
395            14,
396         },
397         // Jude
398         {
399            25,
400         },
401         // Revelation of John
402         {
403            20,  29,  22,  11,  14,  17,  17,  13,  21,  11,
404            19,  17,  18,  20,   8,  21,  18,  24,  21,  15,
405            27,  21,
406         },
407     };
408 
409     /**
410      * Serialization ID
411      */
412     private static final long serialVersionUID = 3365882007485277007L;
413 }
414