GrailsASTUtils (Grails 2.3.8)
Date: 2014-04-24

Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.codehaus.groovy.grails.compiler.injection
[Java] Class GrailsASTUtils

    java.lang.Object
      org.codehaus.groovy.grails.compiler.injection.GrailsASTUtils

    public class GrailsASTUtils
    extends java.lang.Object

Helper methods for working with Groovy AST trees.

Authors:
  Graeme Rocher

Since:
  0.3

Field Summary
`static org.codehaus.groovy.syntax.Token` | `ASSIGNMENT_OPERATOR`
`static java.lang.String` | `DOMAIN_DIR`
`static org.codehaus.groovy.syntax.Token` | `EQUALS_OPERATOR`
`static java.lang.String` | `GRAILS_APP_DIR`
`static org.codehaus.groovy.ast.ClassNode` | `INTEGER_CLASS_NODE`
`static org.codehaus.groovy.syntax.Token` | `LOGICAL_AND_OPERATOR`
`static java.lang.String` | `METHOD_MISSING_METHOD_NAME`
`static org.codehaus.groovy.ast.ClassNode` | `MISSING_METHOD_EXCEPTION`
`static org.codehaus.groovy.syntax.Token` | `NOT_EQUALS_OPERATOR`
`static org.codehaus.groovy.ast.expr.ConstantExpression` | `NULL_EXPRESSION`
`static org.codehaus.groovy.ast.ClassNode` | `OBJECT_CLASS_NODE`
`static java.lang.String` | `STATIC_METHOD_MISSING_METHOD_NAME`
`static org.codehaus.groovy.ast.expr.VariableExpression` | `THIS_EXPR` @deprecated Sharing copies of VariableExpression which refer to "this" is unsafe
`static org.codehaus.groovy.ast.ClassNode` | `VOID_CLASS_NODE`
`static org.codehaus.groovy.ast.expr.ArgumentListExpression` | `ZERO_ARGUMENTS`
`static org.codehaus.groovy.ast.Parameter[]` | `ZERO_PARAMETERS`

