Top Description Fields Constructors Methods
org.codehaus.groovy.ast.tools

public Class GeneralUtils

extends Object
Class Inheritance
Imports
groovy.lang.MetaProperty, org.codehaus.groovy.ast.ASTNode, .AnnotatedNode, .AnnotationNode, .ClassHelper, .ClassNode, .FieldNode, .MethodNode, .PackageNode, .Parameter, .PropertyNode, .Variable, .VariableScope, org.codehaus.groovy.ast.expr.ArgumentListExpression, .AttributeExpression, .BinaryExpression, .BooleanExpression, .CastExpression, .ClassExpression, .ClosureExpression, .ConstantExpression, .ConstructorCallExpression, .DeclarationExpression, .ElvisOperatorExpression, .Expression, .FieldExpression, .ListExpression, .MapEntryExpression, .MapExpression, .MethodCallExpression, .NotExpression, .PropertyExpression, .StaticMethodCallExpression, .TernaryExpression, .VariableExpression, org.codehaus.groovy.ast.stmt.BlockStatement, .CatchStatement, .EmptyStatement, .ExpressionStatement, .IfStatement, .ReturnStatement, .Statement, .ThrowStatement, .TryCatchStatement, org.codehaus.groovy.classgen.BytecodeExpression, org.codehaus.groovy.control.io.ReaderSource, org.codehaus.groovy.runtime.GeneratedClosure, org.codehaus.groovy.syntax.Token, .Types, org.codehaus.groovy.transform.AbstractASTTransformation, org.objectweb.asm.MethodVisitor, java.lang.reflect.Modifier, java.util.ArrayList, .Arrays, .Collections, .LinkedHashSet, .List, .Map, .Set, java.util.function.Consumer

Handy methods when working with the Groovy AST

Field Summary

Modifier and TypeField and Description
public static final Token
public static final Token
public static final Token
public static final Token
private static final Token
public static final Token
public static final Token
public static final Token
public static final Token
public static final Token
private static final Token

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private static void
addAllInterfaces(final Set<ClassNode> result, final ClassNode source)

public static BinaryExpression
andX(final Expression lhv, final Expression rhv)

public static ArgumentListExpression
args(final Expression... expressions)

public static ArgumentListExpression
args(final List<Expression> expressions)

public static ArgumentListExpression
args(final Parameter... parameters)

public static ArgumentListExpression
args(final String... names)

public static Statement
assignNullS(final Expression target)

public static Statement
assignS(final Expression target, final Expression value)

public static Expression
assignX(final Expression target, final Expression value)

public static CastExpression
asX(final ClassNode type, final Expression expression)

public static Expression
attrX(final Expression oe, final Expression prop)

public static BinaryExpression
binX(final Expression left, final Token token, final Expression right)

public static BlockStatement
block(final VariableScope scope, final Statement... stmts)

public static BlockStatement
block(final VariableScope scope, final List<Statement> stmts)

public static BlockStatement
block(final Statement... stmts)

public static BooleanExpression
boolX(final Expression expr)

public static BytecodeExpression
public static BytecodeExpression
bytecodeX(final ClassNode type, final Consumer<MethodVisitor> writer)

public static MethodCallExpression
callSuperX(final String methodName)

public static MethodCallExpression
callSuperX(final String methodName, final Expression args)

public static MethodCallExpression
callThisX(final String methodName)

public static MethodCallExpression
callThisX(final String methodName, final Expression args)

public static MethodCallExpression
callX(final Expression receiver, final String methodName)

public static MethodCallExpression
callX(final Expression receiver, final String methodName, final Expression args)

public static MethodCallExpression
callX(final Expression receiver, final Expression method, final Expression args)

public static StaticMethodCallExpression
callX(final ClassNode receiver, final String methodName)

public static StaticMethodCallExpression
callX(final ClassNode receiver, final String methodName, final Expression args)

public static CastExpression
castX(final ClassNode type, final Expression expression)

public static CastExpression
castX(final ClassNode type, final Expression expression, final boolean ignoreAutoboxing)

public static CatchStatement
catchS(final Parameter variable, final Statement code)

public static ListExpression
classList2args(final List<String> args)

public static ClassExpression
classX(final ClassNode clazz)

public static ClassExpression
classX(final Class<?> clazz)

public static Parameter[]
cloneParams(final Parameter[] parameters)

public static ClosureExpression
closureX(final Parameter[] params, final Statement code)

public static ClosureExpression
closureX(final Statement code)

