136 lines
4.8 KiB
Java
136 lines
4.8 KiB
Java
/**
|
|
*
|
|
*/
|
|
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> T fromJson(final cn.citycraft.GsonAgent.api.JsonElement json, final Class<T> classOfT) throws JsonSyntaxException {
|
|
return getHandle().fromJson(((JsonElementHandle) json).getHandle(), classOfT);
|
|
}
|
|
|
|
@Override
|
|
public <T> T fromJson(final cn.citycraft.GsonAgent.api.JsonElement json, final Type typeOfT) throws JsonSyntaxException {
|
|
return getHandle().fromJson(((JsonElementHandle) json).getHandle(), typeOfT);
|
|
}
|
|
|
|
@Override
|
|
public <T> 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> T fromJson(final Reader json, final Class<T> classOfT) throws JsonSyntaxException, JsonIOException {
|
|
return getHandle().fromJson(json, classOfT);
|
|
}
|
|
|
|
@Override
|
|
public <T> T fromJson(final Reader json, final Type typeOfT) throws JsonIOException, JsonSyntaxException {
|
|
return getHandle().fromJson(json, typeOfT);
|
|
}
|
|
|
|
@Override
|
|
public <T> T fromJson(final String json, final Class<T> classOfT) throws JsonSyntaxException {
|
|
return getHandle().fromJson(json, classOfT);
|
|
}
|
|
|
|
@Override
|
|
public <T> T fromJson(final String json, final Type typeOfT) throws JsonSyntaxException {
|
|
return getHandle().fromJson(json, typeOfT);
|
|
}
|
|
|
|
@Override
|
|
public <T> TypeAdapterHandle<T> getAdapter(final Class<T> type) {
|
|
return new TypeAdapterHandle(getHandle().getAdapter(type));
|
|
}
|
|
|
|
@Override
|
|
public <T> TypeAdapterHandle<T> getAdapter(final cn.citycraft.GsonAgent.api.reflect.TypeToken<T> type) {
|
|
return new TypeAdapterHandle(getHandle().getAdapter((net.minecraft.util.com.google.gson.reflect.TypeToken<T>) type.getHandle()));
|
|
}
|
|
|
|
@Override
|
|
public <T> TypeAdapterHandle<T> getDelegateAdapter(final cn.citycraft.GsonAgent.api.TypeAdapterFactory skipPast, final cn.citycraft.GsonAgent.api.reflect.TypeToken<T> type) {
|
|
return new TypeAdapterHandle(getHandle().getDelegateAdapter(((TypeAdapterFactoryHandle) skipPast).getHandle(), (net.minecraft.util.com.google.gson.reflect.TypeToken<T>) 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));
|
|
}
|
|
|
|
}
|