package com.googlecode.objectify.util; import com.googlecode.objectify.repackaged.gentyref.GenericTypeReflector; import java.lang.reflect.Type; import java.util.Collection; import java.util.Map; /** */ public class GenericUtils { private GenericUtils() { } /** * Get the component type of a Collection. */ public static Type getCollectionComponentType(Type collectionType) { Type componentType = GenericTypeReflector.getTypeParameter(collectionType, Collection.class.getTypeParameters()[0]); if (componentType == null) // if it was a raw type, just assume Object return Object.class; else return componentType; } /** * Get the key type of a Map. */ public static Type getMapKeyType(Type mapType) { Type componentType = GenericTypeReflector.getTypeParameter(mapType, Map.class.getTypeParameters()[0]); if (componentType == null) // if it was a raw type, just assume Object return Object.class; else return componentType; } /** * Get the value type of a Map. */ public static Type getMapValueType(Type mapType) { Type componentType = GenericTypeReflector.getTypeParameter(mapType, Map.class.getTypeParameters()[1]); if (componentType == null) // if it was a raw type, just assume Object return Object.class; else return componentType; } }