Example usage for com.google.gson.reflect TypeToken get

List of usage examples for com.google.gson.reflect TypeToken get

Introduction

In this page you can find the example usage for com.google.gson.reflect TypeToken get.

Prototype

public static <T> TypeToken<T> get(Class<T> type) 

Source Link

Document

Gets type literal for the given Class instance.

Usage

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));
}