Method Summary
`static void` | `addAnnotationIfNecessary(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class entityClass)`
`static org.codehaus.groovy.ast.AnnotatedNode` | `addCompileStaticAnnotation(org.codehaus.groovy.ast.AnnotatedNode annotatedNode)`
`static org.codehaus.groovy.ast.AnnotatedNode` | `addCompileStaticAnnotation(org.codehaus.groovy.ast.AnnotatedNode annotatedNode, boolean skip)` Adds @CompileStatic annotation to method
`static org.codehaus.groovy.ast.ConstructorNode` | `addDelegateConstructor(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode constructorMethod, java.util.Map genericsPlaceholders)` Adds or modifies an existing constructor to delegate to the given static constructor method for initialization logic.
`static org.codehaus.groovy.ast.MethodNode` | `addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod)` Adds a delegate method to the target class node where the first argument is to the delegate method is 'this'.
`static org.codehaus.groovy.ast.MethodNode` | `addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation)`
`static org.codehaus.groovy.ast.MethodNode` | `addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, boolean thisAsFirstArgument)`
`static org.codehaus.groovy.ast.MethodNode` | `addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation, boolean thisAsFirstArgument)`
`static org.codehaus.groovy.ast.MethodNode` | `addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation, boolean thisAsFirstArgument, java.util.Map genericsPlaceholders)`
`static org.codehaus.groovy.ast.MethodNode` | `addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation, boolean thisAsFirstArgument, java.util.Map genericsPlaceholders, boolean noNullCheck)` Adds a delegate method to the target class node where the first argument is to the delegate method is 'this'.
`static void` | `addDelegateInstanceMethods(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance)`
`static void` | `addDelegateInstanceMethods(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance, java.util.Map genericsPlaceholders)`
`static void` | `addDelegateInstanceMethods(org.codehaus.groovy.ast.ClassNode supportedSuperType, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance)`
`static void` | `addDelegateInstanceMethods(org.codehaus.groovy.ast.ClassNode supportedSuperType, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance, java.util.Map genericsPlaceholders, boolean noNullCheck, boolean addCompileStatic)`
`static org.codehaus.groovy.ast.MethodNode` | `addDelegateStaticMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode delegateMethod)` Adds a static method call to given class node that delegates to the given method
`static org.codehaus.groovy.ast.MethodNode` | `addDelegateStaticMethod(org.codehaus.groovy.ast.expr.Expression expression, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode delegateMethod)` Adds a static method to the given class node that delegates to the given method and resolves the object to invoke the method on from the given expression.
`static org.codehaus.groovy.ast.MethodNode` | `addDelegateStaticMethod(org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode delegateMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation, java.util.Map genericsPlaceholders, boolean noNullCheck)` Adds a static method to the given class node that delegates to the given method and resolves the object to invoke the method on from the given expression.
`static org.codehaus.groovy.ast.FieldNode` | `addFieldIfNonExistent(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode fieldType, java.lang.String fieldName)`
`static void` | `addMethodIfNotPresent(org.codehaus.groovy.ast.ClassNode controllerClassNode, org.codehaus.groovy.ast.MethodNode methodNode)`
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `applyDefaultMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, org.codehaus.groovy.ast.ClassNode targetClassNode)` Set the method target of a MethodCallExpression to the first matching method with same number of arguments.
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `applyDefaultMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, java.lang.Class targetClass)` Set the method target of a MethodCallExpression to the first matching method with same number of arguments.
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `applyImplicitThis(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, boolean useImplicitThis)`
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `applyMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, org.codehaus.groovy.ast.ClassNode targetClassNode, org.codehaus.groovy.ast.ClassNode... targetParameterTypes)` Set the method target of a MethodCallExpression to the first matching method with same number and type of arguments.
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `applyMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, java.lang.Class targetClass, java.lang.Class... targetParameterClassTypes)` Set the method target of a MethodCallExpression to the first matching method with same number and type of arguments.
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `applyMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, org.codehaus.groovy.ast.ClassNode targetClassNode, java.lang.Class... targetParameterClassTypes)` Set the method target of a MethodCallExpression to the first matching method with same number and type of arguments.
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `buildGetMapExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String keyName)` Build static direct call to get entry from Map
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `buildGetPropertyExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String propertyName, org.codehaus.groovy.ast.ClassNode targetClassNode)` Build static direct call to getter of a property
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `buildGetPropertyExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String propertyName, org.codehaus.groovy.ast.ClassNode targetClassNode, boolean useBooleanGetter)` Build static direct call to getter of a property
`static org.codehaus.groovy.ast.expr.Expression` | `buildGetThisObjectExpression(boolean inClosureBlock)`
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `buildPutMapExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String keyName, org.codehaus.groovy.ast.expr.Expression valueExpression)` Build static direct call to put entry in Map
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `buildSetPropertyExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String propertyName, org.codehaus.groovy.ast.ClassNode targetClassNode, org.codehaus.groovy.ast.expr.Expression valueExpression)` Build static direct call to setter of a property
`static org.codehaus.groovy.ast.expr.Expression` | `buildThisExpression()`
`static org.codehaus.groovy.ast.AnnotationNode` | `cloneAnnotation(org.codehaus.groovy.ast.AnnotationNode node)`
`static void` | `copyAnnotations(org.codehaus.groovy.ast.AnnotatedNode from, org.codehaus.groovy.ast.AnnotatedNode to)`
`static void` | `copyAnnotations(org.codehaus.groovy.ast.AnnotatedNode from, org.codehaus.groovy.ast.AnnotatedNode to, java.util.Set included, java.util.Set excluded)`
`static org.codehaus.groovy.ast.Parameter[]` | `copyParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes)`
`static org.codehaus.groovy.ast.Parameter[]` | `copyParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes, java.util.Map genericsPlaceholders)`
`static org.codehaus.groovy.ast.expr.ArgumentListExpression` | `createArgumentListFromParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes, boolean thisAsFirstArgument, java.util.Map genericsPlaceholders)` Creates an argument list from the given parameter types.
`static org.codehaus.groovy.ast.stmt.ExpressionStatement` | `createPrintlnStatement(java.lang.String message)`
`static org.codehaus.groovy.ast.stmt.ExpressionStatement` | `createPrintlnStatement(java.lang.String message, java.lang.String variable)`
`static void` | `error(org.codehaus.groovy.control.SourceUnit sourceUnit, org.codehaus.groovy.ast.ASTNode astNode, java.lang.String message)` Generates a fatal compilation error.
`static void` | `error(org.codehaus.groovy.control.SourceUnit sourceUnit, org.codehaus.groovy.ast.ASTNode astNode, java.lang.String message, boolean fatal)` Generates a fatal compilation error.
`static void` | `filterAnnotations(org.codehaus.groovy.ast.AnnotatedNode annotatedNode, java.util.Set classNamesToRetain, java.util.Set classNamesToRemove)`
`static org.codehaus.groovy.ast.AnnotationNode` | `findAnnotation(org.codehaus.groovy.ast.ClassNode annotationClassNode, java.util.List annotations)`
`static org.codehaus.groovy.ast.AnnotationNode` | `findAnnotation(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class type)`
`static org.codehaus.groovy.ast.ConstructorNode` | `findConstructor(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.Parameter[] constructorParams)` Finds a constructor for the given class node and parameter types
`static org.codehaus.groovy.ast.ClassNode` | `findInterface(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode interfaceNode)`
`static java.util.Map` | `getAllAssociationMap(org.codehaus.groovy.ast.ClassNode classNode)`
`static java.util.Map` | `getAssocationMap(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String associationType)` Returns a map containing the names and types of the given association type. eg.
`static java.util.Map` | `getConstraintMetadata(org.codehaus.groovy.ast.expr.ClosureExpression closureExpression)` Evaluates a constraints closure and returns metadata about the constraints configured in the closure.
`static org.codehaus.groovy.ast.ConstructorNode` | `getDefaultConstructor(org.codehaus.groovy.ast.ClassNode classNode)` Obtains the default constructor for the given class node.
`static java.lang.String` | `getFullName(org.codehaus.groovy.ast.ClassNode classNode)` Gets the full name of a ClassNode.
`static org.codehaus.groovy.ast.ClassNode` | `getFurthestParent(org.codehaus.groovy.ast.ClassNode classNode)`
`static org.codehaus.groovy.ast.ClassNode` | `getFurthestUnresolvedParent(org.codehaus.groovy.ast.ClassNode classNode)`
`static org.codehaus.groovy.ast.Parameter[]` | `getRemainingParameterTypes(org.codehaus.groovy.ast.Parameter[] parameters)` Gets the remaining parameters excluding the first parameter in the given list
`static boolean` | `hasAnnotation(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class annotationClass)` Returns true if classNode is marked with annotationClass
`static boolean` | `hasAnyAnnotations(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class... annotationsToLookFor)` @param classNode a ClassNode to search
`static boolean` | `hasOrInheritsProperty(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String propertyName)`
`static boolean` | `hasProperty(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String propertyName)` Returns whether a classNode has the specified property or not
`static boolean` | `hasZeroArgsConstructor(org.codehaus.groovy.ast.ClassNode implementationNode)`
`static boolean` | `implementsOrInheritsZeroArgMethod(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String methodName, java.util.List ignoreClasses)`
`static boolean` | `implementsZeroArgMethod(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String methodName)` Tests whether the ClasNode implements the specified method name.
`static boolean` | `isApplied(org.codehaus.groovy.ast.ASTNode astNode, java.lang.Class transformationClass)`
`static boolean` | `isCandidateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode declaredMethod)`
`static boolean` | `isCandidateMethod(org.codehaus.groovy.ast.MethodNode declaredMethod)`
`static boolean` | `isConstructorMethod(org.codehaus.groovy.ast.MethodNode declaredMethod)`
`static boolean` | `isDomainClass(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.control.SourceUnit sourceNode)`
`static boolean` | `isInnerClassNode(org.codehaus.groovy.ast.ClassNode classNode)` Whether the given class node is an inner class
`static boolean` | `isSetterOrGetterMethod(org.codehaus.groovy.ast.MethodNode md)`
`static void` | `markApplied(org.codehaus.groovy.ast.ASTNode astNode, java.lang.Class transformationClass)`
`static org.codehaus.groovy.ast.expr.MethodCallExpression` | `noImplicitThis(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression)`
`static org.codehaus.groovy.ast.ClassNode` | `nonGeneric(org.codehaus.groovy.ast.ClassNode type)`
`static org.codehaus.groovy.ast.ClassNode` | `nonGeneric(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.ClassNode wildcardReplacement)`
`static boolean` | `parametersEqual(org.codehaus.groovy.ast.Parameter[] a, org.codehaus.groovy.ast.Parameter[] b)` @return true if the two arrays are of the same size and have the same contents
`static void` | `processVariableScopes(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode)`
`static void` | `processVariableScopes(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode methodNode)`
`static void` | `removeCompileStaticAnnotations(org.codehaus.groovy.ast.AnnotatedNode annotatedNode)`
`static org.codehaus.groovy.ast.ClassNode` | `replaceGenericsPlaceholders(org.codehaus.groovy.ast.ClassNode type, java.util.Map genericsPlaceholders)`
`static org.codehaus.groovy.ast.ClassNode` | `replaceGenericsPlaceholders(org.codehaus.groovy.ast.ClassNode type, java.util.Map genericsPlaceholders, org.codehaus.groovy.ast.ClassNode defaultPlaceholder)`
`static void` | `warning(org.codehaus.groovy.control.SourceUnit sourceUnit, org.codehaus.groovy.ast.ASTNode node, java.lang.String warningMessage)`
`static void` | `wrapMethodBodyInTryCatchDebugStatements(org.codehaus.groovy.ast.MethodNode methodNode)` Wraps a method body in try / catch logic that catches any errors and logs an error, but does not rethrow!

