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

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

Introduction

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

Prototype

public final Type getType() 

Source Link

Document

Gets underlying Type instance.

Usage

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