View Javadoc
1   package org.djutils.data.serialization;
2   
3   /**
4    * PrimitiveSerializer takes care of (de)serialization of primitive values. <br>
5    * <br>
6    * Copyright (c) 2020-2021 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See
7    * for project information <a href="https://djutils.org" target="_blank"> https://djutils.org</a>. The DJUTILS project is
8    * distributed under a three-clause BSD-style license, which can be found at
9    * <a href="https://djutils.org/docs/license.html" target="_blank"> https://djutils.org/docs/license.html</a>. <br>
10   * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
11   * @author <a href="https://www.tudelft.nl/pknoppers">Peter Knoppers</a>
12   * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a>
13   */
14  public final class PrimitiveSerializer
15  {
16      /** Utility class cannot be initialized. */
17      private PrimitiveSerializer()
18      {
19          // utility class.
20      }
21  
22      /** Serializer and deserializer for int. */
23      public static class Int implements TextSerializer<java.lang.Integer>
24      {
25          /** {@inheritDoc} */
26          @Override
27          public String serialize(final Object value)
28          {
29              return String.valueOf(value);
30          }
31  
32          /** {@inheritDoc} */
33          @Override
34          public Object deserialize(final String text)
35          {
36              return Integer.valueOf(text).intValue();
37          }
38      }
39  
40      /** Serializer and deserializer for double. */
41      public static class Double implements TextSerializer<java.lang.Double>
42      {
43          /** {@inheritDoc} */
44          @Override
45          public String serialize(final Object value)
46          {
47              return String.valueOf(value);
48          }
49  
50          /** {@inheritDoc} */
51          @Override
52          public Object deserialize(final String text)
53          {
54              return java.lang.Double.valueOf(text).doubleValue();
55          }
56      }
57  
58      /** Serializer and deserializer for float. */
59      public static class Float implements TextSerializer<java.lang.Float>
60      {
61          /** {@inheritDoc} */
62          @Override
63          public String serialize(final Object value)
64          {
65              return String.valueOf(value);
66          }
67  
68          /** {@inheritDoc} */
69          @Override
70          public Object deserialize(final String text)
71          {
72              return java.lang.Float.valueOf(text).floatValue();
73          }
74      }
75  
76      /** Serializer and deserializer for long. */
77      public static class Long implements TextSerializer<java.lang.Long>
78      {
79          /** {@inheritDoc} */
80          @Override
81          public String serialize(final Object value)
82          {
83              return String.valueOf(value);
84          }
85  
86          /** {@inheritDoc} */
87          @Override
88          public Object deserialize(final String text)
89          {
90              return java.lang.Long.valueOf(text).longValue();
91          }
92      }
93  
94      /** Serializer and deserializer for short. */
95      public static class Short implements TextSerializer<java.lang.Short>
96      {
97          /** {@inheritDoc} */
98          @Override
99          public String serialize(final Object value)
100         {
101             return String.valueOf(value);
102         }
103 
104         /** {@inheritDoc} */
105         @Override
106         public Object deserialize(final String text)
107         {
108             return java.lang.Short.valueOf(text).shortValue();
109         }
110     }
111 
112     /** Serializer and deserializer for byte. */
113     public static class Byte implements TextSerializer<java.lang.Byte>
114     {
115         /** {@inheritDoc} */
116         @Override
117         public String serialize(final Object value)
118         {
119             return String.valueOf(value);
120         }
121 
122         /** {@inheritDoc} */
123         @Override
124         public Object deserialize(final String text)
125         {
126             return java.lang.Byte.valueOf(text).byteValue();
127         }
128     }
129 
130     /** Serializer and deserializer for boolean. */
131     public static class Boolean implements TextSerializer<java.lang.Boolean>
132     {
133         /** {@inheritDoc} */
134         @Override
135         public String serialize(final Object value)
136         {
137             return String.valueOf(value);
138         }
139 
140         /** {@inheritDoc} */
141         @Override
142         public Object deserialize(final String text)
143         {
144             return java.lang.Boolean.valueOf(text).booleanValue();
145         }
146     }
147 
148     /** Serializer and deserializer for char. */
149     public static class Char implements TextSerializer<java.lang.Character>
150     {
151         /** {@inheritDoc} */
152         @Override
153         public String serialize(final Object value)
154         {
155             return String.valueOf(value);
156         }
157 
158         /** {@inheritDoc} */
159         @Override
160         public Object deserialize(final String text)
161         {
162             return text.charAt(0);
163         }
164     }
165 
166 }