Methods inherited from class java.lang.Object
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Field Detail

### ASSIGNMENT_OPERATOR

    public static final org.codehaus.groovy.syntax.Token ASSIGNMENT_OPERATOR

### DOMAIN_DIR

    public static final java.lang.String DOMAIN_DIR

### EQUALS_OPERATOR

    public static final org.codehaus.groovy.syntax.Token EQUALS_OPERATOR

### GRAILS_APP_DIR

    public static final java.lang.String GRAILS_APP_DIR

### INTEGER_CLASS_NODE

    public static final org.codehaus.groovy.ast.ClassNode INTEGER_CLASS_NODE

### LOGICAL_AND_OPERATOR

    public static final org.codehaus.groovy.syntax.Token LOGICAL_AND_OPERATOR

### METHOD_MISSING_METHOD_NAME

    public static final java.lang.String METHOD_MISSING_METHOD_NAME

### MISSING_METHOD_EXCEPTION

    public static final org.codehaus.groovy.ast.ClassNode MISSING_METHOD_EXCEPTION

### NOT_EQUALS_OPERATOR

    public static final org.codehaus.groovy.syntax.Token NOT_EQUALS_OPERATOR

### NULL_EXPRESSION

    public static final org.codehaus.groovy.ast.expr.ConstantExpression NULL_EXPRESSION