public static BinaryExpression

Returns:

the expression comparing two values
cmpX
(final Expression
expression for the value to compare from
lhv
,
final Expression
expression for the value value to compare to
rhv
)

Builds a binary expression that compares two values.

public static ConstantExpression
constX(final Object val)

public static ConstantExpression
constX(final Object val, final boolean keepPrimitive)

public static String

Returns:

the source the closure was created from
convertASTToSource
(final ReaderSource
a source
readerSource
,
final ASTNode
an expression. Can't be null
expression
)

Converts an expression into the String source.

public static void
copyAnnotatedNodeAnnotations(final AnnotatedNode annotatedNode, final List<AnnotationNode> copied, final List<AnnotationNode> notCopied)

Copies all candidateAnnotations with retention policy java.lang.annotation.RetentionPolicy#RUNTIME and java.lang.annotation.RetentionPolicy#CLASS.

public static void
copyAnnotatedNodeAnnotations(final AnnotatedNode annotatedNode, final List<AnnotationNode> copied, final List<AnnotationNode> notCopied, final boolean includeGenerated)

Copies all candidateAnnotations with retention policy java.lang.annotation.RetentionPolicy#RUNTIME and java.lang.annotation.RetentionPolicy#CLASS.

public static boolean
public static Statement
public static Statement
ctorSuperS(final Expression args)

public static Statement
public static ConstructorCallExpression
public static ConstructorCallExpression
public static Statement
ctorThisS(final Expression args)

public static Statement
public static ConstructorCallExpression
public static ConstructorCallExpression
public static ConstructorCallExpression
ctorX(final ClassNode type, final Expression args)

public static ConstructorCallExpression
ctorX(final ClassNode type)

public static Statement
declS(final Expression target, final Expression init)

public static DeclarationExpression
declX(final Expression target, final Expression init)

public static ElvisOperatorExpression
elvisX(final Expression base, final Expression otherwise)

public static MapEntryExpression
entryX(final Expression key, final Expression value)

public static BooleanExpression
equalsNullX(final Expression argExpr)

public static BinaryExpression
eqX(final Expression lhv, final Expression rhv)

public static FieldExpression
fieldX(final FieldNode fieldNode)

public static FieldExpression
fieldX(final ClassNode owner, final String fieldName)

public static Expression
findArg(final String argName)

public static List<MethodNode>
public static List<PropertyNode>
public static List<PropertyNode>
getAllProperties(final Set<String> names, final ClassNode cNode, final boolean includeProperties, final boolean includeFields, final boolean includePseudoGetters, final boolean includePseudoSetters, final boolean traverseSuperClasses, final boolean skipReadonly)

public static List<PropertyNode>
getAllProperties(final Set<String> names, final ClassNode origType, final ClassNode cNode, final boolean includeProperties, final boolean includeFields, final boolean includePseudoGetters, final boolean includePseudoSetters, final boolean traverseSuperClasses, final boolean skipReadonly)

public static List<PropertyNode>
getAllProperties(final Set<String> names, final ClassNode origType, final ClassNode cNode, final boolean includeProperties, final boolean includeFields, final boolean includePseudoGetters, final boolean includePseudoSetters, final boolean traverseSuperClasses, final boolean skipReadonly, final boolean reverse, final boolean allNames, final boolean includeStatic)

public static String
public static List<String>
public static List<FieldNode>
public static List<PropertyNode>
public static List<FieldNode>
public static List<String>
public static Set<ClassNode>
public static String
getSetterName(final String name)

public static List<FieldNode>
public static List<FieldNode>
private static String
getterName(final ClassNode annotatedNode, final PropertyNode pNode)

public static Expression

Returns:

a method call expression or a property expression
getterThisX
(final ClassNode
the class node where the property node is accessed from
annotatedNode
,
final PropertyNode
the property being accessed
pNode
)

This method is similar to propX(Expression, Expression) but will make sure that if the property being accessed is defined inside the classnode provided as a parameter, then a getter call is generated instead of a field access.

public static Expression

Returns:

a method call expression or a property expression
getterX
(final ClassNode
the class node where the property node is accessed from
annotatedNode
,
final Expression
the object having the property
receiver
,
final PropertyNode
the property being accessed
pNode
)

This method is similar to propX(Expression, Expression) but will make sure that if the property being accessed is defined inside the classnode provided as a parameter, then a getter call is generated instead of a field access.

public static BinaryExpression
hasClassX(final Expression instance, final ClassNode cNode)

