public class GenericsUtils extends Object
Modifier and Type | Field | Description |
---|---|---|
static GenericsType[] |
EMPTY_GENERICS_ARRAY |
|
static String |
JAVA_LANG_OBJECT |
Constructor | Description |
---|---|
GenericsUtils() |
public static final GenericsType[] EMPTY_GENERICS_ARRAY
public static final String JAVA_LANG_OBJECT
@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
- @Deprecated 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 makeClassSafeWithGenerics(Class klass, ClassNode genericsType)
public static ClassNode makeClassSafe0(ClassNode type, GenericsType... genericTypes)
public static ClassNode makeClassSafeWithGenerics(ClassNode type, GenericsType... genericTypes)
public static MethodNode correctToGenericsSpec(Map<String,ClassNode> genericsSpec, MethodNode mn)
public static ClassNode correctToGenericsSpecRecurse(Map<String,ClassNode> genericsSpec, ClassNode type)
public static ClassNode[] correctToGenericsSpecRecurse(Map<String,ClassNode> genericsSpec, ClassNode[] types)
public static ClassNode correctToGenericsSpecRecurse(Map<String,ClassNode> genericsSpec, ClassNode type, List<String> exclusions)
public static ClassNode correctToGenericsSpec(Map<String,ClassNode> genericsSpec, GenericsType type)
public static ClassNode correctToGenericsSpec(Map<String,ClassNode> genericsSpec, ClassNode type)
public static Map<String,ClassNode> createGenericsSpec(ClassNode current, Map<String,ClassNode> oldSpec)
public static Map<String,ClassNode> addMethodGenerics(MethodNode current, Map<String,ClassNode> oldSpec)
public static void extractSuperClassGenerics(ClassNode type, ClassNode target, Map<String,ClassNode> spec)
public static ClassNode[] parseClassNodesFromString(String option, SourceUnit sourceUnit, CompilationUnit compilationUnit, MethodNode mn, ASTNode usage)
public static GenericsType[] applyGenericsContextToPlaceHolders(Map<String,ClassNode> genericsSpec, GenericsType[] oldPlaceHolders)
genericsSpec
- the generics context information specoldPlaceHolders
- the old placeholders