### OBJECT_CLASS_NODE

    public static final org.codehaus.groovy.ast.ClassNode OBJECT_CLASS_NODE

### STATIC_METHOD_MISSING_METHOD_NAME

    public static final java.lang.String STATIC_METHOD_MISSING_METHOD_NAME

### THIS_EXPR

    @java.lang.Deprecated
    public static final org.codehaus.groovy.ast.expr.VariableExpression THIS_EXPR

  deprecated:
    Sharing copies of VariableExpression which refer to "this" is unsafe

### VOID_CLASS_NODE

    public static final org.codehaus.groovy.ast.ClassNode VOID_CLASS_NODE

### ZERO_ARGUMENTS

    public static final org.codehaus.groovy.ast.expr.ArgumentListExpression ZERO_ARGUMENTS

### ZERO_PARAMETERS

    public static final org.codehaus.groovy.ast.Parameter[] ZERO_PARAMETERS

Method Detail

### addAnnotationIfNecessary

    public static void addAnnotationIfNecessary(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class entityClass)

### addCompileStaticAnnotation

    public static org.codehaus.groovy.ast.AnnotatedNode addCompileStaticAnnotation(org.codehaus.groovy.ast.AnnotatedNode annotatedNode)

### addCompileStaticAnnotation

    public static org.codehaus.groovy.ast.AnnotatedNode addCompileStaticAnnotation(org.codehaus.groovy.ast.AnnotatedNode annotatedNode, boolean skip)

  Adds
  CompileStatic:
    annotation to method
  Parameters:
    annotatedNode
    skip
  Returns:
    The annotated method

### addDelegateConstructor

    public static org.codehaus.groovy.ast.ConstructorNode addDelegateConstructor(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode constructorMethod, java.util.Map genericsPlaceholders)

  Adds or modifies an existing constructor to delegate to the given static constructor method for initialization logic.
  Parameters:
    `classNode` - The class node
    `constructorMethod` - The constructor static method

### addDelegateInstanceMethod

    public static org.codehaus.groovy.ast.MethodNode addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod)

  Adds a delegate method to the target class node where the first argument is to the delegate method is 'this'. In other words a method such as foo(Object instance, String bar) would be added with a signature of foo(String) and 'this' is passed to the delegate instance
  Parameters:
    `classNode` - The class node
    `delegate` - The expression that looks up the delegate
    `declaredMethod` - The declared method
  Returns:
    The added method node or null if it couldn't be added

### addDelegateInstanceMethod

    public static org.codehaus.groovy.ast.MethodNode addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation)

### addDelegateInstanceMethod

    public static org.codehaus.groovy.ast.MethodNode addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, boolean thisAsFirstArgument)