private static boolean
hasClosureMember(final AnnotationNode annotation)

public static boolean
hasDeclaredMethod(final ClassNode cNode, final String name, final int argsCount)

public static BinaryExpression
hasEqualFieldX(final FieldNode fNode, final Expression other)

public static BinaryExpression
hasEqualPropertyX(final ClassNode annotatedNode, final PropertyNode pNode, final VariableExpression other)

public static BinaryExpression
hasEqualPropertyX(final PropertyNode pNode, final Expression other)

Deprecated
public static BooleanExpression
hasSameFieldX(final FieldNode fNode, final Expression other)

public static BooleanExpression
hasSamePropertyX(final PropertyNode pNode, final Expression other)

public static IfStatement
ifElseS(final Expression cond, final Statement thenStmt, final Statement elseStmt)

public static Statement
ifElseS$$bridge(final Expression cond, final Statement thenStmt, final Statement elseStmt)

Deprecated
public static IfStatement
ifS(final Expression cond, final Expression trueExpr)

public static IfStatement
ifS(final Expression cond, final Statement trueStmt)

public static Statement
ifS$$bridge(final Expression cond, final Expression trueExpr)

Deprecated
public static Statement
ifS$$bridge(final Expression cond, final Statement trueStmt)

Deprecated
public static Expression
indexX(final Expression target, final Expression value)

public static boolean
inSamePackage(final ClassNode first, final ClassNode second)

public static boolean
inSamePackage(final Class<?> first, final Class<?> second)

public static boolean
isDefaultVisibility(final int modifiers)

public static BooleanExpression
isInstanceOfX(final Expression objectExpression, final ClassNode cNode)

public static BooleanExpression
public static BooleanExpression
isOneX(final Expression expr)

public static boolean
isOrImplements(final ClassNode type, final ClassNode interfaceType)

public static BooleanExpression
isTrueX(final Expression argExpr)

public static BooleanExpression
isZeroX(final Expression expr)

public static ListExpression
list2args(final List<?> args)

public static ListExpression
listX(final List<Expression> args)

public static VariableExpression
localVarX(final String name)

public static VariableExpression
localVarX(final String name, final ClassNode type)

public static BinaryExpression
ltX(final Expression lhv, final Expression rhv)

public static String
makeDescriptorWithoutReturnType(final MethodNode mn)

Deprecated use MethodNodeUtils#methodDescriptorWithoutReturnType(MethodNode) instead
public static MapExpression
mapX(final List<MapEntryExpression> expressions)

public static BinaryExpression
neX(final Expression lhv, final Expression rhv)

public static BinaryExpression
notIdenticalX(final Expression lhv, final Expression rhv)

public static BooleanExpression
notNullX(final Expression argExpr)

public static NotExpression
notX(final Expression expr)

public static ConstantExpression
public static BinaryExpression
orX(final Expression lhv, final Expression rhv)

public static Parameter
param(final ClassNode type, final String name)

public static Parameter
param(final ClassNode type, final String name, final Expression initialExpression)

public static Parameter[]
params(final Parameter... params)

public static BinaryExpression
plusX(final Expression lhv, final Expression rhv)

public static PropertyExpression
propX(final Expression owner, final String property)

public static PropertyExpression
propX(final Expression owner, final Expression property)

public static PropertyExpression
propX(final Expression owner, final Expression property, final boolean safe)

public static Expression
propX$$bridge(final Expression owner, final String property)

Deprecated
public static Expression
propX$$bridge(final Expression owner, final Expression property)

Deprecated
public static Statement
returnS(final Expression expr)

public static Statement
safeExpression(final Expression fieldExpr, final Expression expression)

public static BooleanExpression
sameX(final Expression self, final Expression other)

public static Statement
stmt(final Expression expr)

public static TernaryExpression
ternaryX(final Expression cond, final Expression trueExpr, final Expression elseExpr)

public static PropertyExpression
thisPropX(final boolean implicit, final String property)

public static ThrowStatement
throwS(final Expression expr)

public static TryCatchStatement
tryCatchS(final Statement tryStatement)

public static TryCatchStatement
tryCatchS(final Statement tryStatement, final Statement finallyStatement)

public static TryCatchStatement
tryCatchS(final Statement tryStatement, final Statement finallyStatement, final CatchStatement... catchStatements)

public static VariableExpression
varX(final String name)

public static VariableExpression
varX(final Variable variable)

public static VariableExpression
varX(final String name, final ClassNode type)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait