Class GenericsUtil
- java.lang.Object
-
- org.apache.camel.maven.packaging.generics.GenericsUtil
-
public final class GenericsUtil extends Object
Utility classes for generic type operations.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
containsTypeVariable(Type type)
static boolean
containsWildcardType(Type type)
static boolean
containTypeVariable(Type[] types)
static boolean
containTypeVariable(Collection<? extends Type> types)
static Set<Type>
getDirectTypeClosure(Type type, Type actualType)
static ParameterizedType
getParameterizedType(Type type)
static <T> Class<T>
getRawType(Type type)
static Set<Type>
getTypeClosure(Class<?> type)
static Set<Type>
getTypeClosure(Type actualType)
static Set<Type>
getTypeClosure(Type type, Type actualType)
Returns the type closure for the specified parameters.static boolean
hasTypeParameters(Type type)
static boolean
isAssignableFrom(boolean isDelegateOrEvent, boolean isProducer, Type requiredType, Type beanType)
5.2.3 and 5.2.4static Type[]
resolveParameterTypes(Class<?> subclass, Constructor<?> constructor)
Resolves the actual parameter generics of the specified constructor for the type hierarchy specified by the given subclassstatic Type[]
resolveParameterTypes(Class<?> subclass, Method method)
Resolves the actual parameter generics of the specified method for the type hierarchy specified by the given subclassstatic Type
resolveReturnType(Class<?> subclass, Method method)
Resolves the actual return type of the specified method for the type hierarchy specified by the given subclassstatic Type
resolveType(Class<?> subclass, Field field)
Resolves the actual type of the specified field for the type hierarchy specified by the given subclassstatic Type
resolveType(ParameterizedType parameterizedType, Type metadataType)
static Type
resolveType(Type type, Class<?> subclass, Member member)
Resolves the actual type of the specified type for the type hierarchy specified by the given subclassstatic Type
resolveType(Type type, Class<?> subclass, Member member, Collection<TypeVariable<?>> seen)
static Type
resolveType(Type type, Type actualType, Collection<TypeVariable<?>> seen)
static Type[]
resolveTypes(Type[] types, Type actualType)
static Type[]
resolveTypes(Type[] types, Type actualType, Collection<TypeVariable<?>> seen)
static boolean
satisfiesDependency(boolean isDelegateOrEvent, boolean isProducer, Type injectionPointType, Type beanType)
static boolean
satisfiesDependencyRaw(boolean isDelegateOrEvent, boolean isProducer, Type injectionPointType, Type beanType)
-
-
-
Method Detail
-
satisfiesDependency
public static boolean satisfiesDependency(boolean isDelegateOrEvent, boolean isProducer, Type injectionPointType, Type beanType)
-
satisfiesDependencyRaw
public static boolean satisfiesDependencyRaw(boolean isDelegateOrEvent, boolean isProducer, Type injectionPointType, Type beanType)
-
isAssignableFrom
public static boolean isAssignableFrom(boolean isDelegateOrEvent, boolean isProducer, Type requiredType, Type beanType)
5.2.3 and 5.2.4
-
containsTypeVariable
public static boolean containsTypeVariable(Type type)
- Returns:
- true, if the specified type declaration contains an unresolved type variable.
-
containTypeVariable
public static boolean containTypeVariable(Collection<? extends Type> types)
-
containTypeVariable
public static boolean containTypeVariable(Type[] types)
-
containsWildcardType
public static boolean containsWildcardType(Type type)
- Parameters:
type
- to check- Returns:
true
if the given type contains aWildcardType
false
otherwise
-
resolveType
public static Type resolveType(Class<?> subclass, Field field)
Resolves the actual type of the specified field for the type hierarchy specified by the given subclass
-
resolveReturnType
public static Type resolveReturnType(Class<?> subclass, Method method)
Resolves the actual return type of the specified method for the type hierarchy specified by the given subclass
-
resolveParameterTypes
public static Type[] resolveParameterTypes(Class<?> subclass, Constructor<?> constructor)
Resolves the actual parameter generics of the specified constructor for the type hierarchy specified by the given subclass
-
resolveParameterTypes
public static Type[] resolveParameterTypes(Class<?> subclass, Method method)
Resolves the actual parameter generics of the specified method for the type hierarchy specified by the given subclass
-
resolveType
public static Type resolveType(Type type, Class<?> subclass, Member member)
Resolves the actual type of the specified type for the type hierarchy specified by the given subclass
-
resolveType
public static Type resolveType(Type type, Class<?> subclass, Member member, Collection<TypeVariable<?>> seen)
-
resolveType
public static Type resolveType(Type type, Type actualType, Collection<TypeVariable<?>> seen)
-
resolveTypes
public static Type[] resolveTypes(Type[] types, Type actualType, Collection<TypeVariable<?>> seen)
-
getTypeClosure
public static Set<Type> getTypeClosure(Type type, Type actualType)
Returns the type closure for the specified parameters.Example 1:
Take the following classes:
public class Foo
{ private T t; } public class Bar extends Foo { } To get the type closure of T in the context of Bar (which is {Number.class, Object.class}), you have to call this method like
GenericUtil.getTypeClosure(Foo.class.getDeclaredField("t").getType(), Bar.class, Foo.class);
Example 2:
Take the following classes:
public class Foo
{ private T t; } public class Bar extends Foo { } To get the type closure of Bar
in the context of Foo (which are besides Object.class the ParameterizedTypes Bar and Foo ), you have to call this method like GenericUtil.getTypeClosure(Foo.class, new TypeLiteral
>() {}.getType(), Bar.class); - Parameters:
type
- the type to get the closure foractualType
- the context to bind type variables- Returns:
- the type closure
-
hasTypeParameters
public static boolean hasTypeParameters(Type type)
-
getParameterizedType
public static ParameterizedType getParameterizedType(Type type)
-
resolveType
public static Type resolveType(ParameterizedType parameterizedType, Type metadataType)
-
-