Interface EnumId


  • public interface EnumId
    This interface hides enum implementation and enum constant id. In general case, it is not good to use Enum.name() as constant in database or in any formatted string, because after any refactoring, all existed database records should be modified as well.

    For serialization, the enum should override getId() to define a string value.

    For deserialization, the enum should contain exactly one static method with single String argument and either be annotated with JsonCreator annotation or has name parseId.

    Since:
    17.10.2021
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default java.lang.String getId()  
      java.lang.String name()  
      static <T extends java.lang.Enum<?> & EnumId>
      T
      parseId​(java.lang.Class<T> cls, java.lang.String id)  
      static <T extends java.lang.Enum<?> & EnumId>
      T
      parseId​(java.lang.Class<T> cls, java.lang.String id, T def)  
      static <T extends EnumId>
      T
      parseId​(T[] values, java.lang.String id, T def)  
      static <T extends java.lang.Enum<?> & EnumId>
      T
      parseIdOrName​(java.lang.Class<T> cls, java.lang.String idOrName)  
      static <T extends java.lang.Enum<?> & EnumId>
      T
      parseName​(java.lang.Class<T> cls, java.lang.String name)  
      static <T extends java.lang.Enum<?> & EnumId>
      T
      parseName​(java.lang.Class<T> cls, java.lang.String name, T def)  
      static <T extends EnumId>
      T
      parseName​(T[] values, java.lang.String name, T def)  
    • Method Detail

      • name

        java.lang.String name()
      • getId

        default java.lang.String getId()
      • parseName

        static <T extends java.lang.Enum<?> & EnumId> T parseName​(java.lang.Class<T> cls,
                                                                  java.lang.String name)
      • parseName

        static <T extends java.lang.Enum<?> & EnumId> T parseName​(java.lang.Class<T> cls,
                                                                  java.lang.String name,
                                                                  T def)
      • parseName

        static <T extends EnumId> T parseName​(T[] values,
                                              java.lang.String name,
                                              T def)
      • parseIdOrName

        static <T extends java.lang.Enum<?> & EnumId> T parseIdOrName​(java.lang.Class<T> cls,
                                                                      java.lang.String idOrName)
      • parseId

        static <T extends java.lang.Enum<?> & EnumId> T parseId​(java.lang.Class<T> cls,
                                                                java.lang.String id)
      • parseId

        static <T extends java.lang.Enum<?> & EnumId> T parseId​(java.lang.Class<T> cls,
                                                                java.lang.String id,
                                                                T def)
      • parseId

        static <T extends EnumId> T parseId​(T[] values,
                                            java.lang.String id,
                                            T def)