public class GeneralUtils extends Object
Handy methods when working with the Groovy AST
Type Params | Return Type | Name and description |
---|---|---|
|
public static BinaryExpression |
andX(Expression lhv, Expression rhv) |
|
public static ArgumentListExpression |
args(Expression expressions) |
|
public static ArgumentListExpression |
args(List<Expression> expressions) |
|
public static ArgumentListExpression |
args(Parameter parameters) |
|
public static ArgumentListExpression |
args(String names) |
|
public static CastExpression |
asX(ClassNode type, Expression expression) |
|
public static Statement |
assignNullS(Expression target) |
|
public static Statement |
assignS(Expression target, Expression value) |
|
public static Expression |
assignX(Expression target, Expression value) |
|
public static Expression |
attrX(Expression oe, Expression prop) |
|
public static BinaryExpression |
binX(Expression left, Token token, Expression right) |
|
public static BlockStatement |
block(VariableScope scope, Statement stmts) |
|
public static BlockStatement |
block(VariableScope scope, List<Statement> stmts) |
|
public static BlockStatement |
block(Statement stmts) |
|
public static BooleanExpression |
boolX(Expression expr) |
|
public static BytecodeExpression |
bytecodeX(Consumer<org.objectweb.asm.MethodVisitor> writer) |
|
public static BytecodeExpression |
bytecodeX(ClassNode type, Consumer<org.objectweb.asm.MethodVisitor> writer) |
|
public static MethodCallExpression |
callSuperX(String methodName) |
|
public static MethodCallExpression |
callSuperX(String methodName, Expression args) |
|
public static MethodCallExpression |
callThisX(String methodName) |
|
public static MethodCallExpression |
callThisX(String methodName, Expression args) |
|
public static MethodCallExpression |
callX(Expression receiver, String methodName) |
|
public static MethodCallExpression |
callX(Expression receiver, String methodName, Expression args) |
|
public static MethodCallExpression |
callX(Expression receiver, Expression method, Expression args) |
|
public static StaticMethodCallExpression |
callX(ClassNode receiver, String methodName) |
|
public static StaticMethodCallExpression |
callX(ClassNode receiver, String methodName, Expression args) |
|
public static CastExpression |
castX(ClassNode type, Expression expression) |
|
public static CastExpression |
castX(ClassNode type, Expression expression, boolean ignoreAutoboxing) |
|
public static CatchStatement |
catchS(Parameter variable, Statement code) |
|
public static ListExpression |
classList2args(List<String> args) |
|
public static ClassExpression |
classX(ClassNode clazz) |
|
public static ClassExpression |
classX(Class<?> clazz) |
|
public static Parameter[] |
cloneParams(Parameter[] parameters) |
|
public static ClosureExpression |
closureX(Parameter[] params, Statement code) |
|
public static ClosureExpression |
closureX(Statement code) |
|
public static BinaryExpression |
cmpX(Expression lhv, Expression rhv) Builds a binary expression that compares two values. |
|
public static ConstantExpression |
constX(Object val) |
|
public static ConstantExpression |
constX(Object val, boolean keepPrimitive) |
|
public static String |
convertASTToSource(ReaderSource readerSource, ASTNode expression) Converts an expression into the String source. |
|
public static void |
copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, List<AnnotationNode> copied, List<AnnotationNode> notCopied) Copies all candidateAnnotations with retention policy RetentionPolicy.RUNTIME and RetentionPolicy.CLASS. |
|
public static void |
copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, List<AnnotationNode> copied, List<AnnotationNode> notCopied, boolean includeGenerated) Copies all candidateAnnotations with retention policy RetentionPolicy.RUNTIME and RetentionPolicy.CLASS. |
|
public static boolean |
copyStatementsWithSuperAdjustment(ClosureExpression pre, BlockStatement body) |
|
public static Statement |
createConstructorStatementDefault(FieldNode fNode) |
|
public static Statement |
ctorSuperS(Expression args) |
|
public static Statement |
ctorSuperS() |
|
public static ConstructorCallExpression |
ctorSuperX(Expression args) |
|
public static ConstructorCallExpression |
ctorSuperX() |
|
public static Statement |
ctorThisS(Expression args) |
|
public static Statement |
ctorThisS() |
|
public static ConstructorCallExpression |
ctorThisX(Expression args) |
|
public static ConstructorCallExpression |
ctorThisX() |
|
public static ConstructorCallExpression |
ctorX(ClassNode type, Expression args) |
|
public static ConstructorCallExpression |
ctorX(ClassNode type) |
|
public static Statement |
declS(Expression target, Expression init) |
|
public static DeclarationExpression |
declX(Expression target, Expression init) |
|
public static MapEntryExpression |
entryX(Expression key, Expression value) |
|
public static BinaryExpression |
eqX(Expression lhv, Expression rhv) |
|
public static BooleanExpression |
equalsNullX(Expression argExpr) |
|
public static FieldExpression |
fieldX(FieldNode fieldNode) |
|
public static FieldExpression |
fieldX(ClassNode owner, String fieldName) |
|
public static Expression |
findArg(String argName) |
|
public static List<MethodNode> |
getAllMethods(ClassNode type) |
|
public static List<PropertyNode> |
getAllProperties(ClassNode type) |
|
public static List<PropertyNode> |
getAllProperties(Set<String> names, ClassNode cNode, boolean includeProperties, boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters, boolean traverseSuperClasses, boolean skipReadonly) |
|
public static List<PropertyNode> |
getAllProperties(Set<String> names, ClassNode origType, ClassNode cNode, boolean includeProperties, boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters, boolean traverseSuperClasses, boolean skipReadonly) |
|
public static List<PropertyNode> |
getAllProperties(Set<String> names, ClassNode origType, ClassNode cNode, boolean includeProperties, boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters, boolean traverseSuperClasses, boolean skipReadonly, boolean reverse, boolean allNames, boolean includeStatic) |
|
public static String |
getGetterName(PropertyNode pNode) |
|
public static List<String> |
getInstanceNonPropertyFieldNames(ClassNode cNode) |
|
public static List<FieldNode> |
getInstanceNonPropertyFields(ClassNode cNode) |
|
public static List<PropertyNode> |
getInstanceProperties(ClassNode cNode) |
|
public static List<FieldNode> |
getInstancePropertyFields(ClassNode cNode) |
|
public static List<String> |
getInstancePropertyNames(ClassNode cNode) |
|
public static Set<ClassNode> |
getInterfacesAndSuperInterfaces(ClassNode type) |
|
public static String |
getSetterName(String name) |
|
public static List<FieldNode> |
getSuperNonPropertyFields(ClassNode cNode) |
|
public static List<FieldNode> |
getSuperPropertyFields(ClassNode cNode) |
|
public static Expression |
getterThisX(ClassNode annotatedNode, PropertyNode 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 |
getterX(ClassNode annotatedNode, Expression receiver, PropertyNode 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(Expression instance, ClassNode cNode) |
|
public static boolean |
hasDeclaredMethod(ClassNode cNode, String name, int argsCount) |
|
public static BinaryExpression |
hasEqualFieldX(FieldNode fNode, Expression other) |
|
public static BinaryExpression |
hasEqualPropertyX(ClassNode annotatedNode, PropertyNode pNode, VariableExpression other) |
|
public static BinaryExpression |
hasEqualPropertyX(PropertyNode pNode, Expression other) |
|
public static BooleanExpression |
hasSameFieldX(FieldNode fNode, Expression other) |
|
public static BooleanExpression |
hasSamePropertyX(PropertyNode pNode, Expression other) |
|
public static IfStatement |
ifElseS(Expression cond, Statement thenStmt, Statement elseStmt) |
|
public static Statement |
ifElseS$$bridge(Expression cond, Statement thenStmt, Statement elseStmt) |
|
public static IfStatement |
ifS(Expression cond, Expression trueExpr) |
|
public static IfStatement |
ifS(Expression cond, Statement trueStmt) |
|
public static Statement |
ifS$$bridge(Expression cond, Expression trueExpr) |
|
public static Statement |
ifS$$bridge(Expression cond, Statement trueStmt) |
|
public static boolean |
inSamePackage(ClassNode first, ClassNode second) |
|
public static boolean |
inSamePackage(Class<?> first, Class<?> second) |
|
public static Expression |
indexX(Expression target, Expression value) |
|
public static boolean |
isDefaultVisibility(int modifiers) |
|
public static BooleanExpression |
isInstanceOfX(Expression objectExpression, ClassNode cNode) |
|
public static BooleanExpression |
isNullX(Expression expr) Alias for equalsNullX(Expression) |
|
public static BooleanExpression |
isOneX(Expression expr) |
|
public static boolean |
isOrImplements(ClassNode type, ClassNode interfaceType) |
|
public static BooleanExpression |
isTrueX(Expression argExpr) |
|
public static BooleanExpression |
isZeroX(Expression expr) |
|
public static ListExpression |
list2args(List<?> args) |
|
public static ListExpression |
listX(List<Expression> args) |
|
public static VariableExpression |
localVarX(String name) |
|
public static VariableExpression |
localVarX(String name, ClassNode type) |
|
public static BinaryExpression |
ltX(Expression lhv, Expression rhv) |
|
public static String |
makeDescriptorWithoutReturnType(MethodNode mn)
|
|
public static MapExpression |
mapX(List<MapEntryExpression> expressions) |
|
public static BinaryExpression |
neX(Expression lhv, Expression rhv) |
|
public static BinaryExpression |
notIdenticalX(Expression lhv, Expression rhv) |
|
public static BooleanExpression |
notNullX(Expression argExpr) |
|
public static NotExpression |
notX(Expression expr) |
|
public static ConstantExpression |
nullX() |
|
public static BinaryExpression |
orX(Expression lhv, Expression rhv) |
|
public static Parameter |
param(ClassNode type, String name) |
|
public static Parameter |
param(ClassNode type, String name, Expression initialExpression) |
|
public static Parameter[] |
params(Parameter params) |
|
public static BinaryExpression |
plusX(Expression lhv, Expression rhv) |
|
public static PropertyExpression |
propX(Expression owner, String property) |
|
public static PropertyExpression |
propX(Expression owner, Expression property) |
|
public static PropertyExpression |
propX(Expression owner, Expression property, boolean safe) |
|
public static Expression |
propX$$bridge(Expression owner, String property) |
|
public static Expression |
propX$$bridge(Expression owner, Expression property) |
|
public static Statement |
returnS(Expression expr) |
|
public static Statement |
safeExpression(Expression fieldExpr, Expression expression) |
|
public static BooleanExpression |
sameX(Expression self, Expression other) |
|
public static Statement |
stmt(Expression expr) |
|
public static TernaryExpression |
ternaryX(Expression cond, Expression trueExpr, Expression elseExpr) |
|
public static PropertyExpression |
thisPropX(boolean implicit, String property) |
|
public static ThrowStatement |
throwS(Expression expr) |
|
public static TryCatchStatement |
tryCatchS(Statement tryStatement) |
|
public static TryCatchStatement |
tryCatchS(Statement tryStatement, Statement finallyStatement) |
|
public static VariableExpression |
varX(String name) |
|
public static VariableExpression |
varX(Variable variable) |
|
public static VariableExpression |
varX(String name, ClassNode type) |
|
public void |
visit(org.objectweb.asm.MethodVisitor visitor) |
Builds a binary expression that compares two values.
lhv
- expression for the value to compare fromrhv
- expression for the value value to compare toConverts an expression into the String source. Only some specific expressions like closure expression support this.
readerSource
- a sourceexpression
- an expression. Can't be nullCopies all candidateAnnotations with retention policy RetentionPolicy.RUNTIME and RetentionPolicy.CLASS.
Annotations with GeneratedClosure members are not supported at present.
Copies all candidateAnnotations with retention policy RetentionPolicy.RUNTIME
and RetentionPolicy.CLASS.
Generated annotations will be copied if includeGenerated
is true.
Annotations with GeneratedClosure members are not supported at present.
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.
annotatedNode
- the class node where the property node is accessed frompNode
- the property being accessedThis 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.
annotatedNode
- the class node where the property node is accessed fromreceiver
- the object having the propertypNode
- the property being accessedAlias for equalsNullX(Expression)