package lol.pyr.znpcsplus.entity; import java.lang.reflect.InvocationTargetException; public class PrimitivePropertySerializer implements PropertySerializer { private final Class clazz; public PrimitivePropertySerializer(Class clazz) { this.clazz = clazz; } @Override public String serialize(T property) { return String.valueOf(property); } @Override public T deserialize(String property) { try { return clazz.getConstructor(String.class).newInstance(property); } catch (InvocationTargetException | InstantiationException | IllegalAccessException | NoSuchMethodException e) { throw new NullPointerException("Failed to deserialize property " + property + " of type " + clazz.getName() + "!"); } } @Override public Class getTypeClass() { return clazz; } }