|
Groovy Documentation | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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.
Field Summary | |
---|---|
static Token |
ASSIGNMENT_OPERATOR
|
static Token |
EQUALS_OPERATOR
|
static java.lang.String |
METHOD_MISSING_METHOD_NAME
|
static org.codehaus.groovy.ast.ClassNode |
MISSING_METHOD_EXCEPTION
|
static Token |
NOT_EQUALS_OPERATOR
|
static org.codehaus.groovy.ast.expr.ConstantExpression |
NULL_EXPRESSION
|
static java.lang.String |
STATIC_METHOD_MISSING_METHOD_NAME
|
Method Summary | |
---|---|
static void
|
addAnnotationIfNecessary(org.codehaus.groovy.ast.ClassNode classNode, java.lang.Class entityClass)
|
static void
|
addDelegateConstructor(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode constructorMethod)
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, boolean thisAsFirstArgument)
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 supportedSuperType, org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance)
|
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 void
|
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.ArgumentListExpression
|
createArgumentListFromParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes, boolean thisAsFirstArgument)
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 org.codehaus.groovy.ast.AnnotationNode
|
findAnnotation(org.codehaus.groovy.ast.ClassNode annotationClassNode, java.util.List annotations)
|
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.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
|
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
|
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
|
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 org.codehaus.groovy.ast.ClassNode
|
nonGeneric(org.codehaus.groovy.ast.ClassNode type)
|
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
|
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(), java.lang.Object#wait(long), java.lang.Object#wait(long, int), 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 |
---|
public static final Token ASSIGNMENT_OPERATOR
public static final Token EQUALS_OPERATOR
public static final java.lang.String METHOD_MISSING_METHOD_NAME
public static final org.codehaus.groovy.ast.ClassNode MISSING_METHOD_EXCEPTION
public static final Token NOT_EQUALS_OPERATOR
public static final org.codehaus.groovy.ast.expr.ConstantExpression NULL_EXPRESSION
public static final java.lang.String STATIC_METHOD_MISSING_METHOD_NAME
Method Detail |
---|
public static void addAnnotationIfNecessary(org.codehaus.groovy.ast.ClassNode classNode, @SuppressWarnings("unused") java.lang.Class entityClass)
public static void addDelegateConstructor(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode constructorMethod)
classNode
- The class nodeconstructorMethod
- The constructor static method
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)
classNode
- The class nodedelegate
- The expression that looks up the delegatedeclaredMethod
- The declared method
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)
classNode
- The class nodedelegate
- The expression that looks up the delegatedeclaredMethod
- The declared methodthisAsFirstArgument
- Whether 'this' should be passed as the first argument to the method
public static void addDelegateInstanceMethods(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode delegateNode, org.codehaus.groovy.ast.expr.Expression delegateInstance)
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)
public static org.codehaus.groovy.ast.MethodNode addDelegateStaticMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode delegateMethod)
classNode
- The class nodedelegateMethod
- The delegate method
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)
expression
- The expressionclassNode
- The class nodedelegateMethod
- The delegate method
public static void addFieldIfNonExistent(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.ClassNode fieldType, java.lang.String fieldName)
public static void addMethodIfNotPresent(org.codehaus.groovy.ast.ClassNode controllerClassNode, org.codehaus.groovy.ast.MethodNode methodNode)
public static org.codehaus.groovy.ast.expr.ArgumentListExpression createArgumentListFromParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes, boolean thisAsFirstArgument)
parameterTypes
- The parameter typesthisAsFirstArgument
- Whether to include a reference to 'this' as the first argument
public static org.codehaus.groovy.ast.stmt.ExpressionStatement createPrintlnStatement(java.lang.String message)
public static org.codehaus.groovy.ast.stmt.ExpressionStatement createPrintlnStatement(java.lang.String message, java.lang.String variable)
public static org.codehaus.groovy.ast.AnnotationNode findAnnotation(org.codehaus.groovy.ast.ClassNode annotationClassNode, java.util.List annotations)
public static org.codehaus.groovy.ast.ConstructorNode findConstructor(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.Parameter[] constructorParams)
classNode
- The class nodeconstructorParams
- The parameter types
public static org.codehaus.groovy.ast.ConstructorNode getDefaultConstructor(org.codehaus.groovy.ast.ClassNode classNode)
classNode
- The class node
public static java.lang.String getFullName(org.codehaus.groovy.ast.ClassNode classNode)
classNode
- The class node
public static org.codehaus.groovy.ast.ClassNode getFurthestParent(org.codehaus.groovy.ast.ClassNode classNode)
public static org.codehaus.groovy.ast.ClassNode getFurthestUnresolvedParent(org.codehaus.groovy.ast.ClassNode classNode)
public static org.codehaus.groovy.ast.Parameter[] getRemainingParameterTypes(org.codehaus.groovy.ast.Parameter[] parameters)
parameters
- The parameters
public static boolean hasOrInheritsProperty(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String propertyName)
public static boolean hasProperty(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String propertyName)
classNode
- The ClassNodepropertyName
- The name of the property
@SuppressWarnings("rawtypes") public static boolean implementsOrInheritsZeroArgMethod(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String methodName, java.util.List ignoreClasses)
public static boolean implementsZeroArgMethod(org.codehaus.groovy.ast.ClassNode classNode, java.lang.String methodName)
classNode
- The ClassNodemethodName
- The method name
public static boolean isCandidateInstanceMethod(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.ast.MethodNode declaredMethod)
public static boolean isCandidateMethod(org.codehaus.groovy.ast.MethodNode declaredMethod)
public static boolean isConstructorMethod(org.codehaus.groovy.ast.MethodNode declaredMethod)
public static org.codehaus.groovy.ast.ClassNode nonGeneric(org.codehaus.groovy.ast.ClassNode type)
public static boolean parametersEqual(org.codehaus.groovy.ast.Parameter[] a, org.codehaus.groovy.ast.Parameter[] b)
public static void wrapMethodBodyInTryCatchDebugStatements(org.codehaus.groovy.ast.MethodNode methodNode)
methodNode
- The method node
Groovy Documentation