View Javadoc
1   package org.djutils.serialization;
2   
3   /**
4    * Type numbers to encode different data types within djutils-serialization.
5    * <p>
6    * Copyright (c) 2016-2017 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
7    * BSD-style license. See <a href="https://sim0mq.org/docs/current/license.html">Sim0MQ License</a>.
8    * </p>
9    * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
10   */
11  public final class FieldTypes
12  {
13  
14      /** byte, 8 bit signed two's complement integer. */
15      public static final byte BYTE_8 = 0;
16  
17      /** short, 16 bit signed two's complement integer. */
18      public static final byte SHORT_16 = 1;
19  
20      /** int, 32 bit signed two's complement integer. */
21      public static final byte INT_32 = 2;
22  
23      /** long, 64 bit signed two's complement integer. */
24      public static final byte LONG_64 = 3;
25  
26      /** float, single-precision 32-bit IEEE 754 floating point. */
27      public static final byte FLOAT_32 = 4;
28  
29      /** float, double-precision 64-bit IEEE 754 floating point. */
30      public static final byte DOUBLE_64 = 5;
31  
32      /** boolean, sent / received as a byte; 0 = false, 1 = true. */
33      public static final byte BOOLEAN_8 = 6;
34  
35      /** char, 8-bit ASCII character. */
36      public static final byte CHAR_8 = 7;
37  
38      /** char, 16-bit Unicode character, big endian order. */
39      public static final byte CHAR_16 = 8;
40  
41      /**
42       * String, number-preceded byte array of 8-bits characters. The string types are preceded by a 32-bit int indicating the
43       * number of characters in the array that follows. This int is itself not preceded by a byte indicating it is an int. An
44       * ASCII string "Hello" is therefore coded as follows: |9|0|0|0|5|H|e|l|l|o|
45       */
46      public static final byte STRING_8 = 9;
47  
48      /**
49       * String, number-preceded char array of 16-bits characters, big-endian order. The string types are preceded by a 32-bit int
50       * indicating the number of characters in the array that follows. This int is itself not preceded by a byte indicating it is
51       * an int.
52       */
53      public static final byte STRING_16 = 10;
54  
55      /**
56       * Number-preceded byte array. The array types are preceded by a 32-bit int indicating the number of values in the array
57       * that follows. This int is itself not preceded by a byte indicating it is an int. An array of 8 bytes with numbers 1
58       * through 8 is therefore coded as follows: |11|0|0|0|8|1|2|3|4|5|6|7|8|
59       */
60      public static final byte BYTE_8_ARRAY = 11;
61  
62      /**
63       * Number-preceded short array. The array types are preceded by a 32-bit int indicating the number of values in the array
64       * that follows. This int is itself not preceded by a byte indicating it is an int. An array of 8 shorts with numbers 100
65       * through 107 is therefore coded as follows: |12|0|0|0|8|0|100|0|101|0|102|0|103|0|104|0|105|0|106|0|107|
66       */
67      public static final byte SHORT_16_ARRAY = 12;
68  
69      /**
70       * Number-preceded int array. The array types are preceded by a 32-bit int indicating the number of values in the array that
71       * follows. This int is itself not preceded by a byte indicating it is an int. An array of 4 ints with numbers 100 through
72       * 103 is therefore coded as follows: |13|0|0|0|4|0|0|0|100|0|0|0|101|0|0|0|102|0|0|0|103|
73       */
74      public static final byte INT_32_ARRAY = 13;
75  
76      /**
77       * Number-preceded long array. The array types are preceded by a 32-bit int indicating the number of values in the array
78       * that follows. This int is itself not preceded by a byte indicating it is an int. An array of 3 longs with numbers 100
79       * through 102 is therefore coded as follows: |14|0|0|0|3|0|0|0|0|0|0|0|100|0|0|0|0|0|0|0|101|0|0|0|0|0|0|0|102|
80       */
81      public static final byte LONG_64_ARRAY = 14;
82  
83      /**
84       * Number-preceded float array. The array types are preceded by a 32-bit int indicating the number of values in the array
85       * that follows. This int is itself not preceded by a byte indicating it is an int.
86       */
87      public static final byte FLOAT_32_ARRAY = 15;
88  
89      /**
90       * Number-preceded double array. The array types are preceded by a 32-bit int indicating the number of values in the array
91       * that follows. This int is itself not preceded by a byte indicating it is an int.
92       */
93      public static final byte DOUBLE_64_ARRAY = 16;
94  
95      /**
96       * Number-preceded boolean array. The array types are preceded by a 32-bit int indicating the number of values in the array
97       * that follows. This int is itself not preceded by a byte indicating it is an int.
98       */
99      public static final byte BOOLEAN_8_ARRAY = 17;
100 
101     /**
102      * Number of rows and number of columns preceded byte matrix. The matrix types are preceded by a 32-bit int indicating the
103      * number of rows, followed by a 32-bit int indicating the number of columns. These integers are not preceded by a byte
104      * indicating it is an int. The number of values in the matrix that follows is rows * columns. The data is stored row by
105      * row, without a separator between the rows. A matrix with 2 rows and 3 columns of bytes 1-2-4 6-7-8 is therefore coded as
106      * follows: |18|0|0|0|2|0|0|0|3|0|1|0|2|0|4|0|6|0|7|0|8|<br>
107      * In the language sending or receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
108      * index: matrix[row][col].
109      */
110     public static final byte BYTE_8_MATRIX = 18;
111 
112     /**
113      * Number of rows and number of columns preceded short matrix. The matrix types are preceded by a 32-bit int indicating the
114      * number of rows, followed by a 32-bit int indicating the number of columns. These integers are not preceded by a byte
115      * indicating it is an int. The number of values in the matrix that follows is rows * columns. The data is stored row by
116      * row, without a separator between the rows. A matrix with 2 rows and 3 columns of shorts 1-2-4 6-7-8 is therefore coded as
117      * follows: |19|0|0|0|2|0|0|0|3|1|2|4|6|7|8|<br>
118      * In the language sending or receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
119      * index: matrix[row][col].
120      */
121     public static final byte SHORT_16_MATRIX = 19;
122 
123     /**
124      * Number of rows and number of columns preceded int matrix. The matrix types are preceded by a 32-bit int indicating the
125      * number of rows, followed by a 32-bit int indicating the number of columns. These integers are not preceded by a byte
126      * indicating it is an int. The number of values in the matrix that follows is rows * columns. The data is stored row by
127      * row, without a separator between the rows. A matrix with 2 rows and 3 columns of integers 1-2-4 6-7-8 is therefore coded
128      * as follows: |20|0|0|0|2|0|0|0|3|0|0|0|1|0|0|0|2|0|0|0|4|0|0|0|6|0|0|0|7|0|0|0|8|<br>
129      * In the language sending or receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
130      * index: matrix[row][col].
131      */
132     public static final byte INT_32_MATRIX = 20;
133 
134     /**
135      * Number of rows and number of columns preceded long matrix. The matrix types are preceded by a 32-bit int indicating the
136      * number of rows, followed by a 32-bit int indicating the number of columns. These integers are not preceded by a byte
137      * indicating it is an int. The number of values in the matrix that follows is rows * columns. The data is stored row by
138      * row, without a separator between the rows. A matrix with 2 rows and 3 columns of long vales 1-2-4 6-7-8 is therefore
139      * coded as follows:
140      * |21|0|0|0|2|0|0|0|3|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|2|0|0|0|0|0|0|0|4|0|0|0|0|0|0|0|6|0|0|0|0|0|0|0|7|0|0|0|0|0|0|0|8|<br>
141      * In the language sending or receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
142      * index: matrix[row][col].
143      */
144     public static final byte LONG_64_MATRIX = 21;
145 
146     /**
147      * Number of rows and number of columns preceded float matrix. The matrix types are preceded by a 32-bit int indicating the
148      * number of rows, followed by a 32-bit int indicating the number of columns. These integers are not preceded by a byte
149      * indicating it is an int. The number of values in the matrix that follows is rows * columns. The data is stored row by
150      * row, without a separator between the rows.<br>
151      * In the language sending or receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
152      * index: matrix[row][col].
153      */
154     public static final byte FLOAT_32_MATRIX = 22;
155 
156     /**
157      * Number of rows and number of columns preceded double matrix. The matrix types are preceded by a 32-bit int indicating the
158      * number of rows, followed by a 32-bit int indicating the number of columns. These integers are not preceded by a byte
159      * indicating it is an int. The number of values in the matrix that follows is rows * columns. The data is stored row by
160      * row, without a separator between the rows.<br>
161      * In the language sending or receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
162      * index: matrix[row][col].
163      */
164     public static final byte DOUBLE_64_MATRIX = 23;
165 
166     /**
167      * Number of rows and number of columns preceded boolean matrix. The matrix types are preceded by a 32-bit int indicating
168      * the number of rows, followed by a 32-bit int indicating the number of columns. These integers are not preceded by a byte
169      * indicating it is an int. The number of values in the matrix that follows is rows * columns. The data is stored row by
170      * row, without a separator between the rows.<br>
171      * In the language sending or receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
172      * index: matrix[row][col].
173      */
174     public static final byte BOOLEAN_8_MATRIX = 24;
175 
176     /**
177      * Float, stored internally in the SI unit, with a unit type and display type attached. The internal storage of the value
178      * that is transmitted is always in the SI (or standard) unit, except for money where the display unit is used. The value is
179      * preceded by a one-byte unit type, and a one-byte display type (or two-byte in case of the MoneyPerUnit). As an example:
180      * suppose the unit indicates that the type is a length, whereas the display type indicates that the internally stored value
181      * 60000.0 should be displayed as 60.0 km, this is coded as follows: |25|16|11|0x47|0x6A|0x60|0x00|
182      */
183     public static final byte FLOAT_32_UNIT = 25;
184 
185     /**
186      * Double, stored internally in the SI unit, with a unit type and display type attached. The internal storage of the value
187      * that is transmitted is always in the SI (or standard) unit, except for money where the display unit is used. The value is
188      * preceded by a one-byte unit type and a one-byte display type (or two-byte in case of the MoneyPerUnit). As an example:
189      * suppose the unit indicates that the type is a length, whereas the display type indicates that the internally stored value
190      * 60000.0 should be displayed as 60.0 km, this is coded as follows: |26|16|11|0x47|0x6A|0x60|0x00|0x00|0x00|0x00|0x00|
191      */
192     public static final byte DOUBLE_64_UNIT = 26;
193 
194     /**
195      * Number-preceded dense float array, stored internally in the SI unit, with a unit type and display type. After the byte
196      * with value 27, the array types have a 32-bit int indicating the number of values in the array that follows. This int is
197      * itself not preceded by a byte indicating it is an int. Then a one-byte unit type follows and a one-byte display type (or
198      * two-byte in case of the MoneyPerUnit). The internal storage of the values that are transmitted after that always use the
199      * SI (or standard) unit, except for money where the display unit is used. As an example: when we send an array of two
200      * durations, 2.0 minutes and 2.5 minutes, this is coded as follows:
201      * |27|0|0|0|2|25|7|0x40|0x00|0x00|0x00|0x40|0x20|0x00|0x00|
202      */
203     public static final byte FLOAT_32_UNIT_ARRAY = 27;
204 
205     /**
206      * Number-preceded dense double array, stored internally in the SI unit, with a unit type and display type. After the byte
207      * with value 28, the array types have a 32-bit int indicating the number of values in the array that follows. This int is
208      * itself not preceded by a byte indicating it is an int. Then a one-byte unit type follows and a one-byte display type (or
209      * two-byte in case of the MoneyPerUnit). The internal storage of the values that are transmitted after that always use the
210      * SI (or standard) unit, except for money where the display unit is used. As an example: when we send an array of two
211      * durations, 21.2 minutes and 21.5 minutes, this is coded as follows:
212      * |28|0|0|0|2|25|7|0x40|0x35|0x33|0x33|0x3|0x33|0x33|0x33|0x40|0x35|0x80|0x00|0x00|0x00|0x00|0x00|
213      */
214     public static final byte DOUBLE_64_UNIT_ARRAY = 28;
215 
216     /**
217      * Rows/Cols-preceded dense float array, stored internally in the SI unit, with a unit type and display type. After the byte
218      * with value 29, the matrix types have a 32-bit int indicating the number of rows in the array that follows, followed by a
219      * 32-bit int indicating the number of columns. These integers are not preceded by a byte indicating it is an int. Then a
220      * one-byte unit type follows and a one-byte (or two-byte in case of the MoneyPerUnit) display type The internal storage of
221      * the values that are transmitted after that always use the SI (or standard) unit, except for money where the display unit
222      * is used. Summarized, the coding is as follows:
223      * 
224      * <pre>
225      * |29|  |R|O|W|S|  |C|O|L|S|  |UT|  |DT|
226      * |R|1|C|1|  |R|1|C|2| ... |R|1|C|n| 
227      * |R|2|C|1|  |R|2|C|2| ... |R|2|C|n| 
228      * ... 
229      * |R|m|C|1|  |R|m|C|2| ... |R|m|C|n|
230      * </pre>
231      * 
232      * In the language sending ore receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
233      * index: matrix[row][col].
234      */
235     public static final byte FLOAT_32_UNIT_MATRIX = 29;
236 
237     /**
238      * Rows/Cols-preceded dense double array, stored internally in the SI unit, with a unit type and display type. After the
239      * byte with value 30, the matrix types have a 32-bit int indicating the number of rows in the array that follows, followed
240      * by a 32-bit int indicating the number of columns. These integers are not preceded by a byte indicating it is an int. Then
241      * a one-byte unit type follows and a one-byte (or two-byte in case of the MoneyPerUnit) display type The internal storage
242      * of the values that are transmitted after that always use the SI (or standard) unit, except for money where the display
243      * unit is used. Summarized, the coding is as follows:
244      * 
245      * <pre>
246      * |30|  |R|O|W|S|  |C|O|L|S|  |UT|  |DT|
247      * |R|1|C|1|.|.|.|.|  |R|1|C|2|.|.|.|.| ... |R|1|C|n|.|.|.|.| 
248      * |R|2|C|1|.|.|.|.|  |R|2|C|2|.|.|.|.| ... |R|2|C|n|.|.|.|.| 
249      * ... 
250      * |R|m|C|1|.|.|.|.|  |R|m|C|2|.|.|.|.| ... |R|m|C|n|.|.|.|.|
251      * </pre>
252      * 
253      * In the language sending ore receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
254      * index: matrix[row][col].
255      */
256     public static final byte DOUBLE_64_UNIT_MATRIX = 30;
257 
258     /**
259      * Number-preceded dense float array, stored internally in the SI unit, with a unique unit type and display type per row.
260      * After the byte with value 31, the matrix types have a 32-bit int indicating the number of rows in the array that follows,
261      * followed by a 32-bit int indicating the number of columns. These integers are not preceded by a byte indicating it is an
262      * int. Then a one-byte unit type for column 1 follows and a one-byte (or two-byte in case of the MoneyPerUnit) display type
263      * for column 1. Then the unit type and display type for column 2, etc. The internal storage of the values that are
264      * transmitted after that always use the SI (or standard) unit, except for money where the display unit is used. Summarized,
265      * the coding is as follows:
266      * 
267      * <pre>
268      * |31|  |R|O|W|S|  |C|O|L|S|
269      * |UT1|DT1|  |UT2|DT2| ... |UTn|DTn|
270      * |R|1|C|1|  |R|1|C|2| ... |R|1|C|n| 
271      * |R|2|C|1|  |R|2|C|2| ... |R|2|C|n| 
272      * ... 
273      * |R|m|C|1|  |R|m|C|2| ... |R|m|C|n|
274      * </pre>
275      * 
276      * In the language sending or receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
277      * index: matrix[row][col]. This data type is ideal for, for instance, sending a time series of values, where column 1
278      * indicates the time, and column 2 the value. Suppose that we have a time series of 4 values at t = {1, 2, 3, 4} hours and
279      * dimensionless values v = {20.0, 40.0, 50.0, 60.0}, then the coding is as follows:
280      * 
281      * <pre>
282      * |31|  |0|0|0|4|  |0|0|0|2|
283      * |26|8|  |0|0|
284      * |0x3F|0x80|0x00|0x00|  |0x41|0xA0|0x00|0x00|
285      * |0x40|0x00|0x00|0x00|  |0x42|0x20|0x00|0x00|
286      * |0x40|0x00|0x40|0x00|  |0x42|0x48|0x00|0x00|
287      * |0x40|0x80|0x00|0x00|  |0x42|0x70|0x00|0x00|
288      * </pre>
289      */
290     public static final byte FLOAT_32_UNIT_COLUMN_ARRAY = 31;
291 
292     /**
293      * Number-preceded dense double array, stored internally in the SI unit, with a unique unit type and display type per row.
294      * After the byte with value 32, the matrix types have a 32-bit int indicating the number of rows in the array that follows,
295      * followed by a 32-bit int indicating the number of columns. These integers are not preceded by a byte indicating it is an
296      * int. Then a one-byte unit type for column 1 follows (see the table above) and a one-byte (or two-byte in case of the
297      * MoneyPerUnit) display type for column 1 (see Appendix A). Then the unit type and display type for column 2, etc. The
298      * internal storage of the values that are transmitted after that always use the SI (or standard) unit, except for money
299      * where the display unit is used. Summarized, the coding is as follows:
300      * 
301      * <pre>
302      * |32|  |R|O|W|S|  |C|O|L|S|
303      * |UT1|DT1|  |UT2|DT2| ... |UTn|DTn|
304      * |R|1|C|1|.|.|.|.|  |R|1|C|2|.|.|.|.| ... |R|1|C|n|.|.|.|.| 
305      * |R|2|C|1|.|.|.|.|  |R|2|C|2|.|.|.|.| ... |R|2|C|n|.|.|.|.| 
306      * ... 
307      * |R|m|C|1|.|.|.|.|  |R|m|C|2|.|.|.|.| ... |R|m|C|n|.|.|.|.|
308      * </pre>
309      * 
310      * In the language sending or receiving a matrix, the rows are denoted by the outer index, and the columns by the inner
311      * index: matrix[row][col]. This data type is ideal for, for instance, sending a time series of values, where column 1
312      * indicates the time, and column 2 the value. Suppose that we have a time series of 4 values at dimensionless years {2010,
313      * 2011, 2012, 2013} and costs of dollars per acre of {415.7, 423.4, 428.0, 435.1}, then the coding is as follows:
314      * 
315      * <pre>
316      * |32|  |0|0|0|4|  |0|0|0|2|
317      * |0|0|  |101|150|18|
318      * |0x40|0x9F|0x68|0x00|0x00|0x00|0x00|0x00|
319      * |0x40|0x79|0xFB|0x33|0x33|0x33|0x33|0x33|
320      * |0x40|0x9F|0x6C|0x00|0x00|0x00|0x00|0x00|
321      * |0x40|0x7A|0x76|0x66|0x66|0x66|0x66|0x66|
322      * |0x40|0x9F|0x70|0x00|0x00|0x00|0x00|0x00|
323      * |0x40|0x7A|0xC0|0x00|0x00|0x00|0x00|0x00|
324      * |0x40|0x9F|0x74|0x00|0x00|0x00|0x00|0x00|
325      * |0x40|0x7A|0x91|0x99|0x99|0x99|0x99|0x9A|
326      * </pre>
327      */
328     public static final byte DOUBLE_64_UNIT_COLUMN_ARRAY = 32;
329 
330     /** 128 (-128) Byte, 8 bit signed two's complement integer; equal to code 0. */
331     public static final byte BYTE_8_LE = -128;
332 
333     /**
334      * 129 (-127) Short, 16 bit signed two's complement integer, little endian order.
335      */
336     public static final byte SHORT_16_LE = -127;
337 
338     /**
339      * 130 (-126) Integer, 32 bit signed two's complement integer, little endian order.
340      */
341     public static final byte INT_32_LE = -126;
342 
343     /**
344      * 131 (-125) Long, 64 bit signed two's complement integer, little endian order.
345      */
346     public static final byte LONG_64_LE = -125;
347 
348     /**
349      * 132 (-124) Float, single-precision 32-bit IEEE 754 floating point, little endian order.
350      */
351     public static final byte FLOAT_32_LE = -124;
352 
353     /**
354      * 133 (-123) Float, double-precision 64-bit IEEE 754 floating point, little endian order.
355      */
356     public static final byte DOUBLE_64_LE = -123;
357 
358     /**
359      * 134 (-122) Boolean, sent / received as a byte; 0 = false, 1 = true; equal to code 6.
360      */
361     public static final byte BOOLEAN_8_LE = -122;
362 
363     /**
364      * 135 (-121) Char, 8-bit ASCII character; equal to code 7.
365      */
366     public static final byte CHAR_8_LE = -121;
367 
368     /**
369      * 136 (-120) Char, 16-bit Unicode character, little-endian order for the 2 part.
370      */
371     public static final byte CHAR_16_LE = -120;
372 
373     /**
374      * s 137 (-119) String, 32-bit little-endian number-preceded byte array of 8-bits characters.
375      */
376     public static final byte STRING_8_LE = -119;
377 
378     /**
379      * 138 (-118) String, 32-bit little-endian number-preceded char array of 16-bits characters, each 2-byte character in
380      * little-endian order.
381      */
382     public static final byte STRING_16_LE = -118;
383 
384     /**
385      * 139 (-117) Byte array, preceded by a 32-bit little-endian number indicating the number of bytes.
386      */
387     public static final byte BYTE_8_ARRAY_LE = -117;
388 
389     /**
390      * 140 (-116) Short array, preceded by a 32-bit little-endian number indicating the number of shorts, little-endian coded
391      * shorts.
392      */
393     public static final byte SHORT_16_ARRAY_LE = -116;
394 
395     /**
396      * 141 (-115) Integer array, preceded by a 32-bit little-endian number indicating the number of integers, little-endian
397      * coded ints.
398      */
399     public static final byte INT_32_ARRAY_LE = -115;
400 
401     /**
402      * 142 (-114) Long array, preceded by a 32-bit little-endian number indicating the number of longs, little-endian coded
403      * longs.
404      */
405     public static final byte LONG_64_ARRAY_LE = -114;
406 
407     /**
408      * 143 (-113) Float array, preceded by a 32-bit little-endian number indicating the number of floats, little-endian coded
409      * floats.
410      */
411     public static final byte FLOAT_32_ARRAY_LE = -113;
412 
413     /**
414      * 144 (-112) Double array, preceded by a 32-bit little-endian number indicating the number of doubles, little-endian coded
415      * doubles.
416      */
417     public static final byte DOUBLE_64_ARRAY_LE = -112;
418 
419     /**
420      * 145 (-111) Boolean array, preceded by a 32-bit little-endian number indicating the number of booleans.
421      */
422     public static final byte BOOLEAN_8_ARRAY_LE = -111;
423 
424     /**
425      * 146 (-110) Byte matrix, preceded by a 32-bit little-endian number row count and a 32-bit little-endian number column
426      * count.
427      */
428     public static final byte BYTE_8_MATRIX_LE = -110;
429 
430     /**
431      * 147 (-109) Short matrix, preceded by a 32-bit little-endian number row count and a 32-bit little-endian number column
432      * count, little-endian coded shorts.
433      */
434     public static final byte SHORT_16_MATRIX_LE = -109;
435 
436     /**
437      * 148 (-108) Integer matrix, preceded by a 32-bit little-endian number row count and a 32-bit little-endian number column
438      * count, little-endian coded ints.
439      */
440     public static final byte INT_32_MATRIX_LE = -108;
441 
442     /**
443      * 149 (-107) Long matrix, preceded by a 32-bit little-endian number row count and a 32-bit little-endian number column
444      * count, little-endian coded longs.
445      */
446     public static final byte LONG_64_MATRIX_LE = -107;
447 
448     /**
449      * 150 (-106) Float matrix, preceded by a 32-bit little-endian number row count and a 32-bit little-endian number column
450      * count, little-endian coded floats.
451      */
452     public static final byte FLOAT_32_MATRIX_LE = -106;
453 
454     /**
455      * 151 (-105) Double matrix, preceded by a 32-bit little-endian number row count and a 32-bit little-endian number column
456      * count, little-endian doubles.
457      */
458     public static final byte DOUBLE_64_MATRIX_LE = -105;
459 
460     /**
461      * 152 (-104) Boolean matrix, preceded by a 32-bit little-endian number row count and a 32-bit little-endian number column
462      * count.
463      */
464     public static final byte BOOLEAN_8_MATRIX_LE = -104;
465 
466     /**
467      * 153 (-103) Float stored internally as a little-endian float in the corresponding SI unit, with unit type and display unit
468      * attached. The total size of the object is 7 bytes plus 1 or 2 extra bytes when a money unit is involved.
469      */
470     public static final byte FLOAT_32_UNIT_LE = -103;
471 
472     /**
473      * 154 (-102) Double stored internally as a little-endian double in the corresponding SI unit, with unit type and display
474      * unit attached. The total size of the object is 11 bytes plus 1 or 2 extra bytes when a money unit is involved.
475      */
476     public static final byte DOUBLE_64_UNIT_LE = -102;
477 
478     /**
479      * 155 (-101) Dense float array, preceded by a little-endian 32-bit number indicating the number of floats, with unit type
480      * and display unit attached to the entire float array. Each float is stored in little-endian order.
481      */
482     public static final byte FLOAT_32_UNIT_ARRAY_LE = -101;
483 
484     /**
485      * 156 (-100) Dense double array, preceded by a little-endian 32-bit number indicating the number of doubles, little-endian
486      * order, with unit type and display unit attached to the entire double array. Each double is stored in little-endian order.
487      */
488     public static final byte DOUBLE_64_UNIT_ARRAY_LE = -100;
489 
490     /**
491      * 157 (-99) Dense float matrix, preceded by a 32-bit little-endian row count int and a 32-bit little-endian column count
492      * int, with unit type and display unit attached to the entire float matrix. Each float is stored in little-endian order.
493      */
494     public static final byte FLOAT_32_UNIT_MATRIX_LE = -99;
495 
496     /**
497      * 158 (-98) Dense double matrix, preceded by a 32-bit little-endian row count int and a 32-bit little-endian column count
498      * int, with unit type and display unit attached to the entire double matrix. Each double is stored in little-endian order.
499      */
500     public static final byte DOUBLE_64_UNIT_MATRIX_LE = -98;
501 
502     /**
503      * 159 (-97) Dense little-endian float matrix, preceded by a 32-bit little-endian row count int and a 32-bit little-endian
504      * column count int, with a unique unit type and display unit per row of the float matrix.
505      */
506     public static final byte FLOAT_32_UNIT2_MATRIX_LE = -97;
507 
508     /**
509      * 160 (-96) Dense little-endian double matrix, preceded by a 32-bit little-endian row count int and a 32-bit little-endian
510      * column count int, with a unique unit type and display unit per row of the double matrix.
511      */
512     public static final byte DOUBLE_64_UNIT2_MATRIX_LE = -96;
513 
514     /**
515      * Utility class, cannot be instantiated.
516      */
517     private FieldTypes()
518     {
519         // Utility class
520     }
521 
522 }