2023-06-26 05:55:28 +00:00
|
|
|
package lol.pyr.znpcsplus.entity;
|
|
|
|
|
|
|
|
public class EnumPropertySerializer<T extends Enum<T>> implements PropertySerializer<T> {
|
|
|
|
|
|
|
|
private final Class<T> enumClass;
|
|
|
|
|
|
|
|
public EnumPropertySerializer(Class<T> enumClass) {
|
|
|
|
this.enumClass = enumClass;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String serialize(T property) {
|
|
|
|
return property.name();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public T deserialize(String property) {
|
2023-09-12 17:23:58 +00:00
|
|
|
try {
|
|
|
|
return Enum.valueOf(enumClass, property.toUpperCase());
|
|
|
|
} catch (IllegalArgumentException e) {
|
|
|
|
return null;
|
|
|
|
}
|
2023-06-26 05:55:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Class<T> getTypeClass() {
|
|
|
|
return enumClass;
|
|
|
|
}
|
|
|
|
}
|