package cn.citycraft.GsonAgent.nms.bind; import cn.citycraft.GsonAgent.nms.GsonHandle; import net.minecraft.util.com.google.gson.Gson; import net.minecraft.util.com.google.gson.TypeAdapter; import net.minecraft.util.com.google.gson.TypeAdapterFactory; import net.minecraft.util.com.google.gson.reflect.TypeToken; @SuppressWarnings({ "unchecked", "rawtypes" }) public class TypeAdapterFactoryHandle implements cn.citycraft.GsonAgent.api.TypeAdapterFactory, net.minecraft.util.com.google.gson.TypeAdapterFactory { private final TypeAdapterFactory handle; protected TypeAdapterFactoryHandle(final TypeAdapterFactory handle) { this.handle = handle; } @Override public TypeAdapterHandle create(final cn.citycraft.GsonAgent.api.Gson paramGson, final cn.citycraft.GsonAgent.api.reflect.TypeToken paramTypeToken) { return new TypeAdapterHandle(this.create(((GsonHandle) paramGson).getHandle(), (TypeToken) paramTypeToken.getHandle())); } @Override public TypeAdapter create(final Gson paramGson, final TypeToken paramTypeToken) { return this.getHandle().create(paramGson, paramTypeToken); } public TypeAdapterFactory getHandle() { return handle; } }