1 | /* Copyright 2015 Malcolm Herring
|
---|
2 | *
|
---|
3 | * This is free software: you can redistribute it and/or modify
|
---|
4 | * it under the terms of the GNU General Public License as published by
|
---|
5 | * the Free Software Foundation, version 3 of the License.
|
---|
6 | *
|
---|
7 | * For a copy of the GNU General Public License, see <http://www.gnu.org/licenses/>.
|
---|
8 | */
|
---|
9 |
|
---|
10 | package s57;
|
---|
11 |
|
---|
12 | public class S57enc { // S57 ENC file generation
|
---|
13 |
|
---|
14 | private static byte[] header = {
|
---|
15 | // Record 0
|
---|
16 | '0', '1', '9', '5', '9', '3', 'L', 'E', '1', ' ', '0', '9', '0', '0', '2', '4', '5', ' ', '!', ' ', '3', '4', '0', '4', // Leader
|
---|
17 | '0', '0', '0', '0', '1', '6', '7', '0', '0', '0', '0', '0', '0', '0', '1', '0', '4', '3', '0', '1', '6', '7', // Directory
|
---|
18 | 'D', 'S', 'I', 'D', '1', '6', '5', '0', '2', '1', '0', 'D', 'S', 'S', 'I', '1', '1', '3', '0', '3', '7', '5',
|
---|
19 | 'D', 'S', 'P', 'M', '1', '3', '0', '0', '4', '8', '8', 'F', 'R', 'I', 'D', '1', '0', '0', '0', '6', '1', '8',
|
---|
20 | 'F', 'O', 'I', 'D', '0', '7', '0', '0', '7', '1', '8', 'A', 'T', 'T', 'F', '0', '5', '9', '0', '7', '8', '8',
|
---|
21 | 'N', 'A', 'T', 'F', '0', '6', '8', '0', '8', '4', '7', 'F', 'F', 'P', 'C', '0', '9', '0', '0', '9', '1', '5',
|
---|
22 | 'F', 'F', 'P', 'T', '0', '8', '6', '1', '0', '0', '5', 'F', 'S', 'P', 'C', '0', '9', '0', '1', '0', '9', '1',
|
---|
23 | 'F', 'S', 'P', 'T', '0', '8', '9', '1', '1', '8', '1', 'V', 'R', 'I', 'D', '0', '7', '8', '1', '2', '7', '0',
|
---|
24 | 'A', 'T', 'T', 'V', '0', '5', '8', '1', '3', '4', '8', 'V', 'R', 'P', 'C', '0', '7', '1', '1', '4', '0', '6',
|
---|
25 | 'V', 'R', 'P', 'T', '0', '7', '6', '1', '4', '7', '7', 'S', 'G', 'C', 'C', '0', '6', '0', '1', '5', '5', '3',
|
---|
26 | 'S', 'G', '2', 'D', '0', '4', '8', '1', '6', '1', '3', 'S', 'G', '3', 'D', '0', '5', '3', '1', '6', '6', '1', 0x1e,
|
---|
27 | // File control field
|
---|
28 | '0', '0', '0', '0', ';', '&', ' ', ' ', ' ',
|
---|
29 | //*** 254
|
---|
30 | '0', 'S', '0', '0', '0', '0', '0', '0', '.', '0', '0', '0', 0x1f, // Filename
|
---|
31 | '0', '0', '0', '1', 'D', 'S', 'I', 'D', 'D', 'S', 'I', 'D', 'D', 'S', 'S', 'I', '0', '0', '0', '1', 'D', 'S', 'P', 'M',
|
---|
32 | '0', '0', '0', '1', 'F', 'R', 'I', 'D', 'F', 'R', 'I', 'D', 'F', 'O', 'I', 'D', 'F', 'R', 'I', 'D', 'A', 'T', 'T', 'F',
|
---|
33 | 'F', 'R', 'I', 'D', 'N', 'A', 'T', 'F', 'F', 'R', 'I', 'D', 'F', 'F', 'P', 'C', 'F', 'R', 'I', 'D', 'F', 'F', 'P', 'T',
|
---|
34 | 'F', 'R', 'I', 'D', 'F', 'S', 'P', 'C', 'F', 'R', 'I', 'D', 'F', 'S', 'P', 'T', '0', '0', '0', '1', 'V', 'R', 'I', 'D',
|
---|
35 | 'V', 'R', 'I', 'D', 'A', 'T', 'T', 'V', 'V', 'R', 'I', 'D', 'V', 'R', 'P', 'C', 'V', 'R', 'I', 'D', 'V', 'R', 'P', 'T',
|
---|
36 | 'V', 'R', 'I', 'D', 'S', 'G', 'C', 'C', 'V', 'R', 'I', 'D', 'S', 'G', '2', 'D', 'V', 'R', 'I', 'D', 'S', 'G', '3', 'D', 0x1e,
|
---|
37 | // Record identifier fields
|
---|
38 | '0', '5', '0', '0', ';', '&', ' ', ' ', ' ', 'I', 'S', 'O', ' ', '8', '2', '1', '1', ' ', 'R', 'e', 'c', 'o', 'r', 'd',
|
---|
39 | ' ', 'I', 'd', 'e', 'n', 't', 'i', 'f', 'i', 'e', 'r', 0x1f, 0x1f, '(', 'b', '1', '2', ')', 0x1e,
|
---|
40 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'D', 'a', 't', 'a', ' ', 'S', 'e', 't', ' ', 'I', 'd', 'e', 'n', 't', 'i', 'f',
|
---|
41 | 'i', 'c', 'a', 't', 'i', 'o', 'n', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, 'R', 'C', 'N', 'M', '!', 'R', 'C', 'I', 'D', '!', 'E',
|
---|
42 | 'X', 'P', 'P', '!', 'I', 'N', 'T', 'U', '!', 'D', 'S', 'N', 'M', '!', 'E', 'D', 'T', 'N', '!', 'U', 'P', 'D', 'N', '!', 'U',
|
---|
43 | 'A', 'D', 'T', '!', 'I', 'S', 'D', 'T', '!', 'S', 'T', 'E', 'D', '!', 'P', 'R', 'S', 'P', '!', 'P', 'S', 'D', 'N', '!', 'P',
|
---|
44 | 'R', 'E', 'D', '!', 'P', 'R', 'O', 'F', '!', 'A', 'G', 'E', 'N', '!', 'C', 'O', 'M', 'T', 0x1f, '(', 'b', '1', '1', ',', 'b',
|
---|
45 | '1', '4', ',', '2', 'b', '1', '1', ',', '3', 'A', ',', '2', 'A', '(', '8', ')', ',', 'R', '(', '4', ')', ',', 'b', '1', '1',
|
---|
46 | ',', '2', 'A', ',', 'b', '1', '1', ',', 'b', '1', '2', ',', 'A', ')', 0x1e,
|
---|
47 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'D', 'a', 't', 'a', ' ', 'S', 'e', 't', ' ', 'S', 't', 'r', 'u', 'c', 't', 'u',
|
---|
48 | 'r', 'e', ' ', 'I', 'n', 'f', 'o', 'r', 'm', 'a', 't', 'i', 'o', 'n', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, 'D', 'S', 'T', 'R',
|
---|
49 | '!', 'A', 'A', 'L', 'L', '!', 'N', 'A', 'L', 'L', '!', 'N', 'O', 'M', 'R', '!', 'N', 'O', 'C', 'R', '!', 'N', 'O', 'G', 'R',
|
---|
50 | '!', 'N', 'O', 'L', 'R', '!', 'N', 'O', 'I', 'N', '!', 'N', 'O', 'C', 'N', '!', 'N', 'O', 'E', 'D', '!', 'N', 'O', 'F', 'A', 0x1f,
|
---|
51 | '(', '3', 'b', '1', '1', ',', '8', 'b', '1', '4', ')', 0x1e,
|
---|
52 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'D', 'a', 't', 'a', ' ', 'S', 'e', 't', ' ', 'P', 'a', 'r', 'a', 'm', 'e', 't',
|
---|
53 | 'e', 'r', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, 'R', 'C', 'N', 'M', '!', 'R', 'C', 'I', 'D', '!', 'H', 'D', 'A', 'T', '!', 'V',
|
---|
54 | 'D', 'A', 'T', '!', 'S', 'D', 'A', 'T', '!', 'C', 'S', 'C', 'L', '!', 'D', 'U', 'N', 'I', '!', 'H', 'U', 'N', 'I', '!', 'P',
|
---|
55 | 'U', 'N', 'I', '!', 'C', 'O', 'U', 'N', '!', 'C', 'O', 'M', 'F', '!', 'S', 'O', 'M', 'F', '!', 'C', 'O', 'M', 'T', 0x1f,
|
---|
56 | '(', 'b', '1', '1', ',', 'b', '1', '4', ',', '3', 'b', '1', '1', ',', 'b', '1', '4', ',', '4', 'b', '1', '1', ',', '2', 'b',
|
---|
57 | '1', '4', ',', 'A', ')', 0x1e,
|
---|
58 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'I',
|
---|
59 | 'd', 'e', 'n', 't', 'i', 'f', 'i', 'e', 'r', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, 'R', 'C', 'N', 'M', '!', 'R', 'C', 'I', 'D',
|
---|
60 | '!', 'P', 'R', 'I', 'M', '!', 'G', 'R', 'U', 'P', '!', 'O', 'B', 'J', 'L', '!', 'R', 'V', 'E', 'R', '!', 'R', 'U', 'I', 'N', 0x1f,
|
---|
61 | '(', 'b', '1', '1', ',', 'b', '1', '4', ',', '2', 'b', '1', '1', ',', '2', 'b', '1', '2', ',', 'b', '1', '1', ')', 0x1e,
|
---|
62 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'O', 'b', 'j', 'e', 'c', 't', ' ', 'I',
|
---|
63 | 'd', 'e', 'n', 't', 'i', 'f', 'i', 'e', 'r', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, 'A', 'G', 'E', 'N', '!', 'F', 'I', 'D', 'N',
|
---|
64 | '!', 'F', 'I', 'D', 'S', 0x1f, '(', 'b', '1', '2', ',', 'b', '1', '4', ',', 'b', '1', '2', ')', 0x1e,
|
---|
65 | '2', '6', '0', '0', ';', '&', '-', 'A', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'A',
|
---|
66 | 't', 't', 'r', 'i', 'b', 'u', 't', 'e', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, '*', 'A', 'T', 'T', 'L', '!', 'A', 'T', 'V', 'L', 0x1f,
|
---|
67 | '(', 'b', '1', '2', ',', 'A', ')', 0x1e,
|
---|
68 | '2', '6', '0', '0', ';', '&', '-', 'A', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'N',
|
---|
69 | 'a', 't', 'i', 'o', 'n', 'a', 'l', ' ', 'A', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f,
|
---|
70 | '*', 'A', 'T', 'T', 'L', '!', 'A', 'T', 'V', 'L', 0x1f, '(', 'b', '1', '2', ',', 'A', ')', 0x1e,
|
---|
71 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'T',
|
---|
72 | 'o', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'O', 'b', 'j', 'e', 'c', 't', ' ', 'P', 'o', 'i', 'n', 't', 'e', 'r', ' ',
|
---|
73 | 'C', 'o', 'n', 't', 'r', 'o', 'l', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, 'F', 'F', 'U', 'I', '!', 'F', 'F', 'I', 'X', '!', 'N',
|
---|
74 | 'F', 'P', 'T', 0x1f, '(', 'b', '1', '1', ',', '2', 'b', '1', '2', ')', 0x1e,
|
---|
75 | '2', '0', '0', '0', ';', '&', ' ', ' ', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'T',
|
---|
76 | 'o', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'O', 'b', 'j', 'e', 'c', 't', ' ', 'P', 'o', 'i', 'n', 't', 'e', 'r', ' ',
|
---|
77 | 'F', 'i', 'e', 'l', 'd', 0x1f, '*', 'L', 'N', 'A', 'M', '!', 'R', 'I', 'N', 'D', '!', 'C', 'O', 'M', 'T', 0x1f, '(', 'B', '(',
|
---|
78 | '6', '4', ')', ',', 'b', '1', '1', ',', 'A', ')', 0x1e,
|
---|
79 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'T',
|
---|
80 | 'o', ' ', 'S', 'p', 'a', 't', 'i', 'a', 'l', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'P', 'o', 'i', 'n', 't', 'e', 'r', ' ',
|
---|
81 | 'C', 'o', 'n', 't', 'r', 'o', 'l', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, 'F', 'S', 'U', 'I', '!', 'F', 'S', 'I', 'X', '!', 'N',
|
---|
82 | 'S', 'P', 'T', 0x1f, '(', 'b', '1', '1', ',', '2', 'b', '1', '2', ')', 0x1e,
|
---|
83 | '2', '0', '0', '0', ';', '&', ' ', ' ', ' ', 'F', 'e', 'a', 't', 'u', 'r', 'e', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'T',
|
---|
84 | 'o', ' ', 'S', 'p', 'a', 't', 'i', 'a', 'l', ' ', 'R', 'e', 'c', 'o', 'r', ' ', 'P', 'o', 'i', 'n', 't', 'e', 'r', ' ', 'F',
|
---|
85 | 'i', 'e', 'l', 'd', 0x1f, '*', 'N', 'A', 'M', 'E', '!', 'O', 'R', 'N', 'T', '!', 'U', 'S', 'A', 'G', '!', 'M', 'A', 'S', 'K', 0x1f,
|
---|
86 | '(', 'B', '(', '4', '0', ')', ',', '3', 'b', '1', '1', ')', 0x1e,
|
---|
87 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'V', 'e', 'c', 't', 'o', 'r', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'I', 'd',
|
---|
88 | 'e', 'n', 't', 'i', 'f', 'i', 'e', 'r', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, 'R', 'C', 'N', 'M', '!', 'R', 'C', 'I', 'D', '!',
|
---|
89 | 'R', 'V', 'E', 'R', '!', 'R', 'U', 'I', 'N', 0x1f, '(', 'b', '1', '1', ',', 'b', '1', '4', ',', 'b', '1', '2', ',', 'b', '1',
|
---|
90 | '1', ')', 0x1e,
|
---|
91 | '2', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'V', 'e', 'c', 't', 'o', 'r', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'A', 't',
|
---|
92 | 't', 'r', 'i', 'b', 'u', 't', 'e', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, '*', 'A', 'T', 'T', 'L', '!', 'A', 'T', 'V', 'L', 0x1f,
|
---|
93 | '(', 'b', '1', '2', ',', 'A', ')', 0x1e,
|
---|
94 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'V', 'e', 'c', 't', 'o', 'r', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'P', 'o',
|
---|
95 | 'i', 'n', 't', 'e', 'r', ' ', 'C', 'o', 'n', 't', 'r', 'o', 'l', ' ', 'F', 'i', 'e', 'l', 's', 0x1f, 'V', 'P', 'U', 'I', '!',
|
---|
96 | 'V', 'P', 'I', 'X', '!', 'N', 'V', 'P', 'T', 0x1f, '(', 'b', '1', '1', ',', '2', 'b', '1', '2', ')', 0x1e,
|
---|
97 | '2', '0', '0', '0', ';', '&', ' ', ' ', ' ', 'V', 'e', 'c', 't', 'o', 'r', ' ', 'R', 'e', 'c', 'o', 'r', 'd', ' ', 'P', 'o',
|
---|
98 | 'i', 'n', 't', 'e', 'r', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, '*', 'N', 'A', 'M', 'E', '!', 'O', 'R', 'N', 'T', '!', 'U', 'S',
|
---|
99 | 'A', 'G', '!', 'T', 'O', 'P', 'I', '!', 'M', 'A', 'S', 'K', 0x1f, '(', 'B', '(', '4', '0', ')', ',', '4', 'b', '1', '1', ')',
|
---|
100 | 0x1e,
|
---|
101 | '1', '6', '0', '0', ';', '&', ' ', ' ', ' ', 'C', 'o', 'o', 'r', 'd', 'i', 'n', 'a', 't', 'e', ' ', 'C', 'o', 'n', 't', 'r',
|
---|
102 | 'o', 'l', ' ', 'F', 'i', 'e', 'l', 'd', 0x1f, 'C', 'C', 'U', 'I', '!', 'C', 'C', 'I', 'X', '!', 'C', 'C', 'N', 'C', 0x1f, '(',
|
---|
103 | 'b', '1', '1', ',', '2', 'b', '1', '2', ')', 0x1e,
|
---|
104 | '2', '2', '0', '0', ';', '&', ' ', ' ', ' ', '2', '-', 'D', ' ', 'C', 'o', 'o', 'r', 'd', 'i', 'n', 'a', 't', 'e', ' ', 'F',
|
---|
105 | 'i', 'e', 'l', 'd', 0x1f, '*', 'Y', 'C', 'O', 'O', '!', 'X', 'C', 'O', 'O', 0x1f, '(', '2', 'b', '2', '4', ')',
|
---|
106 | 0x1e,
|
---|
107 | '2', '2', '0', '0', ';', '&', ' ', ' ', ' ', '3', '-', 'D', ' ', 'C', 'o', 'o', 'r', 'd', 'i', 'n', 'a', 't', 'e', ' ', 'F',
|
---|
108 | 'i', 'e', 'l', 'd', 0x1f, '*', 'Y', 'C', 'O', 'O', '!', 'X', 'C', 'O', 'O', '!', 'V', 'E', '3', 'D', 0x1f, '(', '3', 'b', '2',
|
---|
109 | '4', ')', 0x1e,
|
---|
110 |
|
---|
111 | // Record 1
|
---|
112 | '0', '0', '1', '6', '7', ' ', 'D', ' ', ' ', ' ', ' ', ' ', '0', '0', '0', '4', '9', ' ', ' ', ' ', '2', '2', '0', '4', // Leader
|
---|
113 | // Directory
|
---|
114 | '0', '0', '0', '1', '0', '3', '0', '0', 'D', 'S', 'I', 'D', '7', '9', '0', '3', 'D', 'S', 'S', 'I', '3', '6', '8', '2', 0x1e,
|
---|
115 | '1', '0', 0x1e, // Field 0001
|
---|
116 | // Field DSID
|
---|
117 | 0x0a, 0x01, 0x00, 0x00, 0x00, 0x01,
|
---|
118 | //*** 2017
|
---|
119 | 0x00, '0', 'S', '0', '0', '0', '0', '0', '0', '.', '0', '0', '0', 0x1f, // INTU & Filename
|
---|
120 | '1', 0x1f, '0', 0x1f,
|
---|
121 | //*** 2035
|
---|
122 | '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', // Date x2
|
---|
123 | '0', '3', '.', '1', 0x14, 0x1f, 0x1f, 0x01, 0x26, 0x0f, 'G', 'e', 'n', 'e', 'r', 'a', 't', 'e', 'd', ' ', 'b', 'y', ' ',
|
---|
124 | 'O', 'p', 'e', 'n', 'S', 'e', 'a', 'M', 'a', 'p', '.', 'o', 'r', 'g', 0x1f, 0x1e,
|
---|
125 | // Field DSSI
|
---|
126 | 0x02, 0x01, 0x02,
|
---|
127 | //*** 2093
|
---|
128 | 0x02, 0x00, 0x00, 0x00, // # of meta records
|
---|
129 | 0x00, 0x00, 0x00, 0x00,
|
---|
130 | 0x00, 0x00, 0x00, 0x00, // # of geo records
|
---|
131 | 0x00, 0x00, 0x00, 0x00,
|
---|
132 | 0x00, 0x00, 0x00, 0x00, // # of isolated node records
|
---|
133 | 0x00, 0x00, 0x00, 0x00, // # of connected node records
|
---|
134 | 0x00, 0x00, 0x00, 0x00, // # of edge records
|
---|
135 | 0x00, 0x00, 0x00, 0x00, 0x1e,
|
---|
136 |
|
---|
137 | // Record 2
|
---|
138 | '0', '0', '0', '6', '8', ' ', 'D', ' ', ' ', ' ', ' ', ' ', '0', '0', '0', '3', '9', ' ', ' ', ' ', '2', '1', '0', '4',
|
---|
139 | '0', '0', '0', '1', '0', '3', '0', 'D', 'S', 'P', 'M', '2', '6', '3', 0x1e,
|
---|
140 | // Field 0001
|
---|
141 | 0x02, 0x00, 0x1e,
|
---|
142 | // Field DSPM
|
---|
143 | 0x14, 0x01, 0x00, 0x00, 0x00, 0x02, 0x17, 0x17,
|
---|
144 | //*** 2176
|
---|
145 | 0x00, 0x00, 0x00, 0x00, // Scale
|
---|
146 | 0x01, // Depth units
|
---|
147 | 0x01, // Height units
|
---|
148 | 0x01, 0x01, (byte)0x80, (byte)0x96, (byte)0x98, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1f, 0x1e
|
---|
149 | };
|
---|
150 |
|
---|
151 | private static byte[] leader = {'0', '0', '0', '0', '0', ' ', 'D', ' ', ' ', ' ', ' ', ' ', '0', '0', '0', '0', '0', ' ', ' ', ' ', '0', '0', '0', '0'};
|
---|
152 | static int idx;
|
---|
153 |
|
---|
154 | public static int encodeChart(S57map map, byte[] buf) throws IndexOutOfBoundsException {
|
---|
155 |
|
---|
156 | int idx = leader.length;
|
---|
157 | for (idx = 0; idx < header.length; idx++) {
|
---|
158 | buf[idx] = header[idx];
|
---|
159 | }
|
---|
160 |
|
---|
161 | return idx;
|
---|
162 | }
|
---|
163 |
|
---|
164 | public static int encodeCatalogue(S57map map, byte[] buf) throws IndexOutOfBoundsException {
|
---|
165 |
|
---|
166 |
|
---|
167 | int idx = leader.length;
|
---|
168 | for (int i = 0; i < idx; i++) {
|
---|
169 | buf[i] = leader[i];
|
---|
170 | }
|
---|
171 |
|
---|
172 | return idx;
|
---|
173 | }
|
---|
174 |
|
---|
175 | }
|
---|