/** * */ package cn.citycraft.GsonAgent.nms; import java.io.Reader; import java.lang.reflect.Type; import cn.citycraft.GsonAgent.api.Gson; import cn.citycraft.GsonAgent.api.exception.JsonIOException; import cn.citycraft.GsonAgent.api.exception.JsonSyntaxException; import cn.citycraft.GsonAgent.nms.bind.TypeAdapterFactoryHandle; import cn.citycraft.GsonAgent.nms.bind.TypeAdapterHandle; import cn.citycraft.GsonAgent.nms.stream.JsonReaderHandle; import cn.citycraft.GsonAgent.nms.stream.JsonWriterHandle; /** * 老版本Gson代理类 * * @since 2016年1月5日 下午12:57:20 * @author 喵♂呜 */ @SuppressWarnings({ "unchecked", "rawtypes" }) public class GsonHandle implements Gson { private final net.minecraft.util.com.google.gson.Gson handle; public GsonHandle() { handle = new net.minecraft.util.com.google.gson.Gson(); } @Override public T fromJson(final cn.citycraft.GsonAgent.api.JsonElement json, final Class classOfT) throws JsonSyntaxException { return getHandle().fromJson(((JsonElementHandle) json).getHandle(), classOfT); } @Override public T fromJson(final cn.citycraft.GsonAgent.api.JsonElement json, final Type typeOfT) throws JsonSyntaxException { return getHandle().fromJson(((JsonElementHandle) json).getHandle(), typeOfT); } @Override public T fromJson(final cn.citycraft.GsonAgent.api.stream.JsonReader reader, final Type typeOfT) throws JsonIOException, JsonSyntaxException { return getHandle().fromJson(((JsonReaderHandle) reader).getHandle(), typeOfT); } @Override public T fromJson(final Reader json, final Class classOfT) throws JsonSyntaxException, JsonIOException { return getHandle().fromJson(json, classOfT); } @Override public T fromJson(final Reader json, final Type typeOfT) throws JsonIOException, JsonSyntaxException { return getHandle().fromJson(json, typeOfT); } @Override public T fromJson(final String json, final Class classOfT) throws JsonSyntaxException { return getHandle().fromJson(json, classOfT); } @Override public T fromJson(final String json, final Type typeOfT) throws JsonSyntaxException { return getHandle().fromJson(json, typeOfT); } @Override public TypeAdapterHandle getAdapter(final Class type) { return new TypeAdapterHandle(getHandle().getAdapter(type)); } @Override public TypeAdapterHandle getAdapter(final cn.citycraft.GsonAgent.api.reflect.TypeToken type) { return new TypeAdapterHandle(getHandle().getAdapter((net.minecraft.util.com.google.gson.reflect.TypeToken) type.getHandle())); } @Override public TypeAdapterHandle getDelegateAdapter(final cn.citycraft.GsonAgent.api.TypeAdapterFactory skipPast, final cn.citycraft.GsonAgent.api.reflect.TypeToken type) { return new TypeAdapterHandle(getHandle().getDelegateAdapter(((TypeAdapterFactoryHandle) skipPast).getHandle(), (net.minecraft.util.com.google.gson.reflect.TypeToken) type.getHandle())); } public net.minecraft.util.com.google.gson.Gson getHandle() { return handle; } @Override public String toJson(final cn.citycraft.GsonAgent.api.JsonElement jsonElement) { return getHandle().toJson(((JsonElementHandle) jsonElement).getHandle()); } @Override public void toJson(final cn.citycraft.GsonAgent.api.JsonElement jsonElement, final Appendable writer) throws JsonIOException { getHandle().toJson(((JsonElementHandle) jsonElement).getHandle(), writer); } @Override public void toJson(final cn.citycraft.GsonAgent.api.JsonElement jsonElement, final cn.citycraft.GsonAgent.api.stream.JsonWriter writer) throws JsonIOException { getHandle().toJson(((JsonElementHandle) jsonElement).getHandle(), ((JsonWriterHandle) writer).getHandle()); } @Override public String toJson(final Object src) { return getHandle().toJson(src); } @Override public void toJson(final Object src, final Appendable writer) throws JsonIOException { getHandle().toJson(src, writer); } @Override public String toJson(final Object src, final Type typeOfSrc) { return getHandle().toJson(src, typeOfSrc); } @Override public void toJson(final Object src, final Type typeOfSrc, final Appendable writer) throws JsonIOException { getHandle().toJson(src, typeOfSrc, writer); } @Override public void toJson(final Object src, final Type typeOfSrc, final cn.citycraft.GsonAgent.api.stream.JsonWriter writer) throws JsonIOException { getHandle().toJson(src, typeOfSrc, ((JsonWriterHandle) writer).getHandle()); } @Override public JsonElementHandle toJsonTree(final Object src) { return new JsonElementHandle(getHandle().toJsonTree(src)); } @Override public JsonElementHandle toJsonTree(final Object src, final Type typeOfSrc) { return new JsonElementHandle(getHandle().toJsonTree(src, typeOfSrc)); } }