1 package org.djutils.serialization.serializers;
2
3 import org.djutils.serialization.Endianness;
4 import org.djutils.serialization.SerializationException;
5
6 /**
7 * StringArraySerializercontains the basic methods to (de)serialize a String array.
8 * <p>
9 * Copyright (c) 2023-2025 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See
10 * for project information <a href="https://djutils.org" target="_blank"> https://djutils.org</a>. The DJUTILS project is
11 * distributed under a three-clause BSD-style license, which can be found at
12 * <a href="https://djutils.org/docs/license.html" target="_blank"> https://djutils.org/docs/license.html</a>.
13 * </p>
14 * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
15 */
16 public abstract class StringArraySerializer extends BasicSerializer<String[]>
17 {
18 /**
19 * Construct the StringArraySerializer.
20 * @param type the field type (returned by the <code>fieldType</code> method)
21 * @param dataClassName returned by the dataClassName method
22 */
23 public StringArraySerializer(final byte type, final String dataClassName)
24 {
25 super(type, dataClassName);
26 }
27
28 @Override
29 public final int sizeWithPrefix(final String[] object) throws SerializationException
30 {
31 return 1 + size(object);
32 }
33
34 @Override
35 public final void serializeWithPrefix(final String[] object, final byte[] buffer, final Pointer pointer,
36 final Endianness endianness) throws SerializationException
37 {
38 buffer[pointer.getAndIncrement(1)] = fieldType();
39 serialize(object, buffer, pointer, endianness);
40 }
41
42 @Override
43 public final int getNumberOfDimensions()
44 {
45 return 1;
46 }
47
48 }