Package ru.olegcherednik.gson.utils
Interface EnumId
-
public interface EnumId
This interface hides enum implementation and enum constant id. In general case, it is not good to useEnum.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 withJsonCreator
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>
TparseId(java.lang.Class<T> cls, java.lang.String id)
static <T extends java.lang.Enum<?> & EnumId>
TparseId(java.lang.Class<T> cls, java.lang.String id, T def)
static <T extends EnumId>
TparseId(T[] values, java.lang.String id, T def)
static <T extends java.lang.Enum<?> & EnumId>
TparseIdOrName(java.lang.Class<T> cls, java.lang.String idOrName)
static <T extends java.lang.Enum<?> & EnumId>
TparseName(java.lang.Class<T> cls, java.lang.String name)
static <T extends java.lang.Enum<?> & EnumId>
TparseName(java.lang.Class<T> cls, java.lang.String name, T def)
static <T extends EnumId>
TparseName(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)
-
-