public class GrailsASTUtils
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
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 |
| Constructor and Description |
|---|
GrailsASTUtils() |
| Modifier and Type | Method and Description |
|---|---|
static void |
addAnnotationIfNecessary(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.Class<Entity> entityClass) |
static org.codehaus.groovy.ast.AnnotatedNode |
addCompileStaticAnnotation(org.codehaus.groovy.ast.AnnotatedNode annotatedNode)
Marks a method to be staticly compiled
|
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<java.lang.String,org.codehaus.groovy.ast.ClassNode> 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,
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<java.lang.String,org.codehaus.groovy.ast.ClassNode> 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<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders,
boolean noNullCheck)
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) |
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<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders,
boolean noNullCheck,
boolean addCompileStatic) |
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<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders) |
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<java.lang.String,org.codehaus.groovy.ast.ClassNode> 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.AnnotationNode |
addEnhancedAnnotation(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.String... enhancedFor)
Add the grails.artefact.Enhanced annotation to classNode if it does not already exist and ensure that
all of the features in the enhancedFor array are represented in the enhancedFor attribute of the
Enhanced annnotation
|
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,
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 |
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 |
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,
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 |
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 |
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<java.lang.String> included,
java.util.Set<java.lang.String> 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<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders) |
static org.codehaus.groovy.ast.expr.ArgumentListExpression |
createArgumentListFromParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes,
boolean thisAsFirstArgument,
java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> 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<java.lang.String> classNamesToRetain,
java.util.Set<java.lang.String> classNamesToRemove) |
static org.codehaus.groovy.ast.AnnotationNode |
findAnnotation(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.Class<?> type) |
static org.codehaus.groovy.ast.AnnotationNode |
findAnnotation(org.codehaus.groovy.ast.ClassNode annotationClassNode,
java.util.List<org.codehaus.groovy.ast.AnnotationNode> 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.ClassNode |
findInterface(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.ClassNode interfaceNode) |
static java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> |
getAllAssociationMap(org.codehaus.groovy.ast.ClassNode classNode) |
static java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> |
getAssocationMap(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.String associationType)
Returns a map containing the names and types of the given association type.
|
static java.util.Map<java.lang.String,java.util.Map<java.lang.String,org.codehaus.groovy.ast.expr.Expression>> |
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<? extends java.lang.annotation.Annotation> annotationClass)
Returns true if classNode is marked with annotationClass
|
static boolean |
hasAnyAnnotations(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.Class<? extends java.lang.annotation.Annotation>... annotationsToLookFor) |
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) |
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<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders) |
static org.codehaus.groovy.ast.ClassNode |
replaceGenericsPlaceholders(org.codehaus.groovy.ast.ClassNode type,
java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> 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!
|
public static final java.lang.String DOMAIN_DIR
public static final java.lang.String GRAILS_APP_DIR
public static final java.lang.String METHOD_MISSING_METHOD_NAME
public static final java.lang.String STATIC_METHOD_MISSING_METHOD_NAME
public static final org.codehaus.groovy.syntax.Token EQUALS_OPERATOR
public static final org.codehaus.groovy.syntax.Token LOGICAL_AND_OPERATOR
public static final org.codehaus.groovy.syntax.Token NOT_EQUALS_OPERATOR
public static final org.codehaus.groovy.ast.ClassNode MISSING_METHOD_EXCEPTION
public static final org.codehaus.groovy.ast.expr.ConstantExpression NULL_EXPRESSION
public static final org.codehaus.groovy.syntax.Token ASSIGNMENT_OPERATOR
public static final org.codehaus.groovy.ast.ClassNode OBJECT_CLASS_NODE
public static final org.codehaus.groovy.ast.ClassNode VOID_CLASS_NODE
public static final org.codehaus.groovy.ast.ClassNode INTEGER_CLASS_NODE
public static final org.codehaus.groovy.ast.Parameter[] ZERO_PARAMETERS
public static final org.codehaus.groovy.ast.expr.ArgumentListExpression ZERO_ARGUMENTS
@Deprecated public static final org.codehaus.groovy.ast.expr.VariableExpression THIS_EXPR
public static void warning(org.codehaus.groovy.control.SourceUnit sourceUnit,
org.codehaus.groovy.ast.ASTNode node,
java.lang.String warningMessage)
public static void error(org.codehaus.groovy.control.SourceUnit sourceUnit,
org.codehaus.groovy.ast.ASTNode astNode,
java.lang.String message)
sourceUnit - the SourceUnitastNode - the ASTNode which caused the errormessage - The error messagepublic static void error(org.codehaus.groovy.control.SourceUnit sourceUnit,
org.codehaus.groovy.ast.ASTNode astNode,
java.lang.String message,
boolean fatal)
sourceUnit - the SourceUnitastNode - the ASTNode which caused the errormessage - The error messagefatal - indicates if this is a fatal errorpublic static boolean hasProperty(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.String propertyName)
classNode - The ClassNodepropertyName - The name of the propertypublic static boolean hasOrInheritsProperty(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.String propertyName)
public static boolean implementsZeroArgMethod(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.String methodName)
classNode - The ClassNodemethodName - The method namepublic static boolean implementsOrInheritsZeroArgMethod(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.String methodName,
java.util.List ignoreClasses)
public static java.lang.String getFullName(org.codehaus.groovy.ast.ClassNode classNode)
classNode - The class nodepublic 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.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 methodpublic 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)
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)
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)
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<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders)
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<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders,
boolean noNullCheck)
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 methodpublic static org.codehaus.groovy.ast.expr.ArgumentListExpression createArgumentListFromParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes,
boolean thisAsFirstArgument,
java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders)
parameterTypes - The parameter typesthisAsFirstArgument - Whether to include a reference to 'this' as the first argumentgenericsPlaceholders - public static org.codehaus.groovy.ast.Parameter[] getRemainingParameterTypes(org.codehaus.groovy.ast.Parameter[] parameters)
parameters - The parameterspublic 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 methodpublic 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 methodpublic 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<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders,
boolean noNullCheck)
delegate - The expressionclassNode - The class nodedelegateMethod - The delegate methodmarkerAnnotation - A marker annotation to be added to all methodspublic static org.codehaus.groovy.ast.ConstructorNode addDelegateConstructor(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.MethodNode constructorMethod,
java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders)
classNode - The class nodeconstructorMethod - The constructor static methodpublic 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 typespublic static boolean parametersEqual(org.codehaus.groovy.ast.Parameter[] a,
org.codehaus.groovy.ast.Parameter[] b)
public static org.codehaus.groovy.ast.ConstructorNode getDefaultConstructor(org.codehaus.groovy.ast.ClassNode classNode)
classNode - The class nodepublic static org.codehaus.groovy.ast.Parameter[] copyParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes)
public static org.codehaus.groovy.ast.Parameter[] copyParameters(org.codehaus.groovy.ast.Parameter[] parameterTypes,
java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders)
public static org.codehaus.groovy.ast.ClassNode nonGeneric(org.codehaus.groovy.ast.ClassNode type)
public static org.codehaus.groovy.ast.ClassNode nonGeneric(org.codehaus.groovy.ast.ClassNode type,
org.codehaus.groovy.ast.ClassNode wildcardReplacement)
public static org.codehaus.groovy.ast.ClassNode replaceGenericsPlaceholders(org.codehaus.groovy.ast.ClassNode type,
java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders)
public static org.codehaus.groovy.ast.ClassNode replaceGenericsPlaceholders(org.codehaus.groovy.ast.ClassNode type,
java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders,
org.codehaus.groovy.ast.ClassNode defaultPlaceholder)
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 boolean isDomainClass(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.control.SourceUnit sourceNode)
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 classNode,
org.codehaus.groovy.ast.ClassNode delegateNode,
org.codehaus.groovy.ast.expr.Expression delegateInstance,
java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders)
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 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<java.lang.String,org.codehaus.groovy.ast.ClassNode> genericsPlaceholders,
boolean noNullCheck,
boolean addCompileStatic)
public static org.codehaus.groovy.ast.FieldNode addFieldIfNonExistent(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.ClassNode fieldType,
java.lang.String fieldName)
public static void addAnnotationIfNecessary(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.Class<Entity> entityClass)
public static org.codehaus.groovy.ast.AnnotationNode addEnhancedAnnotation(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.String... enhancedFor)
classNode - the class to add the Enhanced annotation toenhancedFor - an array of feature names to include in the enhancedFor attribute of the annotationEnhancedpublic static org.codehaus.groovy.ast.AnnotationNode findAnnotation(org.codehaus.groovy.ast.ClassNode annotationClassNode,
java.util.List<org.codehaus.groovy.ast.AnnotationNode> annotations)
public static org.codehaus.groovy.ast.AnnotationNode findAnnotation(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.Class<?> type)
public static boolean hasAnnotation(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
classNode - A ClassNode to inspectannotationClass - an annotation to look forpublic static boolean hasAnyAnnotations(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.Class<? extends java.lang.annotation.Annotation>... annotationsToLookFor)
classNode - a ClassNode to searchannotationsToLookFor - Annotations to look forpublic static void addMethodIfNotPresent(org.codehaus.groovy.ast.ClassNode controllerClassNode,
org.codehaus.groovy.ast.MethodNode methodNode)
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 void wrapMethodBodyInTryCatchDebugStatements(org.codehaus.groovy.ast.MethodNode methodNode)
methodNode - The method nodepublic static java.util.Map<java.lang.String,java.util.Map<java.lang.String,org.codehaus.groovy.ast.expr.Expression>> getConstraintMetadata(org.codehaus.groovy.ast.expr.ClosureExpression closureExpression)
closureExpression - the closure expression to evaluatepublic static java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> getAssocationMap(org.codehaus.groovy.ast.ClassNode classNode,
java.lang.String associationType)
classNode - The target class ndoeassociationType - The associationTypepublic static java.util.Map<java.lang.String,org.codehaus.groovy.ast.ClassNode> getAllAssociationMap(org.codehaus.groovy.ast.ClassNode classNode)
public static org.codehaus.groovy.ast.ClassNode findInterface(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.ClassNode interfaceNode)
public static boolean hasZeroArgsConstructor(org.codehaus.groovy.ast.ClassNode implementationNode)
public static boolean isInnerClassNode(org.codehaus.groovy.ast.ClassNode classNode)
classNode - The class nodepublic static org.codehaus.groovy.ast.AnnotatedNode addCompileStaticAnnotation(org.codehaus.groovy.ast.AnnotatedNode annotatedNode)
annotatedNode - public static org.codehaus.groovy.ast.AnnotatedNode addCompileStaticAnnotation(org.codehaus.groovy.ast.AnnotatedNode annotatedNode,
boolean skip)
annotatedNode - skip - public static org.codehaus.groovy.ast.expr.MethodCallExpression applyDefaultMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression,
org.codehaus.groovy.ast.ClassNode targetClassNode)
methodCallExpression - targetClassNode - public static org.codehaus.groovy.ast.expr.MethodCallExpression applyDefaultMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression,
java.lang.Class<?> targetClass)
methodCallExpression - targetClass - 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)
methodCallExpression - targetClassNode - targetParameterTypes - public static org.codehaus.groovy.ast.expr.MethodCallExpression applyMethodTarget(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression,
java.lang.Class<?> targetClass,
java.lang.Class<?>... targetParameterClassTypes)
methodCallExpression - targetClass - targetParameterClassTypes - 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)
methodCallExpression - targetClassNode - targetParameterClassTypes - 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)
objectExpression - propertyName - targetClassNode - 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)
objectExpression - propertyName - targetClassNode - useBooleanGetter - 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)
objectExpression - propertyName - targetClassNode - valueExpression - 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)
objectExpression - keyName - valueExpression - public static org.codehaus.groovy.ast.expr.MethodCallExpression buildGetMapExpression(org.codehaus.groovy.ast.expr.Expression objectExpression,
java.lang.String keyName)
objectExpression - keyName - public static org.codehaus.groovy.ast.expr.Expression buildGetThisObjectExpression(boolean inClosureBlock)
public static org.codehaus.groovy.ast.expr.Expression buildThisExpression()
public static org.codehaus.groovy.ast.expr.MethodCallExpression noImplicitThis(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression)
public static org.codehaus.groovy.ast.expr.MethodCallExpression applyImplicitThis(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression,
boolean useImplicitThis)
public static void copyAnnotations(org.codehaus.groovy.ast.AnnotatedNode from,
org.codehaus.groovy.ast.AnnotatedNode to)
public static void copyAnnotations(org.codehaus.groovy.ast.AnnotatedNode from,
org.codehaus.groovy.ast.AnnotatedNode to,
java.util.Set<java.lang.String> included,
java.util.Set<java.lang.String> excluded)
public static org.codehaus.groovy.ast.AnnotationNode cloneAnnotation(org.codehaus.groovy.ast.AnnotationNode node)
public static void filterAnnotations(org.codehaus.groovy.ast.AnnotatedNode annotatedNode,
java.util.Set<java.lang.String> classNamesToRetain,
java.util.Set<java.lang.String> classNamesToRemove)
public static void removeCompileStaticAnnotations(org.codehaus.groovy.ast.AnnotatedNode annotatedNode)
public static void markApplied(org.codehaus.groovy.ast.ASTNode astNode,
java.lang.Class<?> transformationClass)
public static boolean isApplied(org.codehaus.groovy.ast.ASTNode astNode,
java.lang.Class<?> transformationClass)
public static void processVariableScopes(org.codehaus.groovy.control.SourceUnit source,
org.codehaus.groovy.ast.ClassNode classNode)
public static void processVariableScopes(org.codehaus.groovy.control.SourceUnit source,
org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.MethodNode methodNode)
public static boolean isSetterOrGetterMethod(org.codehaus.groovy.ast.MethodNode md)