public class GenericsUtils extends Object
| Modifier and Type | Field and Description |
|---|---|
static GenericsType[] |
EMPTY_GENERICS_ARRAY |
| Constructor and Description |
|---|
GenericsUtils() |
| Modifier and Type | Method and Description |
|---|---|
static GenericsType[] |
alignGenericTypes(GenericsType[] redirectGenericTypes,
GenericsType[] parameterizedTypes,
GenericsType[] alignmentTarget)
Deprecated.
You shouldn't call this method because it is inherently unreliable
|
static GenericsType |
buildWildcardType(ClassNode... types)
Generates a wildcard generic type in order to be used for checks against class nodes.
|
static ClassNode |
correctToGenericsSpec(Map genericsSpec,
ClassNode type) |
static ClassNode |
correctToGenericsSpec(Map genericsSpec,
GenericsType type) |
static MethodNode |
correctToGenericsSpec(Map genericsSpec,
MethodNode mn) |
static ClassNode |
correctToGenericsSpecRecurse(Map genericsSpec,
ClassNode type) |
static Map |
createGenericsSpec(ClassNode current,
Map oldSpec) |
static Map<String,GenericsType> |
extractPlaceholders(ClassNode cn) |
static void |
extractPlaceholders(ClassNode node,
Map<String,GenericsType> map)
For a given classnode, fills in the supplied map with the parameterized
types it defines.
|
static ClassNode |
makeClassSafe(Class klass) |
static ClassNode |
makeClassSafe0(ClassNode type,
GenericsType... genericTypes) |
static ClassNode |
makeClassSafeWithGenerics(ClassNode type,
GenericsType... genericTypes) |
static ClassNode |
newClass(ClassNode type) |
static ClassNode |
nonGeneric(ClassNode type) |
static ClassNode |
parameterizeInterfaceGenerics(ClassNode hint,
ClassNode target)
Deprecated.
Use #parameterizeType instead
|
static ClassNode |
parameterizeType(ClassNode hint,
ClassNode target)
Interface class nodes retrieved from
ClassNode.getInterfaces()
or ClassNode.getAllInterfaces() are returned with generic type
arguments. |
public static final GenericsType[] EMPTY_GENERICS_ARRAY
@Deprecated public static GenericsType[] alignGenericTypes(GenericsType[] redirectGenericTypes, GenericsType[] parameterizedTypes, GenericsType[] alignmentTarget)
<T,U,V>(redirectGenericTypes), is used with actual type parameters
<java.lang.String, U,V>, then a class or interface using generic types
<T,V>will be aligned to
<java.lang.String,V>
redirectGenericTypes - the type arguments or the redirect class nodeparameterizedTypes - the actual type arguments used on this class nodealignmentTarget - the generic type arguments to which we want to align topublic static GenericsType buildWildcardType(ClassNode... types)
GenericsType.isCompatibleWith(org.codehaus.groovy.ast.ClassNode).types - the type to be used as the wildcard upper boundpublic static Map<String,GenericsType> extractPlaceholders(ClassNode cn)
public static void extractPlaceholders(ClassNode node, Map<String,GenericsType> map)
node - map - public static ClassNode parameterizeInterfaceGenerics(ClassNode hint, ClassNode target)
ClassNode.getInterfaces()
or ClassNode.getAllInterfaces() are returned with generic type
arguments. This method allows returning a parameterized interface given the parameterized class
node which implements this interface.hint - the class node where generics types are parameterizedtarget - the interface we want to parameterize generics typespublic static ClassNode parameterizeType(ClassNode hint, ClassNode target)
ClassNode.getInterfaces()
or ClassNode.getAllInterfaces() are returned with generic type
arguments. This method allows returning a parameterized interface given the parameterized class
node which implements this interface.hint - the class node where generics types are parameterizedtarget - the interface we want to parameterize generics typespublic static ClassNode makeClassSafe0(ClassNode type, GenericsType... genericTypes)
public static ClassNode makeClassSafeWithGenerics(ClassNode type, GenericsType... genericTypes)
public static MethodNode correctToGenericsSpec(Map genericsSpec, MethodNode mn)
public static ClassNode correctToGenericsSpecRecurse(Map genericsSpec, ClassNode type)
public static ClassNode correctToGenericsSpec(Map genericsSpec, GenericsType type)
public static ClassNode correctToGenericsSpec(Map genericsSpec, ClassNode type)