Class ObjectSerializer

java.lang.Object
org.polyfrost.oneconfig.api.config.v1.serialize.ObjectSerializer

public class ObjectSerializer extends Object
  • Field Details

    • INSTANCE

      public static final ObjectSerializer INSTANCE
    • FIELD_SKIP_MODIFIERS

      public static final int FIELD_SKIP_MODIFIERS
      Modifier.SYNTHETIC | Modifier.TRANSIENT | Modifier.STATIC
      See Also:
  • Method Details

    • isSerializable

      public static boolean isSerializable(Object in)
    • getAllFields

      public static Field[] getAllFields(Class<?> cls)
    • isImmutable

      public static boolean isImmutable(Class<?> cls)
      true if no instance field of this class can be assigned meaning the class is a value type
      Such objects can only be replaced and never mutated in place
    • fieldStream

      public static Stream<Field> fieldStream(Class<?> cls)
    • registerTypeAdapter

      public void registerTypeAdapter(Adapter<?,?> adapter)
    • registerTypeAdapter

      public void registerTypeAdapter(Adapter<?,?>... adapters)
    • serialize

      public Object serialize(Object in)
    • serialize

      public Object serialize(Object in, boolean useLists)
    • getAdapter

      public <T> Adapter<T,?> getAdapter(Class<T> cls)
    • serialize

      public Object serialize(Object in, boolean useLists, boolean boxArrays)
      Convert the given object into a series of simple values that should be supported by most backend serializers
      Parameters:
      in - the object
      useLists - if your serializer uses lists instead of arrays for collections of items
      boxArrays - if your serializer requires boxed primitive arrays
      Returns:
      the source object in a simple form
      See Also:
    • deserialize

      public Object deserialize(Map<String,Object> in)
      Deserialize the given complex object map
      The map must contain the class field
      Parameters:
      in - the map
      Returns:
      the completed object
    • overwrite

      public static <T> T overwrite(T self, T input)