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

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

Introduction

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

Prototype

public final Class<? super T> getRawType() 

Source Link

Document

Returns the raw type of T .

Usage

From source file:io.appform.nautilus.funnel.utils.TypeUtils.java

public static <T> String typeName(TypeToken<T> type) {
    return type.getRawType().getSimpleName().toLowerCase();
}

From source file:org.jclouds.util.Optionals2.java

public static Class<?> unwrapIfOptional(TypeToken<?> type) {
    if (type.getRawType().isAssignableFrom(Optional.class)) {
        ParameterizedType futureType = ParameterizedType.class.cast(type.getType());
        // TODO: error checking in case this is a type, not a class.
        Type t = futureType.getActualTypeArguments()[0];
        if (t instanceof WildcardType) {
            t = ((WildcardType) t).getUpperBounds()[0];
        }// w  w w  .  ja v a 2 s  . c  o m
        return Class.class.cast(t);
    }
    return type.getRawType();
}

From source file:brooklyn.util.guava.TypeTokens.java

/** gets the Class<T> object from a token; normal methods return Class<? super T> which may technically be correct 
 * with generics but this sloppily but handily gives you Class<T> which is usually what you have anyway */
@SuppressWarnings({ "rawtypes", "unchecked" })
public static <T> Class<T> getRawRawType(TypeToken<T> token) {
    return (Class) token.getRawType();
}

From source file:ratpack.handling.internal.Extractions.java

public static void extract(List<TypeToken<?>> types, Registry registry, Object[] services, int startIndex) {
    for (int i = 0; i < types.size(); ++i) {
        TypeToken<?> type = types.get(i);
        if (type.getRawType().equals(Optional.class)) {
            TypeToken<?> paramType;
            try {
                paramType = type.resolveType(Optional.class.getMethod("get").getGenericReturnType());
            } catch (NoSuchMethodException e) {
                throw new InternalError("Optional class does not have get method");
            }//from   w w w .j av  a  2  s . c om
            Object optional = registry.maybeGet(paramType);
            services[i + startIndex] = optional;

        } else {
            Object service = registry.get(type);
            services[i + startIndex] = service;
        }

    }
}

From source file:org.zalando.switchboard.TypeResolver.java

static <T> Class<T> resolve(final Object instance, final Class<?> type, final int index) {
    final TypeToken<?> token = TypeToken.of(instance.getClass());
    final TypeToken<?> resolved = token.resolveType(type.getTypeParameters()[index]);
    return cast(resolved.getRawType());
}

From source file:com.datastax.driver.core.SanityChecks.java

/**
 * Detects if a version of guava older than 16.01 is present by attempting to create
 * a {@link TypeToken} instance for <code>Map&lt;String,String&gt;</code> and ensures that the
 * value type argument is of instance {@link String}.  If using an older version of guava
 * this will resolve to {@link Object} instead.  In this case an {@link IllegalStateException}
 * is thrown./* ww  w  . j av  a2s  .c  om*/
 *
 * @throws IllegalStateException if version of guava less than 16.01 is detected.
 */
static void checkGuava() {
    boolean resolved = false;
    TypeToken<Map<String, String>> mapOfString = TypeTokens.mapOf(String.class, String.class);
    Type type = mapOfString.getType();
    if (type instanceof ParameterizedType) {
        ParameterizedType pType = (ParameterizedType) type;
        Type[] types = pType.getActualTypeArguments();
        if (types.length == 2) {
            TypeToken valueType = TypeToken.of(types[1]);
            resolved = valueType.getRawType().equals(String.class);
        }
    }

    if (!resolved) {
        throw new IllegalStateException(
                "Detected Guava issue #1635 which indicates that a version of Guava less than 16.01 is in use.  "
                        + "This introduces codec resolution issues and potentially other incompatibility issues in the driver.  "
                        + "Please upgrade to Guava 16.01 or later.");
    }
}

From source file:brooklyn.util.guava.TypeTokens.java

/** returns null if it's raw, else the type token */
@Nullable/*w  ww  .j  av  a 2 s.c  o m*/
public static <T> TypeToken<T> getTypeTokenIfNotRaw(@Nullable TypeToken<T> type) {
    if (type == null || type.equals(TypeToken.of(type.getRawType()))) {
        return null;
    } else {
        return type;
    }
}

From source file:brooklyn.util.guava.TypeTokens.java

/** returns raw type, if it's raw, else null;
 * used e.g. to set only one of the raw type or the type token,
 * for instance to make serialized output nicer */
@Nullable//from  w  ww.j a v a 2s  .  c  om
public static <T> Class<? super T> getRawTypeIfRaw(@Nullable TypeToken<T> type) {
    if (type == null || !type.equals(TypeToken.of(type.getRawType()))) {
        return null;
    } else {
        return type.getRawType();
    }
}

From source file:edu.washington.cs.cupid.wizards.internal.TypeSelection.java

public static List<Class<?>> getSuperTypes(TypeToken<?> type) {
    List<Class<?>> result = Lists.newArrayList();

    Class<?> clazz = type.getRawType();
    while (clazz != null) {
        result.add(clazz);//from w  w  w.  j a  v a 2s.c o  m
        for (Class<?> i : clazz.getInterfaces()) {
            if (!result.contains(i)) {
                result.add(i);
            }
        }
        clazz = clazz.getSuperclass();
    }
    return result;
}

From source file:me.yanaga.winter.data.jpa.metadata.RepositoryMetadata.java

public static RepositoryMetadata of(Class<? extends Repository> repositoryClass) {
    checkNotNull(repositoryClass);// w  w  w . j  av  a  2 s  . c  o m
    checkArgument(Repository.class.isAssignableFrom(repositoryClass));
    TypeToken<? extends Repository> typeToken = TypeToken.of(repositoryClass);
    Type[] genericInterfaces = typeToken.getRawType().getGenericInterfaces();
    if (genericInterfaces[0] instanceof ParameterizedType) {
        Type[] actualTypeArguments = ((ParameterizedType) genericInterfaces[0]).getActualTypeArguments();
        Class<?> entityClass = (Class<?>) actualTypeArguments[0];
        Class<? extends Serializable> idClass = (Class<? extends Serializable>) actualTypeArguments[1];
        return new RepositoryMetadata(entityClass, idClass);
    }
    throw new IllegalArgumentException("Unable to determinate entityClass or idClass.");
}