List of usage examples for com.google.common.reflect TypeToken getSupertype
public final TypeToken<? super T> getSupertype(Class<? super T> superclass)
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.");*/ }