### addDelegateInstanceMethod

    public static org.codehaus.groovy.ast.MethodNode addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation, boolean thisAsFirstArgument)

### addDelegateInstanceMethod

    public static org.codehaus.groovy.ast.MethodNode addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation, boolean thisAsFirstArgument, java.util.Map genericsPlaceholders)

### addDelegateInstanceMethod

    public static org.codehaus.groovy.ast.MethodNode addDelegateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.MethodNode declaredMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation, boolean thisAsFirstArgument, java.util.Map genericsPlaceholders, boolean noNullCheck)

  Adds a delegate method to the target class node where the first argument is to the delegate method is 'this'. In other words a method such as foo(Object instance, String bar) would be added with a signature of foo(String) and 'this' is passed to the delegate instance
  Parameters:
    `classNode` - The class node
    `delegate` - The expression that looks up the delegate
    `declaredMethod` - The declared method
    `thisAsFirstArgument` - Whether 'this' should be passed as the first argument to the method
  Returns:
    The added method node or null if it couldn't be added

### addDelegateInstanceMethods

    public static void addDelegateInstanceMethods(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance)

### addDelegateInstanceMethods

    public static void addDelegateInstanceMethods(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance, java.util.Map genericsPlaceholders)

### addDelegateInstanceMethods

    public static void addDelegateInstanceMethods(org.codehaus.groovy.ast.ClassNode supportedSuperType, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance)

### addDelegateInstanceMethods

    public static void addDelegateInstanceMethods(org.codehaus.groovy.ast.ClassNode supportedSuperType, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance, java.util.Map genericsPlaceholders, boolean noNullCheck, boolean addCompileStatic)

### addDelegateStaticMethod

    public static org.codehaus.groovy.ast.MethodNode addDelegateStaticMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode delegateMethod)

  Adds a static method call to given class node that delegates to the given method
  Parameters:
    `classNode` - The class node
    `delegateMethod` - The delegate method
  Returns:
    The added method node or null if it couldn't be added

### addDelegateStaticMethod

    public static org.codehaus.groovy.ast.MethodNode addDelegateStaticMethod(org.codehaus.groovy.ast.expr.Expression expression, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode delegateMethod)

  Adds a static method to the given class node that delegates to the given method and resolves the object to invoke the method on from the given expression.
  Parameters:
    `expression` - The expression
    `classNode` - The class node
    `delegateMethod` - The delegate method
  Returns:
    The added method node or null if it couldn't be added

### addDelegateStaticMethod

    public static org.codehaus.groovy.ast.MethodNode addDelegateStaticMethod(org.codehaus.groovy.ast.expr.Expression delegate, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode delegateMethod, org.codehaus.groovy.ast.AnnotationNode markerAnnotation, java.util.Map genericsPlaceholders, boolean noNullCheck)

  Adds a static method to the given class node that delegates to the given method and resolves the object to invoke the method on from the given expression.
  Parameters:
    `delegate` - The expression
    `classNode` - The class node
    `delegateMethod` - The delegate method
    `markerAnnotation` - A marker annotation to be added to all methods
  Returns:
    The added method node or null if it couldn't be added

### addFieldIfNonExistent

    public static org.codehaus.groovy.ast.FieldNode addFieldIfNonExistent(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode fieldType, java.lang.String fieldName)

### addMethodIfNotPresent

    public static void addMethodIfNotPresent(org.codehaus.groovy.ast.ClassNode controllerClassNode, org.codehaus.groovy.ast.MethodNode methodNode)

### applyDefaultMethodTarget

    public static org.codehaus.groovy.ast.expr.MethodCallExpression applyDefaultMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, org.codehaus.groovy.ast.ClassNode targetClassNode)

  Set the method target of a MethodCallExpression to the first matching method with same number of arguments. This doesn't check argument types.
  Parameters:
    methodCallExpression
    targetClassNode

### applyDefaultMethodTarget

    public static org.codehaus.groovy.ast.expr.MethodCallExpression applyDefaultMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, java.lang.Class targetClass)

  Set the method target of a MethodCallExpression to the first matching method with same number of arguments. This doesn't check argument types.
  Parameters:
    methodCallExpression
    targetClass
  Returns:
    The method call expression

### applyImplicitThis

    public static org.codehaus.groovy.ast.expr.MethodCallExpression applyImplicitThis(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, boolean useImplicitThis)

