package org.djutils.data.serialization;
/**
* PrimitiveSerializer takes care of (de)serialization of primitive values.
*
* Copyright (c) 2020-2020 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See
* for project information https://djutils.org. The DJUTILS project is
* distributed under a three-clause BSD-style license, which can be found at
* https://djutils.org/docs/license.html.
* @author Alexander Verbraeck
* @author Peter Knoppers
* @author Wouter Schakel
*/
public final class PrimitiveSerializer
{
/** Utility class cannot be initialized. */
private PrimitiveSerializer()
{
// utility class.
}
/** Serializer and deserializer for int. */
public static class Int implements TextSerializer
{
/** {@inheritDoc} */
@Override
public String serialize(final Object value)
{
return String.valueOf(value);
}
/** {@inheritDoc} */
@Override
public Object deserialize(final String text)
{
return Integer.valueOf(text).intValue();
}
}
/** Serializer and deserializer for double. */
public static class Double implements TextSerializer
{
/** {@inheritDoc} */
@Override
public String serialize(final Object value)
{
return String.valueOf(value);
}
/** {@inheritDoc} */
@Override
public Object deserialize(final String text)
{
return java.lang.Double.valueOf(text).doubleValue();
}
}
/** Serializer and deserializer for float. */
public static class Float implements TextSerializer
{
/** {@inheritDoc} */
@Override
public String serialize(final Object value)
{
return String.valueOf(value);
}
/** {@inheritDoc} */
@Override
public Object deserialize(final String text)
{
return java.lang.Float.valueOf(text).floatValue();
}
}
/** Serializer and deserializer for long. */
public static class Long implements TextSerializer
{
/** {@inheritDoc} */
@Override
public String serialize(final Object value)
{
return String.valueOf(value);
}
/** {@inheritDoc} */
@Override
public Object deserialize(final String text)
{
return java.lang.Long.valueOf(text).longValue();
}
}
/** Serializer and deserializer for short. */
public static class Short implements TextSerializer
{
/** {@inheritDoc} */
@Override
public String serialize(final Object value)
{
return String.valueOf(value);
}
/** {@inheritDoc} */
@Override
public Object deserialize(final String text)
{
return java.lang.Short.valueOf(text).shortValue();
}
}
/** Serializer and deserializer for byte. */
public static class Byte implements TextSerializer
{
/** {@inheritDoc} */
@Override
public String serialize(final Object value)
{
return String.valueOf(value);
}
/** {@inheritDoc} */
@Override
public Object deserialize(final String text)
{
return java.lang.Byte.valueOf(text).byteValue();
}
}
/** Serializer and deserializer for boolean. */
public static class Boolean implements TextSerializer
{
/** {@inheritDoc} */
@Override
public String serialize(final Object value)
{
return String.valueOf(value);
}
/** {@inheritDoc} */
@Override
public Object deserialize(final String text)
{
return java.lang.Boolean.valueOf(text).booleanValue();
}
}
/** Serializer and deserializer for char. */
public static class Char implements TextSerializer
{
/** {@inheritDoc} */
@Override
public String serialize(final Object value)
{
return String.valueOf(value);
}
/** {@inheritDoc} */
@Override
public Object deserialize(final String text)
{
return text.charAt(0);
}
}
}