Class GuavaGenericsResolver

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Class asClass​(java.lang.reflect.Type actualType)
      Get the class represented by the reflected type.
      java.lang.reflect.Type extractActualType​(java.lang.reflect.Type containingType, java.lang.reflect.Field field)
      Analyzes the method in the context of containingClass and returns the Class that is represented by the method's generic return type.
      java.lang.reflect.Type extractActualType​(java.lang.reflect.Type containingType, java.lang.reflect.Method method)
      Analyzes the method in the context of containingClass and returns the Class that is represented by the method's generic return type.
      java.lang.Class extractGenericFieldType​(java.lang.Class containingClass, java.lang.reflect.Field field)
      Analyzes the field in the context of containingClass and returns the Class that is represented by the field's generic type.
      java.lang.Class<?> extractGenericReturnType​(java.lang.Class<?> containingClass, java.lang.reflect.Method method)
      Analyzes the method in the context of containingClass and returns the Class that is represented by the method's generic return type.
      java.lang.reflect.Type resolve​(java.lang.reflect.Type type, java.lang.reflect.Type containingType)
      Resolves the type parameter based on the context of the containingType.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • extractActualType

        public java.lang.reflect.Type extractActualType​(java.lang.reflect.Type containingType,
                                                        java.lang.reflect.Method method)
        Description copied from interface: GenericsResolver
        Analyzes the method in the context of containingClass and returns the Class that is represented by the method's generic return type. Any parameter information in the generic return type is lost.
        Specified by:
        extractActualType in interface GenericsResolver
        Parameters:
        containingType - Type which is/represents the class that either contains or inherited the method
        method - method from which to extract the generic return type
        Returns:
        the generic type represented by the methods generic return type, resolved based on the containingType.
        See Also:
        GenericsResolver.resolve(java.lang.reflect.Type,java.lang.reflect.Type)
      • extractActualType

        public java.lang.reflect.Type extractActualType​(java.lang.reflect.Type containingType,
                                                        java.lang.reflect.Field field)
        Description copied from interface: GenericsResolver
        Analyzes the method in the context of containingClass and returns the Class that is represented by the method's generic return type. Any parameter information in the generic return type is lost.
        Specified by:
        extractActualType in interface GenericsResolver
        Parameters:
        containingType - Type which is/represents the class that either contains or inherited the field
        field - field from which to extract the generic return type
        Returns:
        the generic type represented by the methods generic return type, resolved based on the containingType.
        See Also:
        GenericsResolver.resolve(java.lang.reflect.Type,java.lang.reflect.Type)
      • resolve

        public java.lang.reflect.Type resolve​(java.lang.reflect.Type type,
                                              java.lang.reflect.Type containingType)
        Description copied from interface: GenericsResolver
        Resolves the type parameter based on the context of the containingType. TypeVariable will be unwrapped to the type argument resolved form the class hierarchy. This may be something other than a simple Class if the type argument is a ParameterizedType for instance (e.g. List<E>; List<Map<Long, String>>, E would be returned as a ParameterizedType with the raw type Map and type arguments Long and String.
        Specified by:
        resolve in interface GenericsResolver
        Parameters:
        type - the generic type (ParameterizedType, GenericArrayType, WildcardType, TypeVariable) to be resolved
        containingType - the type which his
        Returns:
        the type resolved to the best of our ability.
      • asClass

        public java.lang.Class asClass​(java.lang.reflect.Type actualType)
        Description copied from interface: GenericsResolver
        Get the class represented by the reflected type. This method is lossy; You cannot recover the type information from the class that is returned. TypeVariable the first bound is returned. If your type variable extends multiple interfaces that information is lost. WildcardType the first lower bound is returned. If the wildcard is defined with upper bounds then Object is returned.
        Specified by:
        asClass in interface GenericsResolver
        Parameters:
        actualType - a Class, ParameterizedType, GenericArrayType
        Returns:
        the un-parameterized class associated with the type.