### applyMethodTarget

    public static org.codehaus.groovy.ast.expr.MethodCallExpression applyMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, org.codehaus.groovy.ast.ClassNode targetClassNode, org.codehaus.groovy.ast.ClassNode... targetParameterTypes)

  Set the method target of a MethodCallExpression to the first matching method with same number and type of arguments. A null parameter type will match any type
  Parameters:
    methodCallExpression
    targetClassNode
    targetParameterTypes
  Returns:
    The method call expression

### applyMethodTarget

    public static org.codehaus.groovy.ast.expr.MethodCallExpression applyMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, java.lang.Class targetClass, java.lang.Class... targetParameterClassTypes)

  Set the method target of a MethodCallExpression to the first matching method with same number and type of arguments.
  Parameters:
    methodCallExpression
    targetClass
    targetParameterClassTypes
  Returns:
    The method call expression

### applyMethodTarget

    public static org.codehaus.groovy.ast.expr.MethodCallExpression applyMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, org.codehaus.groovy.ast.ClassNode targetClassNode, java.lang.Class... targetParameterClassTypes)

  Set the method target of a MethodCallExpression to the first matching method with same number and type of arguments.
  Parameters:
    methodCallExpression
    targetClassNode
    targetParameterClassTypes
  Returns:
    The method call expression

### buildGetMapExpression

    public static org.codehaus.groovy.ast.expr.MethodCallExpression buildGetMapExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String keyName)

  Build static direct call to get entry from Map
  Parameters:
    objectExpression
    keyName
  Returns:
    The method call expression

### buildGetPropertyExpression

    public static org.codehaus.groovy.ast.expr.MethodCallExpression buildGetPropertyExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String propertyName, org.codehaus.groovy.ast.ClassNode targetClassNode)

  Build static direct call to getter of a property
  Parameters:
    objectExpression
    propertyName
    targetClassNode
  Returns:
    The method call expression

### buildGetPropertyExpression

    public static org.codehaus.groovy.ast.expr.MethodCallExpression buildGetPropertyExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String propertyName, org.codehaus.groovy.ast.ClassNode targetClassNode, boolean useBooleanGetter)

  Build static direct call to getter of a property
  Parameters:
    objectExpression
    propertyName
    targetClassNode
    useBooleanGetter
  Returns:
    The method call expression

### buildGetThisObjectExpression

    public static org.codehaus.groovy.ast.expr.Expression buildGetThisObjectExpression(boolean inClosureBlock)

### buildPutMapExpression

    public static org.codehaus.groovy.ast.expr.MethodCallExpression buildPutMapExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String keyName, org.codehaus.groovy.ast.expr.Expression valueExpression)

  Build static direct call to put entry in Map
  Parameters:
    objectExpression
    keyName
    valueExpression
  Returns:
    The method call expression

### buildSetPropertyExpression

    public static org.codehaus.groovy.ast.expr.MethodCallExpression buildSetPropertyExpression(org.codehaus.groovy.ast.expr.Expression objectExpression, java.lang.String propertyName, org.codehaus.groovy.ast.ClassNode targetClassNode, org.codehaus.groovy.ast.expr.Expression valueExpression)

  Build static direct call to setter of a property
  Parameters:
    objectExpression
    propertyName
    targetClassNode
    valueExpression
  Returns:
    The method call expression

### buildThisExpression

    public static org.codehaus.groovy.ast.expr.Expression buildThisExpression()

### cloneAnnotation

    public static org.codehaus.groovy.ast.AnnotationNode cloneAnnotation(org.codehaus.groovy.ast.AnnotationNode node)

### copyAnnotations

    public static void copyAnnotations(org.codehaus.groovy.ast.AnnotatedNode from, org.codehaus.groovy.ast.AnnotatedNode to)

### copyAnnotations

    public static void copyAnnotations(org.codehaus.groovy.ast.AnnotatedNode from, org.codehaus.groovy.ast.AnnotatedNode to, java.util.Set included, java.util.Set excluded)

### copyParameters

    public static org.codehaus.groovy.ast.Parameter[] copyParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes)

### copyParameters

    public static org.codehaus.groovy.ast.Parameter[] copyParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes, java.util.Map genericsPlaceholders)

### createArgumentListFromParameters

    public static org.codehaus.groovy.ast.expr.ArgumentListExpression createArgumentListFromParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes, boolean thisAsFirstArgument, java.util.Map genericsPlaceholders)

  Creates an argument list from the given parameter types.
  Parameters:
    `parameterTypes` - The parameter types
    `thisAsFirstArgument` - Whether to include a reference to 'this' as the first argument
    genericsPlaceholders
  Returns:
    the arguments

