List of usage examples for com.google.gson.reflect TypeToken get
public static <T> TypeToken<T> get(Class<T> type)
From source file:org.immutables.gson.adapter.Types.java
License:Apache License
@SuppressWarnings("unchecked") // safe unchecked: could be safe only if used in the manner from generated code public static <T> TypeToken<T> tokenFor(Class<?> sampleType, String fieldName, Type[] arguments, String... variables) {// ww w . j a v a 2 s .c om try { Type typeWithVariables = sampleType.getField(fieldName).getGenericType(); Type typeWithArguments = substituteVariables(typeWithVariables, arguments, variables); return (TypeToken<T>) TypeToken.get(typeWithArguments); } catch (Exception ex) { throw new AssertionError("Cannot get generic type for " + sampleType.getSimpleName() + "." + fieldName, ex); } }
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; }/*w w w . j a v 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()) }/*from w ww. j a va 2 s. c om*/ // @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.DeserializationConstructorAndReflectiveTypeAdapterFactory.java
License:Apache License
private <T> Map<String, ParameterReader<?>> getParameterReaders(Gson context, Invokable<T, T> deserializationCtor) { Builder<String, ParameterReader<?>> result = ImmutableMap.builder(); for (Parameter param : deserializationCtor.getParameters()) { TypeAdapter<?> adapter = context.getAdapter(TypeToken.get(param.getType().getType())); String parameterName = constructorFieldNamingPolicy.translateName(deserializationCtor, param.hashCode());//from w ww .ja v a 2s. c o m checkArgument(parameterName != null, deserializationCtor + " parameter " + 0 + " failed to be named by " + constructorFieldNamingPolicy); @SuppressWarnings({ "rawtypes", "unchecked" }) ParameterReader<?> parameterReader = new ParameterReader(param.hashCode(), parameterName, adapter); result.put(parameterReader.name, parameterReader); } return result.build(); }
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; }//w ww . ja v a2 s. c om 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; }/*from www. j a va 2 s . co m*/ 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 w ww. j a v a 2 s. c o 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; }/* w ww . j a v a 2s. 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.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 www . ja v a2 s. co m 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)); }