Example usage for com.google.common.reflect TypeToken getSupertype

List of usage examples for com.google.common.reflect TypeToken getSupertype

Introduction

In this page you can find the example usage for com.google.common.reflect TypeToken getSupertype.

Prototype

public final TypeToken<? super T> getSupertype(Class<? super T> superclass) 

Source Link

Document

Returns the generic form of superclass .

Usage

From source file:com.google.caliper.json.ImmutableMultimapTypeAdapterFactory.java

private static <K, V> TypeToken<Map<K, Set<V>>> getMapOfSetsToken(TypeToken<SetMultimap<K, V>> from) {
    ParameterizedType rawType = (ParameterizedType) from.getSupertype(SetMultimap.class).getType();
    @SuppressWarnings("unchecked") // key type is K
    TypeToken<K> keyType = (TypeToken<K>) TypeToken.of(rawType.getActualTypeArguments()[0]);
    @SuppressWarnings("unchecked") // value type is V
    TypeToken<V> valueType = (TypeToken<V>) TypeToken.of(rawType.getActualTypeArguments()[1]);
    return new TypeToken<Map<K, Set<V>>>() {
    }.where(new TypeParameter<K>() {
    }, keyType).where(new TypeParameter<V>() {
    }, valueType);// w  w  w .  j a v a 2s  .  co  m
}

From source file:com.google.caliper.json.ImmutableMultimapTypeAdapterFactory.java

private static <K, V> TypeToken<Map<K, List<V>>> getMapOfListsToken(TypeToken<ListMultimap<K, V>> from) {
    ParameterizedType rawType = (ParameterizedType) from.getSupertype(ListMultimap.class).getType();
    @SuppressWarnings("unchecked") // key type is K
    TypeToken<K> keyType = (TypeToken<K>) TypeToken.of(rawType.getActualTypeArguments()[0]);
    @SuppressWarnings("unchecked") // value type is V
    TypeToken<V> valueType = (TypeToken<V>) TypeToken.of(rawType.getActualTypeArguments()[1]);
    return new TypeToken<Map<K, List<V>>>() {
    }.where(new TypeParameter<K>() {
    }, keyType).where(new TypeParameter<V>() {
    }, valueType);//from  ww w .ja v  a2s . com
}

From source file:org.gradle.api.internal.tasks.properties.PropertyValidationAccess.java

private static <T> TypeToken<?> extractNestedType(TypeToken<T> beanType,
        Class<? super T> parameterizedSuperClass, int typeParameterIndex) {
    ParameterizedType type = (ParameterizedType) beanType.getSupertype(parameterizedSuperClass).getType();
    return TypeToken.of(type.getActualTypeArguments()[typeParameterIndex]);
}

From source file:org.shaf.core.process.handle.job.GenericConfig.java

/**
 * Returns the type, which represents the {@link DistributedProcess}
 * interface, implemented by the specified process class.
 * /*from ww  w . ja  va 2s.c o  m*/
 * @param pcls
 *            the process class which interface needs to be identified.
 * @return the identified interface.
 * @throws JobConfigException
 *             if the {@link DistributedProcess} interface is not
 *             identified.
 */
private final Type getDistributedProcessInterface(
        final Class<? extends DistributedProcess<?, ?, ?, ?, ?, ?>> pcls) throws JobConfigException {
    TypeToken<? extends DistributedProcess<?, ?, ?, ?, ?, ?>> token = TypeToken.of(pcls);
    return token.getSupertype(DistributedProcess.class).getType();
    /*
    Type[] types = pcls.getGenericInterfaces();
    for (Type type : types) {
            
       if (type instanceof ParameterizedType) {
    if (((ParameterizedType) type).getRawType() == DistributedProcess.class) {
       return type;
    }
       }
    }
    throw new JobConfigException(
    "The DistributedProcess interface is not identified.");*/
}