public class AstUtil extends Object
Modifier and Type | Field and Description |
---|---|
static List<String> |
AUTO_IMPORTED_CLASSES |
static List<String> |
AUTO_IMPORTED_PACKAGES |
static List<String> |
COMPARISON_OPERATORS |
Modifier and Type | Method and Description |
---|---|
static boolean |
classNodeHasProperty(org.codehaus.groovy.ast.ClassNode classNode,
String propertyName) |
static boolean |
classNodeImplementsType(org.codehaus.groovy.ast.ClassNode node,
Class target)
This method tells you if a ClassNode implements or extends a certain class.
|
static String |
createPrettyExpression(org.codehaus.groovy.ast.ASTNode expression) |
static boolean |
expressionIsAssignment(org.codehaus.groovy.ast.ASTNode node,
String variableName) |
static boolean |
expressionIsNullCheck(org.codehaus.groovy.ast.ASTNode node) |
static int |
findFirstNonAnnotationLine(org.codehaus.groovy.ast.ASTNode node,
SourceCode sourceCode)
gets the first non annotation line number of a node, taking into account annotations.
|
static org.codehaus.groovy.ast.AnnotationNode |
getAnnotation(org.codehaus.groovy.ast.AnnotatedNode node,
String name)
Return the AnnotationNode for the named annotation, or else null.
|
static List<String> |
getArgumentNames(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall)
Gets the argument names of a method call.
|
static String |
getDeclaration(org.codehaus.groovy.ast.ASTNode node,
SourceCode sourceCode) |
static org.codehaus.groovy.ast.ASTNode |
getEmptyBlock(org.codehaus.groovy.ast.stmt.Statement origStatement) |
static Class |
getFieldType(org.codehaus.groovy.ast.ClassNode node,
String fieldName)
Supports discovering many common JDK types, but not all.
|
static Class |
getFieldType(org.codehaus.groovy.ast.FieldNode field)
Supports discovering many common JDK types, but not all.
|
static String |
getInstanceOfTarget(Object expression) |
static List<? extends org.codehaus.groovy.ast.expr.Expression> |
getMethodArguments(org.codehaus.groovy.ast.ASTNode methodCall)
Return the List of Arguments for the specified MethodCallExpression or a ConstructorCallExpression.
|
static String |
getNodeText(org.codehaus.groovy.ast.ASTNode expression,
SourceCode sourceCode) |
static String |
getNullComparisonTarget(Object expression) |
static List<String> |
getParameterNames(org.codehaus.groovy.ast.MethodNode node)
Gets the parameter names of a method node.
|
static String |
getRawLine(SourceCode sourceCode,
int lineNumber) |
static List<org.codehaus.groovy.ast.expr.Expression> |
getVariableExpressions(org.codehaus.groovy.ast.expr.DeclarationExpression declarationExpression)
Return the List of VariableExpression objects referenced by the specified DeclarationExpression.
|
static boolean |
hasAnnotation(org.codehaus.groovy.ast.AnnotatedNode node,
String name)
Return true only if the node has the named annotation
|
static boolean |
hasAnyAnnotation(org.codehaus.groovy.ast.AnnotatedNode node,
String... names)
Return true only if the node has any of the named annotations
|
static boolean |
isBinaryExpressionType(org.codehaus.groovy.ast.expr.Expression expression,
List<String> tokens)
Returns true if the expression is a binary expression with the specified token.
|
static boolean |
isBinaryExpressionType(org.codehaus.groovy.ast.expr.Expression expression,
String token)
Returns true if the expression is a binary expression with the specified token.
|
static boolean |
isBlock(org.codehaus.groovy.ast.stmt.Statement statement)
Return true if the Statement is a block
|
static boolean |
isBoolean(org.codehaus.groovy.ast.expr.Expression expression)
Tells you if the expression is either the true or false literal.
|
static boolean |
isClosureDeclaration(org.codehaus.groovy.ast.ASTNode expression)
Returns true if the ASTNode is a declaration of a closure, either as a declaration
or a field.
|
static boolean |
isConstant(org.codehaus.groovy.ast.expr.Expression expression,
Object expected)
Tells you if an expression is the expected constant.
|
static boolean |
isConstantOrConstantLiteral(org.codehaus.groovy.ast.expr.Expression expression)
Returns true if an expression is a constant or else a literal that contains only constant values.
|
static boolean |
isConstantOrLiteral(org.codehaus.groovy.ast.expr.Expression expression)
Tells you if an expression is a constant or literal.
|
static boolean |
isConstructorCall(org.codehaus.groovy.ast.expr.Expression expression,
List<String> classNames)
Return true if the expression is a constructor call on any of the named classes, with any number of parameters.
|
static boolean |
isConstructorCall(org.codehaus.groovy.ast.expr.Expression expression,
String classNamePattern)
Return true if the expression is a constructor call on a class that matches the supplied.
|
static boolean |
isEmptyBlock(org.codehaus.groovy.ast.stmt.Statement origStatement)
Return true if the Statement is a block and it is empty (contains no "meaningful" statements).
|
static boolean |
isFalse(org.codehaus.groovy.ast.expr.Expression expression)
Tells you if the expression is the false expression, either literal or contant.
|
static boolean |
isFinalVariable(org.codehaus.groovy.ast.expr.DeclarationExpression declarationExpression,
SourceCode sourceCode)
Return true if the DeclarationExpression represents a 'final' variable declaration.
|
static boolean |
isFromGeneratedSourceCode(org.codehaus.groovy.ast.ASTNode node) |
static boolean |
isInstanceOfCheck(Object expression) |
static boolean |
isListLiteralWithOnlyConstantValues(org.codehaus.groovy.ast.expr.Expression expression)
Returns true if a List literal that contains only entries that are constants.
|
static boolean |
isMapLiteralWithOnlyConstantValues(org.codehaus.groovy.ast.expr.Expression expression)
Returns true if a Map literal that contains only entries where both key and value are constants.
|
static boolean |
isMethodCall(org.codehaus.groovy.ast.expr.Expression expression,
String methodName,
int numArguments)
Tells you if the expression is a method call for a certain method name with a certain
number of arguments.
|
static boolean |
isMethodCall(org.codehaus.groovy.ast.expr.Expression expression,
String methodName,
groovy.lang.Range numArguments)
Tells you if the expression is a method call for a certain method name with a certain
number of arguments.
|
static boolean |
isMethodCall(org.codehaus.groovy.ast.expr.Expression expression,
String methodObjectPattern,
String methodNamePattern)
Return true only if the expression represents a method call (MethodCallExpression) for the specified
method object (receiver) and method name.
|
static boolean |
isMethodCall(org.codehaus.groovy.ast.expr.Expression expression,
String methodObject,
String methodName,
int numArguments)
Return true only if the expression is a MethodCallExpression representing a method call for the specified
method object (receiver), method name, and with the specified number of arguments.
|
static boolean |
isMethodCall(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall,
List<String> methodObjects,
List<String> methodNames) |
static boolean |
isMethodCall(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall,
List<String> methodObjects,
List<String> methodNames,
Integer numArguments)
Return true only if the MethodCallExpression represents a method call for any one of the specified method
objects (receivers) and any one of the method names.
|
static boolean |
isMethodCall(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall,
String methodObjectPattern,
String methodPattern,
int numArguments)
Return true only if the MethodCallExpression represents a method call for the specified method object (receiver),
method name, and with the specified number of arguments.
|
static boolean |
isMethodCall(org.codehaus.groovy.ast.stmt.Statement stmt,
String methodObject,
String methodName,
int numArguments)
Return true only if the Statement represents a method call for the specified method object (receiver),
method name, and with the specified number of arguments.
|
static boolean |
isMethodCallOnObject(org.codehaus.groovy.ast.expr.Expression expression,
String methodObjectPattern)
Tells you if the expression is a method call on a particular object (which is represented as a String).
|
static boolean |
isMethodNamed(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall,
String methodNamePattern) |
static boolean |
isMethodNamed(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall,
String methodNamePattern,
Integer numArguments)
Return true only if the MethodCallExpression represents a method call for the specified method name
|
static boolean |
isMethodNode(org.codehaus.groovy.ast.ASTNode node,
String methodNamePattern) |
static boolean |
isMethodNode(org.codehaus.groovy.ast.ASTNode node,
String methodNamePattern,
Integer numArguments) |
static boolean |
isMethodNode(org.codehaus.groovy.ast.ASTNode node,
String methodNamePattern,
Integer numArguments,
Class returnType)
Tells you if the ASTNode is a method node for the given name, arity, and return type.
|
static boolean |
isNotNullCheck(Object expression) |
static boolean |
isNull(org.codehaus.groovy.ast.ASTNode expression)
Tells you if the expression is the null literal.
|
static boolean |
isNullCheck(Object expression) |
static boolean |
isOneLiner(Object statement) |
static boolean |
isPropertyNamed(org.codehaus.groovy.ast.expr.Expression property,
Object expectedName) |
static boolean |
isPublic(org.codehaus.groovy.ast.ASTNode node)
Tells you if the ASTNode has a public modifier on it.
|
static boolean |
isSafe(org.codehaus.groovy.ast.expr.Expression expression)
Tells you if the expression is a null safe dereference.
|
static boolean |
isSpreadSafe(org.codehaus.groovy.ast.expr.Expression expression)
Tells you if the expression is a spread operator call
|
static boolean |
isSuperReference(org.codehaus.groovy.ast.expr.Expression expression) |
static boolean |
isThisReference(org.codehaus.groovy.ast.expr.Expression expression) |
static boolean |
isTrue(org.codehaus.groovy.ast.expr.Expression expression)
Tells you if the expression is true, which can be true or Boolean.TRUE.
|
static boolean |
isVariable(org.codehaus.groovy.ast.ASTNode expression,
String pattern)
Tells you if the given ASTNode is a VariableExpression with the given name.
|
static boolean |
respondsTo(Object object,
String methodName)
Return true only if the specified object responds to the named method
|
public static boolean isConstantOrLiteral(org.codehaus.groovy.ast.expr.Expression expression)
expression
- any expressionpublic static boolean isConstantOrConstantLiteral(org.codehaus.groovy.ast.expr.Expression expression)
expression
- - any expressionpublic static boolean isMapLiteralWithOnlyConstantValues(org.codehaus.groovy.ast.expr.Expression expression)
expression
- - any expressionpublic static boolean isListLiteralWithOnlyConstantValues(org.codehaus.groovy.ast.expr.Expression expression)
expression
- - any expressionpublic static boolean isConstant(org.codehaus.groovy.ast.expr.Expression expression, Object expected)
expression
- any expressionexpected
- the expected int or Stringpublic static boolean isPropertyNamed(org.codehaus.groovy.ast.expr.Expression property, Object expectedName)
public static boolean isBlock(org.codehaus.groovy.ast.stmt.Statement statement)
statement
- - the Statement to checkpublic static boolean isEmptyBlock(org.codehaus.groovy.ast.stmt.Statement origStatement)
origStatement
- - the Statement to checkpublic static org.codehaus.groovy.ast.ASTNode getEmptyBlock(org.codehaus.groovy.ast.stmt.Statement origStatement)
public static List<? extends org.codehaus.groovy.ast.expr.Expression> getMethodArguments(org.codehaus.groovy.ast.ASTNode methodCall)
methodCall
- - the AST MethodCallExpression or ConstructorCalLExpressionpublic static boolean isMethodCallOnObject(org.codehaus.groovy.ast.expr.Expression expression, String methodObjectPattern)
expression
- - the expressionmethodObjectPattern
- - the name of the method object (receiver) such as 'this'public static boolean isMethodCall(org.codehaus.groovy.ast.stmt.Statement stmt, String methodObject, String methodName, int numArguments)
stmt
- - the AST StatementmethodObject
- - the name of the method object (receiver)methodName
- - the name of the method being callednumArguments
- - the number of arguments passed into the methodpublic static boolean isMethodCall(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall, String methodObjectPattern, String methodPattern, int numArguments)
methodCall
- - the AST MethodCallExpressionmethodObjectPattern
- - the name of the method object (receiver)methodPattern
- - the name of the method being callednumArguments
- - the number of arguments passed into the methodpublic static boolean isMethodCall(org.codehaus.groovy.ast.expr.Expression expression, String methodObject, String methodName, int numArguments)
expression
- - the AST expressionmethodObject
- - the name of the method object (receiver)methodName
- - the name of the method being callednumArguments
- - the number of arguments passed into the methodpublic static boolean isMethodCall(org.codehaus.groovy.ast.expr.Expression expression, String methodObjectPattern, String methodNamePattern)
expression
- - the AST expression to be checkedmethodObjectPattern
- - the name of the method object (receiver)methodNamePattern
- - the name of the method being calledpublic static boolean isMethodCall(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall, List<String> methodObjects, List<String> methodNames, Integer numArguments)
methodCall
- the method call objectmethodObjects
- a list of receivers, such as ['this', 'super']methodNames
- a list of method namesnumArguments
- optionally, require a certain number of argumentspublic static boolean isMethodCall(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall, List<String> methodObjects, List<String> methodNames)
public static boolean isMethodCall(org.codehaus.groovy.ast.expr.Expression expression, String methodName, int numArguments)
expression
- the (potentially) method callmethodName
- the name of the method expectednumArguments
- number of expected argumentspublic static boolean isMethodCall(org.codehaus.groovy.ast.expr.Expression expression, String methodName, groovy.lang.Range numArguments)
expression
- the (potentially) method callmethodName
- the name of the method expectednumArguments
- number of expected argumentspublic static boolean isMethodNamed(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall, String methodNamePattern, Integer numArguments)
methodCall
- - the AST MethodCallExpressionmethodNamePattern
- - the expected name of the method being callednumArguments
- - The number of expected argumentspublic static boolean isMethodNamed(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall, String methodNamePattern)
public static boolean isConstructorCall(org.codehaus.groovy.ast.expr.Expression expression, List<String> classNames)
expression
- - the expressionclassNames
- - the possible List of class namespublic static boolean isConstructorCall(org.codehaus.groovy.ast.expr.Expression expression, String classNamePattern)
expression
- - the expressionclassNamePattern
- - the possible List of class namespublic static org.codehaus.groovy.ast.AnnotationNode getAnnotation(org.codehaus.groovy.ast.AnnotatedNode node, String name)
node
- - the AnnotatedNodename
- - the name of the annotationpublic static boolean hasAnnotation(org.codehaus.groovy.ast.AnnotatedNode node, String name)
node
- - the AST Node to checkname
- - the name of the annotationpublic static boolean hasAnyAnnotation(org.codehaus.groovy.ast.AnnotatedNode node, String... names)
node
- - the AST Node to checknames
- - the names of the annotationspublic static List<org.codehaus.groovy.ast.expr.Expression> getVariableExpressions(org.codehaus.groovy.ast.expr.DeclarationExpression declarationExpression)
declarationExpression
- - the DeclarationExpressionpublic static boolean isFinalVariable(org.codehaus.groovy.ast.expr.DeclarationExpression declarationExpression, SourceCode sourceCode)
public static boolean isFromGeneratedSourceCode(org.codehaus.groovy.ast.ASTNode node)
public static boolean isTrue(org.codehaus.groovy.ast.expr.Expression expression)
expression
- expressionpublic static boolean isBoolean(org.codehaus.groovy.ast.expr.Expression expression)
expression
- expressionpublic static boolean isNull(org.codehaus.groovy.ast.ASTNode expression)
expression
- expression.public static boolean isFalse(org.codehaus.groovy.ast.expr.Expression expression)
expression
- expressionpublic static boolean respondsTo(Object object, String methodName)
object
- - the object to checkmethodName
- - the name of the methodpublic static boolean classNodeImplementsType(org.codehaus.groovy.ast.ClassNode node, Class target)
node
- the nodetarget
- the classpublic static boolean isClosureDeclaration(org.codehaus.groovy.ast.ASTNode expression)
expression
- the target expressionpublic static List<String> getParameterNames(org.codehaus.groovy.ast.MethodNode node)
node
- the node to search parameter names onpublic static List<String> getArgumentNames(org.codehaus.groovy.ast.expr.MethodCallExpression methodCall)
methodCall
- the method call to searchpublic static boolean isBinaryExpressionType(org.codehaus.groovy.ast.expr.Expression expression, String token)
expression
- expressiontoken
- tokenpublic static boolean isBinaryExpressionType(org.codehaus.groovy.ast.expr.Expression expression, List<String> tokens)
expression
- - the expression nodetokens
- - the List of allowable (operator) tokenspublic static boolean isSafe(org.codehaus.groovy.ast.expr.Expression expression)
expression
- expressionpublic static boolean isSpreadSafe(org.codehaus.groovy.ast.expr.Expression expression)
expression
- expressionpublic static boolean isMethodNode(org.codehaus.groovy.ast.ASTNode node, String methodNamePattern, Integer numArguments, Class returnType)
node
- the node to inspectmethodNamePattern
- the expected name of the methodnumArguments
- the expected number of arguments, optionalreturnType
- the expected return type, optionalpublic static boolean isMethodNode(org.codehaus.groovy.ast.ASTNode node, String methodNamePattern, Integer numArguments)
public static boolean isMethodNode(org.codehaus.groovy.ast.ASTNode node, String methodNamePattern)
public static boolean isVariable(org.codehaus.groovy.ast.ASTNode expression, String pattern)
expression
- any AST Nodepattern
- a string pattern to matchpublic static boolean isPublic(org.codehaus.groovy.ast.ASTNode node)
node
- node to querypublic static boolean isNotNullCheck(Object expression)
public static boolean isNullCheck(Object expression)
public static boolean isInstanceOfCheck(Object expression)
public static Class getFieldType(org.codehaus.groovy.ast.ClassNode node, String fieldName)
public static Class getFieldType(org.codehaus.groovy.ast.FieldNode field)
public static boolean isThisReference(org.codehaus.groovy.ast.expr.Expression expression)
public static boolean isSuperReference(org.codehaus.groovy.ast.expr.Expression expression)
public static boolean classNodeHasProperty(org.codehaus.groovy.ast.ClassNode classNode, String propertyName)
public static int findFirstNonAnnotationLine(org.codehaus.groovy.ast.ASTNode node, SourceCode sourceCode)
public static String getRawLine(SourceCode sourceCode, int lineNumber)
public static boolean isOneLiner(Object statement)
public static boolean expressionIsNullCheck(org.codehaus.groovy.ast.ASTNode node)
public static boolean expressionIsAssignment(org.codehaus.groovy.ast.ASTNode node, String variableName)
public static String getNodeText(org.codehaus.groovy.ast.ASTNode expression, SourceCode sourceCode)
public static String getDeclaration(org.codehaus.groovy.ast.ASTNode node, SourceCode sourceCode)
public static String createPrettyExpression(org.codehaus.groovy.ast.ASTNode expression)
Copyright © 2022. All rights reserved.