List of usage examples for com.google.gson.reflect TypeToken getType
public final Type getType()
From source file:org.jclouds.googlecloud.config.ListPageAdapterFactory.java
License:Apache License
@SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> ownerType) { Type type = ownerType.getType(); if (ownerType.getRawType() != ListPage.class || !(type instanceof ParameterizedType)) { return null; }//from w w w. j av a 2 s . co m Type elementType = ((ParameterizedType) type).getActualTypeArguments()[0]; TypeAdapter<?> itemAdapter = gson.getAdapter(TypeToken.get(elementType)); return (TypeAdapter<T>) new ListPageAdapter(itemAdapter); }
From source file:org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory.java
License:Apache License
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { com.google.common.reflect.TypeToken<T> token = typeToken(type.getType()); Invokable<T, T> deserializationTarget = constructorFieldNamingPolicy.getDeserializer(token); if (deserializationTarget == null) { return null; // allow GSON to choose the correct Adapter (can't simply return delegateFactory.create()) }/* w w w. j av a 2s.c o m*/ // @AutoValue is SOURCE retention, which means it cannot be looked up at runtime. // Assume abstract types built by static methods are AutoValue. if (Modifier.isAbstract(type.getRawType().getModifiers()) && deserializationTarget.isStatic()) { // Lookup the generated AutoValue class, whose fields must be read for serialization. String packageName = type.getRawType().getPackage().getName(); String autoClassName = type.getRawType().getName().replace('$', '_').replace(packageName + ".", packageName + ".AutoValue_"); try { type = (TypeToken<T>) TypeToken.get(Class.forName(autoClassName)); } catch (ClassNotFoundException ignored) { } } return new DeserializeIntoParameterizedConstructor<T>(delegateFactory.create(gson, type), deserializationTarget, getParameterReaders(gson, deserializationTarget)); }
From source file:org.jclouds.json.internal.IgnoreNullFluentIterableTypeAdapterFactory.java
License:Apache License
@SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { Type type = typeToken.getType(); if (typeToken.getRawType() != FluentIterable.class || !(type instanceof ParameterizedType)) { return null; }/*from w w w .j av a 2 s . c o m*/ Type elementType = ((ParameterizedType) type).getActualTypeArguments()[0]; TypeAdapter<?> elementAdapter = gson.getAdapter(TypeToken.get(elementType)); return (TypeAdapter<T>) newFluentIterableAdapter(elementAdapter); }
From source file:org.jclouds.json.internal.IgnoreNullIterableTypeAdapterFactory.java
License:Apache License
@SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { Type type = typeToken.getType(); if (typeToken.getRawType() != Iterable.class || !(type instanceof ParameterizedType)) { return null; }//w w w . ja va2 s . c om Type elementType = ((ParameterizedType) type).getActualTypeArguments()[0]; TypeAdapter<?> elementAdapter = gson.getAdapter(TypeToken.get(elementType)); return (TypeAdapter<T>) newIterableAdapter(elementAdapter); }
From source file:org.jclouds.json.internal.IgnoreNullMapTypeAdapterFactory.java
License:Apache License
@SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { Type type = typeToken.getType(); if (typeToken.getRawType() != Map.class || !(type instanceof ParameterizedType)) { return null; }//from www .j ava 2 s . co m Type keyType = ((ParameterizedType) type).getActualTypeArguments()[0]; Type valueType = ((ParameterizedType) type).getActualTypeArguments()[1]; TypeAdapter<?> keyAdapter = gson.getAdapter(TypeToken.get(keyType)); TypeAdapter<?> valueAdapter = gson.getAdapter(TypeToken.get(valueType)); return (TypeAdapter<T>) newMapAdapter(keyAdapter, valueAdapter); }
From source file:org.jclouds.json.internal.IgnoreNullMultimapTypeAdapterFactory.java
License:Apache License
@SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { Type type = typeToken.getType(); if ((typeToken.getRawType() != Multimap.class) || !(type instanceof ParameterizedType)) { return null; }//from w w w . j a v a 2 s. c om Type keyType = ((ParameterizedType) type).getActualTypeArguments()[0]; Type valueType = ((ParameterizedType) type).getActualTypeArguments()[1]; TypeAdapter<?> keyAdapter = gson.getAdapter(TypeToken.get(keyType)); TypeAdapter<?> valueAdapter = gson.getAdapter(TypeToken.get(valueType)); return (TypeAdapter<T>) newMapAdapter(keyAdapter, valueAdapter); }
From source file:org.jclouds.json.internal.IgnoreNullSetTypeAdapterFactory.java
License:Apache License
@SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { Type type = typeToken.getType(); if (typeToken.getRawType() != Set.class || !(type instanceof ParameterizedType)) { return null; }//from ww w .j a v a2s.c om Type elementType = ((ParameterizedType) type).getActualTypeArguments()[0]; TypeAdapter<?> elementAdapter = gson.getAdapter(TypeToken.get(elementType)); return (TypeAdapter<T>) newSetAdapter(elementAdapter); }
From source file:org.jclouds.json.internal.NullFilteringTypeAdapterFactories.java
License:Apache License
static <T> TypeToken<?> resolve(TypeToken<T> ownerType, Type param) { return TypeToken.get( com.google.gson.internal.$Gson$Types.resolve(ownerType.getType(), ownerType.getRawType(), param)); }
From source file:org.jclouds.json.internal.OptionalTypeAdapterFactory.java
License:Apache License
@SuppressWarnings("unchecked") @Override//w ww .j a v a 2 s.c o m public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { Type type = typeToken.getType(); if (typeToken.getRawType() != Optional.class || !(type instanceof ParameterizedType)) { return null; } Type elementType = ((ParameterizedType) type).getActualTypeArguments()[0]; TypeAdapter<?> elementAdapter = gson.getAdapter(TypeToken.get(elementType)); return (TypeAdapter<T>) newOptionalAdapter(elementAdapter); }
From source file:org.microbule.util.jaxrs.WebTargetUtils.java
License:Apache License
public static <T> Optional<T> parseJsonResponse(Response response, TypeToken<T> token) { if (Response.Status.OK.getStatusCode() == response.getStatus()) { return Optional.of(GSON.fromJson(response.readEntity(String.class), token.getType())); }// w w w . j a v a2 s .co m return Optional.empty(); }