public class ClassNodeUtils extends Object
| Modifier and Type | Method and Description | 
|---|---|
static void | 
addDeclaredMethodsFromAllInterfaces(ClassNode cNode,
                                   Map<String,MethodNode> methodsMap)
Adds methods from interfaces and parent interfaces. 
 | 
static void | 
addDeclaredMethodsFromInterfaces(ClassNode cNode,
                                Map<String,MethodNode> methodsMap)
Adds methods from all interfaces. 
 | 
static void | 
addGeneratedConstructor(ClassNode classNode,
                       ConstructorNode consNode)
Add a method that is marked as  
@Generated. | 
static ConstructorNode | 
addGeneratedConstructor(ClassNode classNode,
                       int modifiers,
                       Parameter[] parameters,
                       ClassNode[] exceptions,
                       Statement code)
Add a method that is marked as  
@Generated. | 
static void | 
addGeneratedInnerClass(ClassNode cNode,
                      ClassNode inner)
Add an inner class that is marked as  
@Generated. | 
static void | 
addGeneratedMethod(ClassNode cNode,
                  MethodNode mNode)
Add a method and mark it as  
@Generated. | 
static MethodNode | 
addGeneratedMethod(ClassNode cNode,
                  String name,
                  int modifiers,
                  ClassNode returnType,
                  Parameter[] parameters,
                  ClassNode[] exceptions,
                  Statement code)
Return an existing method if one exists or else create a new method and mark it as  
@Generated. | 
static String | 
formatTypeName(ClassNode cNode)
Formats a type name into a human readable version. 
 | 
static Map<String,MethodNode> | 
getDeclaredMethodsFromInterfaces(ClassNode cNode)
Gets methods from all interfaces. 
 | 
static Map<String,MethodNode> | 
getDeclaredMethodsFromSuper(ClassNode cNode)
Add methods from the super class. 
 | 
static FieldNode | 
getField(ClassNode classNode,
        String fieldName)
Return the (potentially inherited) field of the classnode. 
 | 
static String | 
getPropNameForAccessor(String accessorName)
Returns the property name, e.g. 
 | 
static PropertyNode | 
getStaticProperty(ClassNode cNode,
                 String propName)
Detect whether a static property with the given name is within the class
 or a super class. 
 | 
static boolean | 
hasExplicitConstructor(AbstractASTTransformation xform,
                      ClassNode cNode)
Determine if an explicit (non-generated) constructor is in the class. 
 | 
static boolean | 
hasNoArgConstructor(ClassNode cNode)  | 
static boolean | 
hasPossibleStaticMethod(ClassNode cNode,
                       String name,
                       Expression arguments,
                       boolean trySpread)
Returns true if the given method has a possibly matching static method with the given name and arguments. 
 | 
static boolean | 
hasPossibleStaticProperty(ClassNode cNode,
                         String methodName)
Return true if we have a static accessor 
 | 
static boolean | 
hasStaticProperty(ClassNode cNode,
                 String propName)  | 
static boolean | 
isInnerClass(ClassNode cNode)
Detect whether a given ClassNode is a inner class (non-static). 
 | 
static boolean | 
isValidAccessorName(String accessorName)
Detect whether the given accessor name starts with "get", "set" or "is" followed by at least one character. 
 | 
static boolean | 
samePackageName(ClassNode first,
               ClassNode second)
Determine if the given ClassNode values have the same package name. 
 | 
public static String formatTypeName(ClassNode cNode)
cNode - the type to formatpublic static MethodNode addGeneratedMethod(ClassNode cNode, String name, int modifiers, ClassNode returnType, Parameter[] parameters, ClassNode[] exceptions, Statement code)
@Generated.public static void addGeneratedMethod(ClassNode cNode, MethodNode mNode)
@Generated.ClassNode.addMethod(MethodNode)public static void addGeneratedInnerClass(ClassNode cNode, ClassNode inner)
@Generated.ModuleNode.addClass(ClassNode)public static ConstructorNode addGeneratedConstructor(ClassNode classNode, int modifiers, Parameter[] parameters, ClassNode[] exceptions, Statement code)
@Generated.public static void addGeneratedConstructor(ClassNode classNode, ConstructorNode consNode)
@Generated.public static Map<String,MethodNode> getDeclaredMethodsFromSuper(ClassNode cNode)
cNode - The ClassNodepublic static void addDeclaredMethodsFromInterfaces(ClassNode cNode, Map<String,MethodNode> methodsMap)
cNode - The ClassNodemethodsMap - A map of existing methods to alterpublic static Map<String,MethodNode> getDeclaredMethodsFromInterfaces(ClassNode cNode)
cNode - The ClassNodepublic static void addDeclaredMethodsFromAllInterfaces(ClassNode cNode, Map<String,MethodNode> methodsMap)
cNode - The ClassNodemethodsMap - A map of existing methods to alterpublic static boolean hasPossibleStaticMethod(ClassNode cNode, String name, Expression arguments, boolean trySpread)
cNode - the ClassNode of interestname - the name of the method of interestarguments - the arguments to match againsttrySpread - whether to try to account for SpreadExpressions within the argumentspublic static boolean hasPossibleStaticProperty(ClassNode cNode, String methodName)
public static String getPropNameForAccessor(String accessorName)
accessorName - the accessor name of interest, e.g. getAgepublic static boolean isValidAccessorName(String accessorName)
accessorName - the accessor name of interest, e.g. getAgepublic static PropertyNode getStaticProperty(ClassNode cNode, String propName)
cNode - the ClassNode of interestpropName - the property namepublic static boolean isInnerClass(ClassNode cNode)
cNode - the ClassNode of interestpublic static boolean hasNoArgConstructor(ClassNode cNode)
public static boolean hasExplicitConstructor(AbstractASTTransformation xform, ClassNode cNode)
xform - if non null, add an error if an explicit constructor is foundcNode - the type of the containing classpublic static boolean samePackageName(ClassNode first, ClassNode second)
first - a ClassNodesecond - a ClassNodeNullPointerException - if either of the given nodes are null