Class EnumTypeAdapterFactory

java.lang.Object
io.datarouter.gson.typeadapterfactory.EnumTypeAdapterFactory
All Implemented Interfaces:
com.google.gson.TypeAdapterFactory
Direct Known Subclasses:
EnumTypeAdapterFactory.AnonymousAllowUnregisteredEnumTypeAdapterFactory, EnumTypeAdapterFactory.RejectAllEnumTypeAdapterFactory

public abstract class EnumTypeAdapterFactory extends Object implements com.google.gson.TypeAdapterFactory
Intercepts all enum serialization, preventing accidental serialization of enums without explicitly specifying an encoding. This will reject unknown enums by default but can allow them by setting allowUnregistered()
  • Constructor Details

    • EnumTypeAdapterFactory

      public EnumTypeAdapterFactory()
  • Method Details

    • allowUnregistered

      protected EnumTypeAdapterFactory allowUnregistered()
      Not recommended. Instead of throwing an exception for unregistered Enum types, let Gson serialize by enum.name() or annotation
    • suppressUnregisteredLogging

      protected EnumTypeAdapterFactory suppressUnregisteredLogging()
      Not recommended. Suppress the warning logs when unregistered enums are encountered, for cases where the enums can't be known about ahead of time.
    • register

      protected <T> EnumTypeAdapterFactory register(Class<T> cls, com.google.gson.TypeAdapter<T> typeAdapter)
    • registerStringMappedEnumRequired

      protected <T extends Enum<T>> EnumTypeAdapterFactory registerStringMappedEnumRequired(io.datarouter.enums.MappedEnum<T,String> mappedEnum)
    • registerStringMappedEnumOptional

      protected <T extends Enum<T>> EnumTypeAdapterFactory registerStringMappedEnumOptional(io.datarouter.enums.MappedEnum<T,String> mappedEnum, T replacement)
    • registerStringMappedEnumOptionalWithLogging

      protected <T extends Enum<T>> EnumTypeAdapterFactory registerStringMappedEnumOptionalWithLogging(io.datarouter.enums.MappedEnum<T,String> mappedEnum, T replacement)
    • create

      public <T> com.google.gson.TypeAdapter<T> create(com.google.gson.Gson gson, com.google.gson.reflect.TypeToken<T> type)
      Specified by:
      create in interface com.google.gson.TypeAdapterFactory