Interface TextSerializer<T>

    • Method Detail

      • serialize

        String serialize​(T value,
                         String unit)
        Serialize a value to text in such a way that it can be deserialized with the corresponding deserializer. Note that null values for value are allowed. A null values stands for an empty column value in a CVS-file, a missing tag in an XML-file, etc.
        Parameters:
        value - T; the value to serialize, may be null
        unit - String; the unit used to convert the data to and store, so all valus in a column may have the same unit. The value may be null or blank
        Returns:
        String; a string representation of the value that can later be deserialized, or nullto denote a missing value
      • deserialize

        T deserialize​(Class<T> type,
                      String text,
                      String unit)
        Deserialize a value from text that has been created with the corresponding serializer. Note that null values for text are allowed. A null values stands for an empty column value in a CVS-file, a missing tag in an XML-file, etc. In this way, we can explicitly show values that were not specified in the file. Also, the type may be null; this is, for instance, the case for any TextSerializer implementing SpecificTextSerializer, where no class needs to be provided (although it can).
        Parameters:
        type - Class<T>; class of the value type, may be null
        text - String; the string to deserialize, may be null or blank
        unit - String; unit with the value, may be null or blank
        Returns:
        T; an instance of the object created with the corresponding serializer, may be null when a value was not specified in the source from which the deserializer was called
      • resolve

        static TextSerializer<?> resolve​(Class<?> valueClass)
                                  throws TextSerializationException
        Resolve the correct (de)serializer for the given class, and return an instance of the (de)serializer.
        Parameters:
        valueClass - Class<?>; the class to resolve the (de)serializer for
        Returns:
        an instance of the correct (de)serializer
        Throws:
        TextSerializationException - when there is no corresponding (de)serializer for the class
      • serialize

        static <T> String serialize​(TextSerializer<?> serializer,
                                    Object value,
                                    String unit)
        Helper function to deal with casting when calling TextSerializer.serialize(). When the resolve(class) method returns an 'unspecified' serializer, this serialize method allows you to use it. Note that null values for value are allowed. A null values stands for an empty column value in a CVS-file, a missing tag in an XML-file, etc.
        Type Parameters:
        T - value type
        Parameters:
        serializer - TextSerializer<?>; serializer
        value - Object; value, may be null
        unit - String; the unit used to convert the data to and store, so all valus in a column may have the same unit. The value may be null or blank
        Returns:
        String; serialized value, or nullto denote a missing value
      • deserialize

        static <T> T deserialize​(TextSerializer<?> serializer,
                                 String text,
                                 Column<?> column)
        Helper function to deal with casting when calling TextSerializer.deserialize(). When the resolve(class) method returns an 'unspecified' serializer, this serialize method allows you to use it. Note that null values for text are allowed. A null values stands for an empty column value in a CVS-file, a missing tag in an XML-file, etc. In this way, we can explicitly show values that were not specified in the file for a certain column.
        Type Parameters:
        T - value type
        Parameters:
        serializer - TextSerializer<?>; serializer
        text - String; value, may be null
        column - Column<?>; columns
        Returns:
        T; deserialized value, may be null when a value was not specified in the source for which the deserializer was called