Class ScalarSerializer<T>

java.lang.Object
org.spongepowered.configurate.serialize.ScalarSerializer<T>
Type Parameters:
T - the object type to serialize
All Implemented Interfaces:
TypeSerializer<T>, TypeSerializer.Annotated<T>
Direct Known Subclasses:
ScalarSerializer.Annotated

public abstract class ScalarSerializer<T> extends Object implements TypeSerializer.Annotated<T>
Serialize a value that can be represented as a scalar value within a node. Implementations must be able to serialize when one of the accepted types is a String, and may support any other types as desired.

When serializing to a node, null values will be passed through directly. If the type serialized by this serializer is one of the native types of the backing node, it will be written directly to the node without any transformation.

Any serialized value must be deserializable by the same serializer.

Since:
4.0.0
  • Constructor Details

    • ScalarSerializer

      protected ScalarSerializer(io.leangen.geantyref.TypeToken<T> type)
      Create a new scalar serializer that handles the provided type.
      Parameters:
      type - type to handle
      Since:
      4.0.0
    • ScalarSerializer

      protected ScalarSerializer(Class<T> type)
      Create a new scalar serializer that handles the provided type.

      type must not be a raw parameterized type.

      Parameters:
      type - type to handle
      Since:
      4.0.0
  • Method Details

    • type

      public final io.leangen.geantyref.TypeToken<T> type()
      Get the general type token applicable for this serializer. This token may be parameterized.
      Returns:
      the type token for this serializer
      Since:
      4.0.0
    • deserialize

      public final T deserialize(Type type, ConfigurationNode node) throws SerializationException
      Description copied from interface: TypeSerializer
      Deserialize an object (of the correct type) from the given configuration node.
      Specified by:
      deserialize in interface TypeSerializer<T>
      Specified by:
      deserialize in interface TypeSerializer.Annotated<T>
      Parameters:
      type - the type of return value required
      node - the node containing serialized data
      Returns:
      an object
      Throws:
      SerializationException - if the presented data is invalid
    • deserialize

      Description copied from interface: TypeSerializer
      Deserialize an object (of the correct type) from the given configuration node.
      Specified by:
      deserialize in interface TypeSerializer<T>
      Specified by:
      deserialize in interface TypeSerializer.Annotated<T>
      Parameters:
      type - the annotated type of return value required
      node - the node containing serialized data
      Returns:
      an object
      Throws:
      SerializationException - if the presented data is invalid
    • deserialize

      public final T deserialize(Object value) throws SerializationException
      Attempt to deserialize the provided object using an unspecialized type. This may fail on more complicated deserialization processes such as with enum types.
      Parameters:
      value - the object to deserialize.
      Returns:
      the deserialized object, if possible
      Throws:
      SerializationException - if unable to coerce the value to the requested type.
      Since:
      4.0.0
    • deserialize

      Given an object of unknown type, attempt to convert it into the given type.
      Parameters:
      type - the specific type of the type's usage
      obj - the object to convert
      Returns:
      a converted object
      Throws:
      SerializationException - if the object could not be converted for any reason
      Since:
      4.2.0
    • deserialize

      public abstract T deserialize(Type type, Object obj) throws SerializationException
      Given an object of unknown type, attempt to convert it into the given type.
      Parameters:
      type - the specific type of the type's usage
      obj - the object to convert
      Returns:
      a converted object
      Throws:
      SerializationException - if the object could not be converted for any reason
      Since:
      4.0.0
    • serialize

      public final void serialize(AnnotatedType type, @Nullable T obj, ConfigurationNode node) throws SerializationException
      Description copied from interface: TypeSerializer
      Serialize an object to the given configuration node.
      Specified by:
      serialize in interface TypeSerializer<T>
      Specified by:
      serialize in interface TypeSerializer.Annotated<T>
      Parameters:
      type - the annotated type of the input object
      obj - the object to be serialized
      node - the node to write to
      Throws:
      SerializationException - if the object cannot be serialized
    • serialize

      public final void serialize(Type type, @Nullable T obj, ConfigurationNode node)
      Description copied from interface: TypeSerializer
      Serialize an object to the given configuration node.
      Specified by:
      serialize in interface TypeSerializer<T>
      Specified by:
      serialize in interface TypeSerializer.Annotated<T>
      Parameters:
      type - the type of the input object
      obj - the object to be serialized
      node - the node to write to
    • serialize

      protected abstract Object serialize(T item, Predicate<Class<?>> typeSupported)
      Serialize the provided value to a supported type, testing against the provided predicate.
      Parameters:
      item - the value to serialize
      typeSupported - a predicate to allow choosing which types are supported
      Returns:
      a serialized form of this object
      Since:
      4.0.0
    • tryDeserialize

      public final @Nullable T tryDeserialize(@Nullable Object obj)
      Attempt to deserialize the provided object, but rather than throwing an exception when a deserialization error occurs, return null instead.
      Parameters:
      obj - the object to try to deserialize
      Returns:
      an instance of the appropriate type, or null
      Since:
      4.0.0
      See Also:
    • serializeToString

      public final String serializeToString(T item)
      Serialize the item to a String, in a representation that can be interpreted by this serializer again.
      Parameters:
      item - the item to serialize
      Returns:
      the serialized form of the item
      Since:
      4.0.0