### createPrintlnStatement

    public static org.codehaus.groovy.ast.stmt.ExpressionStatement createPrintlnStatement(java.lang.String message)

### createPrintlnStatement

    public static org.codehaus.groovy.ast.stmt.ExpressionStatement createPrintlnStatement(java.lang.String message, java.lang.String variable)

### error

    public static void error(org.codehaus.groovy.control.SourceUnit sourceUnit, org.codehaus.groovy.ast.ASTNode astNode, java.lang.String message)

  Generates a fatal compilation error.
  Parameters:
    `sourceUnit` - the SourceUnit
    `astNode` - the ASTNode which caused the error
    `message` - The error message

### error

    public static void error(org.codehaus.groovy.control.SourceUnit sourceUnit, org.codehaus.groovy.ast.ASTNode astNode, java.lang.String message, boolean fatal)

  Generates a fatal compilation error.
  Parameters:
    `sourceUnit` - the SourceUnit
    `astNode` - the ASTNode which caused the error
    `message` - The error message
    `fatal` - indicates if this is a fatal error

### filterAnnotations

    public static void filterAnnotations(org.codehaus.groovy.ast.AnnotatedNode annotatedNode, java.util.Set classNamesToRetain, java.util.Set classNamesToRemove)

### findAnnotation

    public static org.codehaus.groovy.ast.AnnotationNode findAnnotation(org.codehaus.groovy.ast.ClassNode annotationClassNode, java.util.List annotations)

### findAnnotation

    public static org.codehaus.groovy.ast.AnnotationNode findAnnotation(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class type)

### findConstructor

    public static org.codehaus.groovy.ast.ConstructorNode findConstructor(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.Parameter[] constructorParams)

  Finds a constructor for the given class node and parameter types
  Parameters:
    `classNode` - The class node
    `constructorParams` - The parameter types
  Returns:
    The located constructor or null

### findInterface

    public static org.codehaus.groovy.ast.ClassNode findInterface(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode interfaceNode)

### getAllAssociationMap

    public static java.util.Map getAllAssociationMap(org.codehaus.groovy.ast.ClassNode classNode)

### getAssocationMap

    public static java.util.Map getAssocationMap(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String associationType)

  Returns a map containing the names and types of the given association type. eg. GrailsDomainClassProperty.HAS_MANY
  Parameters:
    `classNode` - The target class ndoe
    `associationType` - The associationType
  Returns:
    A map

### getConstraintMetadata

    public static java.util.Map getConstraintMetadata(org.codehaus.groovy.ast.expr.ClosureExpression closureExpression)

  Evaluates a constraints closure and returns metadata about the constraints configured in the closure. The Map returned has property names as keys and the value associated with each of those property names is a Map which has constraint names as keys and the Expression associated with that constraint as values.
  Parameters:
    `closureExpression` - the closure expression to evaluate
  Returns:
    the Map as described above

### getDefaultConstructor

    public static org.codehaus.groovy.ast.ConstructorNode getDefaultConstructor(org.codehaus.groovy.ast.ClassNode classNode)

  Obtains the default constructor for the given class node.
  Parameters:
    `classNode` - The class node
  Returns:
    The default constructor or null if there isn't one

### getFullName

    public static java.lang.String getFullName(org.codehaus.groovy.ast.ClassNode classNode)

  Gets the full name of a ClassNode.
  Parameters:
    `classNode` - The class node
  Returns:
    The full name

### getFurthestParent

    public static org.codehaus.groovy.ast.ClassNode getFurthestParent(org.codehaus.groovy.ast.ClassNode classNode)

### getFurthestUnresolvedParent

    public static org.codehaus.groovy.ast.ClassNode getFurthestUnresolvedParent(org.codehaus.groovy.ast.ClassNode classNode)

### getRemainingParameterTypes

    public static org.codehaus.groovy.ast.Parameter[] getRemainingParameterTypes(org.codehaus.groovy.ast.Parameter[] parameters)

  Gets the remaining parameters excluding the first parameter in the given list
  Parameters:
    `parameters` - The parameters
  Returns:
    A new array with the first parameter removed

### hasAnnotation

    public static boolean hasAnnotation(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class annotationClass)

  Returns true if classNode is marked with annotationClass
  Parameters:
    `classNode` - A ClassNode to inspect
    `annotationClass` - an annotation to look for
  Returns:
    true if classNode is marked with annotationClass, otherwise false

