package chbachman.armour.util.json; import java.lang.reflect.Type; import chbachman.api.registry.UpgradeRegistry; import chbachman.api.upgrade.IUpgrade; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonParseException; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; public class CustomIUpgradeJson implements JsonDeserializer<IUpgrade>, JsonSerializer<IUpgrade> { @Override public JsonElement serialize(IUpgrade src, Type typeOfSrc, JsonSerializationContext context) { return new JsonPrimitive(src.getBaseName()); } @Override public IUpgrade deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { return UpgradeRegistry.getUpgrade(json.getAsString()); } }