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