### hasAnyAnnotations

    public static boolean hasAnyAnnotations(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class... annotationsToLookFor)

  Parameters:
    `classNode` - a ClassNode to search
    `annotationsToLookFor` - Annotations to look for
  Returns:
    true if classNode is marked with any of the annotations in annotationsToLookFor

### hasOrInheritsProperty

    public static boolean hasOrInheritsProperty(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String propertyName)

### hasProperty

    public static boolean hasProperty(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String propertyName)

  Returns whether a classNode has the specified property or not
  Parameters:
    `classNode` - The ClassNode
    `propertyName` - The name of the property
  Returns:
    true if the property exists in the ClassNode

### hasZeroArgsConstructor

    public static boolean hasZeroArgsConstructor(org.codehaus.groovy.ast.ClassNode implementationNode)

### implementsOrInheritsZeroArgMethod

    @java.lang.SuppressWarningspublic static boolean implementsOrInheritsZeroArgMethod(ClassNode classNode, String methodName, List ignoreClasses) {
    public static boolean implementsOrInheritsZeroArgMethod(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String methodName, java.util.List ignoreClasses)

### implementsZeroArgMethod

    public static boolean implementsZeroArgMethod(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String methodName)

  Tests whether the ClasNode implements the specified method name.
  Parameters:
    `classNode` - The ClassNode
    `methodName` - The method name
  Returns:
    true if it does implement the method

### isApplied

    public static boolean isApplied(org.codehaus.groovy.ast.ASTNode astNode, java.lang.Class transformationClass)

### isCandidateInstanceMethod

    public static boolean isCandidateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode declaredMethod)

### isCandidateMethod

    public static boolean isCandidateMethod(org.codehaus.groovy.ast.MethodNode declaredMethod)

### isConstructorMethod

    public static boolean isConstructorMethod(org.codehaus.groovy.ast.MethodNode declaredMethod)

### isDomainClass

    public static boolean isDomainClass(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.control.SourceUnit sourceNode)

### isInnerClassNode

    public static boolean isInnerClassNode(org.codehaus.groovy.ast.ClassNode classNode)

  Whether the given class node is an inner class
  Parameters:
    `classNode` - The class node
  Returns:
    True if it is

### isSetterOrGetterMethod

    public static boolean isSetterOrGetterMethod(org.codehaus.groovy.ast.MethodNode md)

### markApplied

    public static void markApplied(org.codehaus.groovy.ast.ASTNode astNode, java.lang.Class transformationClass)

### noImplicitThis

    public static org.codehaus.groovy.ast.expr.MethodCallExpression noImplicitThis(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression)

### nonGeneric

    public static org.codehaus.groovy.ast.ClassNode nonGeneric(org.codehaus.groovy.ast.ClassNode type)

### nonGeneric

    @java.lang.SuppressWarnings
    public static org.codehaus.groovy.ast.ClassNode nonGeneric(org.codehaus.groovy.ast.ClassNode type, org.codehaus.groovy.ast.ClassNode wildcardReplacement)

### parametersEqual

    public static boolean parametersEqual(org.codehaus.groovy.ast.Parameter[] a, org.codehaus.groovy.ast.Parameter[] b)

  Returns:
    true if the two arrays are of the same size and have the same contents

### processVariableScopes

    public static void processVariableScopes(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode)

### processVariableScopes

    public static void processVariableScopes(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode methodNode)

### removeCompileStaticAnnotations

    public static void removeCompileStaticAnnotations(org.codehaus.groovy.ast.AnnotatedNode annotatedNode)

### replaceGenericsPlaceholders

    public static org.codehaus.groovy.ast.ClassNode replaceGenericsPlaceholders(org.codehaus.groovy.ast.ClassNode type, java.util.Map genericsPlaceholders)

### replaceGenericsPlaceholders

    public static org.codehaus.groovy.ast.ClassNode replaceGenericsPlaceholders(org.codehaus.groovy.ast.ClassNode type, java.util.Map genericsPlaceholders, org.codehaus.groovy.ast.ClassNode defaultPlaceholder)

### warning

    public static void warning(org.codehaus.groovy.control.SourceUnit sourceUnit, org.codehaus.groovy.ast.ASTNode node, java.lang.String warningMessage)

### wrapMethodBodyInTryCatchDebugStatements

    public static void wrapMethodBodyInTryCatchDebugStatements(org.codehaus.groovy.ast.MethodNode methodNode)

  Wraps a method body in try / catch logic that catches any errors and logs an error, but does not rethrow!
  Parameters:
    `methodNode` - The method node

Groovy Documentation