1 package org.djutils.serialization.serializers;
2
3 import org.djutils.serialization.EndianUtil;
4 import org.djutils.serialization.SerializationException;
5
6
7
8
9
10
11
12
13
14
15
16
17 public abstract class BasicPrimitiveArrayOrMatrixSerializer<T extends Object> extends BasicSerializer<T>
18 {
19
20 private final int elementSize;
21
22
23 private final int numberOfDimensions;
24
25
26
27
28
29
30
31
32 public BasicPrimitiveArrayOrMatrixSerializer(final byte type, final int elementSize, final String dataClassName,
33 final int numberOfDimensions)
34 {
35 super(type, dataClassName);
36 this.elementSize = elementSize;
37 this.numberOfDimensions = numberOfDimensions;
38 }
39
40 @Override
41 public final int sizeWithPrefix(final T object) throws SerializationException
42 {
43 return 1 + size(object);
44 }
45
46 @Override
47 public final void serializeWithPrefix(final T object, final byte[] buffer, final Pointer pointer,
48 final EndianUtil endianUtil) throws SerializationException
49 {
50 buffer[pointer.getAndIncrement(1)] = fieldType();
51 serialize(object, buffer, pointer, endianUtil);
52 }
53
54
55
56
57
58 public final int getElementSize()
59 {
60 return this.elementSize;
61 }
62
63 @Override
64 public final int getNumberOfDimensions()
65 {
66 return this.numberOfDimensions;
67 }
68
69 }