34 lines
1.1 KiB
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;
|
|
}
|
|
|
|
}
|