GsonAgent/src/main/java/cn/citycraft/GsonAgent/normal/bind/TypeAdapterFactoryHandle.java

34 lines
1.1 KiB
Java

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