Package org.codehaus.groovy.ast.tools
Class GeneralUtils
- java.lang.Object
-
- org.codehaus.groovy.ast.tools.GeneralUtils
-
public class GeneralUtils extends java.lang.ObjectHandy methods when working with the Groovy AST
-
-
Constructor Summary
Constructors Constructor Description GeneralUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static BinaryExpressionandX(Expression lhv, Expression rhv)static ArgumentListExpressionargs(java.lang.String... names)static ArgumentListExpressionargs(java.util.List<Expression> expressions)static ArgumentListExpressionargs(Expression... expressions)static ArgumentListExpressionargs(Parameter[] parameters)static StatementassignNullS(Expression target)static StatementassignS(Expression target, Expression value)static ExpressionassignX(Expression target, Expression value)static ExpressionattrX(Expression oe, Expression prop)static BinaryExpressionbinX(Expression left, Token token, Expression right)static BlockStatementblock(Statement... stmts)static BlockStatementblock(VariableScope scope, java.util.List<Statement> stmts)static BlockStatementblock(VariableScope scope, Statement... stmts)static BooleanExpressionboolX(Expression expr)static MethodCallExpressioncallSuperX(java.lang.String methodName)static MethodCallExpressioncallSuperX(java.lang.String methodName, Expression args)static MethodCallExpressioncallThisX(java.lang.String methodName)static MethodCallExpressioncallThisX(java.lang.String methodName, Expression args)static StaticMethodCallExpressioncallX(ClassNode receiver, java.lang.String methodName)static StaticMethodCallExpressioncallX(ClassNode receiver, java.lang.String methodName, Expression args)static MethodCallExpressioncallX(Expression receiver, java.lang.String methodName)static MethodCallExpressioncallX(Expression receiver, java.lang.String methodName, Expression args)static MethodCallExpressioncallX(Expression receiver, Expression method, Expression args)static CastExpressioncastX(ClassNode type, Expression expression)static CastExpressioncastX(ClassNode type, Expression expression, boolean ignoreAutoboxing)static CatchStatementcatchS(Parameter variable, Statement code)static ListExpressionclassList2args(java.util.List<java.lang.String> args)static ClassExpressionclassX(java.lang.Class clazz)static ClassExpressionclassX(ClassNode clazz)static Parameter[]cloneParams(Parameter[] source)static ClosureExpressionclosureX(Parameter[] params, Statement code)static ClosureExpressionclosureX(Statement code)static BinaryExpressioncmpX(Expression lhv, Expression rhv)Builds a binary expression that compares two values.static ConstantExpressionconstX(java.lang.Object val)static ConstantExpressionconstX(java.lang.Object val, boolean keepPrimitive)static java.lang.StringconvertASTToSource(ReaderSource readerSource, ASTNode expression)Converts an expression into the String source.static voidcopyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, java.util.List<AnnotationNode> copied, java.util.List<AnnotationNode> notCopied)Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIMEandRetentionPolicy.CLASS.static voidcopyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, java.util.List<AnnotationNode> copied, java.util.List<AnnotationNode> notCopied, boolean includeGenerated)Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIMEandRetentionPolicy.CLASS.static booleancopyStatementsWithSuperAdjustment(ClosureExpression pre, BlockStatement body)static StatementcreateConstructorStatementDefault(FieldNode fNode)static StatementctorSuperS()static StatementctorSuperS(Expression args)static ConstructorCallExpressionctorSuperX()static ConstructorCallExpressionctorSuperX(Expression args)static StatementctorThisS()static StatementctorThisS(Expression args)static ConstructorCallExpressionctorThisX()static ConstructorCallExpressionctorThisX(Expression args)static ConstructorCallExpressionctorX(ClassNode type)static ConstructorCallExpressionctorX(ClassNode type, Expression args)static StatementdeclS(Expression target, Expression init)static DeclarationExpressiondeclX(Expression target, Expression init)static MapEntryExpressionentryX(Expression key, Expression value)static BooleanExpressionequalsNullX(Expression argExpr)static BinaryExpressioneqX(Expression lhv, Expression rhv)static FieldExpressionfieldX(ClassNode owner, java.lang.String fieldName)static FieldExpressionfieldX(FieldNode fieldNode)static ExpressionfindArg(java.lang.String argName)static java.util.List<MethodNode>getAllMethods(ClassNode type)static java.util.List<PropertyNode>getAllProperties(java.util.Set<java.lang.String> names, ClassNode cNode, boolean includeProperties, boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters, boolean traverseSuperClasses, boolean skipReadonly)static java.util.List<PropertyNode>getAllProperties(java.util.Set<java.lang.String> names, ClassNode origType, ClassNode cNode, boolean includeProperties, boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters, boolean traverseSuperClasses, boolean skipReadonly)static java.util.List<PropertyNode>getAllProperties(java.util.Set<java.lang.String> names, ClassNode origType, ClassNode cNode, boolean includeProperties, boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters, boolean traverseSuperClasses, boolean skipReadonly, boolean reverse, boolean allNames, boolean includeStatic)static java.util.List<PropertyNode>getAllProperties(ClassNode type)static java.lang.StringgetGetterName(PropertyNode pNode)static java.util.List<java.lang.String>getInstanceNonPropertyFieldNames(ClassNode cNode)static java.util.List<FieldNode>getInstanceNonPropertyFields(ClassNode cNode)static java.util.List<PropertyNode>getInstanceProperties(ClassNode cNode)static java.util.List<FieldNode>getInstancePropertyFields(ClassNode cNode)static java.util.List<java.lang.String>getInstancePropertyNames(ClassNode cNode)static java.util.Set<ClassNode>getInterfacesAndSuperInterfaces(ClassNode cNode)static java.lang.StringgetSetterName(java.lang.String name)static java.util.List<FieldNode>getSuperNonPropertyFields(ClassNode cNode)static java.util.List<FieldNode>getSuperPropertyFields(ClassNode cNode)static ExpressiongetterThisX(ClassNode annotatedNode, PropertyNode pNode)This method is similar topropX(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.static ExpressiongetterX(ClassNode annotatedNode, Expression receiver, PropertyNode pNode)This method is similar topropX(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.static BinaryExpressionhasClassX(Expression instance, ClassNode cNode)static booleanhasDeclaredMethod(ClassNode cNode, java.lang.String name, int argsCount)static BinaryExpressionhasEqualFieldX(FieldNode fNode, Expression other)static BinaryExpressionhasEqualPropertyX(ClassNode annotatedNode, PropertyNode pNode, VariableExpression other)static BinaryExpressionhasEqualPropertyX(PropertyNode pNode, Expression other)Deprecated.static BooleanExpressionhasSameFieldX(FieldNode fNode, Expression other)static BooleanExpressionhasSamePropertyX(PropertyNode pNode, Expression other)static IfStatementifElseS(Expression cond, Statement thenStmt, Statement elseStmt)static StatementifElseS$$bridge(Expression cond, Statement thenStmt, Statement elseStmt)Deprecated.static IfStatementifS(Expression cond, Expression trueExpr)static IfStatementifS(Expression cond, Statement trueStmt)static StatementifS$$bridge(Expression cond, Expression trueExpr)Deprecated.static StatementifS$$bridge(Expression cond, Statement trueStmt)Deprecated.static ExpressionindexX(Expression target, Expression value)static booleaninSamePackage(java.lang.Class first, java.lang.Class second)static booleaninSamePackage(ClassNode first, ClassNode second)static booleanisDefaultVisibility(int modifiers)static BooleanExpressionisInstanceOfX(Expression objectExpression, ClassNode cNode)static BooleanExpressionisNullX(Expression expr)Alias forequalsNullX(Expression)static BooleanExpressionisOneX(Expression expr)static booleanisOrImplements(ClassNode type, ClassNode interfaceType)static BooleanExpressionisTrueX(Expression argExpr)static BooleanExpressionisZeroX(Expression expr)static ListExpressionlist2args(java.util.List args)static ListExpressionlistX(java.util.List<Expression> args)static VariableExpressionlocalVarX(java.lang.String name)static VariableExpressionlocalVarX(java.lang.String name, ClassNode type)static BinaryExpressionltX(Expression lhv, Expression rhv)static java.lang.StringmakeDescriptorWithoutReturnType(MethodNode mn)Deprecated.use MethodNodeUtils#methodDescriptorWithoutReturnType(MethodNode) insteadstatic MapExpressionmapX(java.util.List<MapEntryExpression> expressions)static BinaryExpressionneX(Expression lhv, Expression rhv)static BooleanExpressionnotNullX(Expression argExpr)static NotExpressionnotX(Expression expr)static ConstantExpressionnullX()static BinaryExpressionorX(Expression lhv, Expression rhv)static Parameterparam(ClassNode type, java.lang.String name)static Parameterparam(ClassNode type, java.lang.String name, Expression initialExpression)static Parameter[]params(Parameter... params)static BinaryExpressionplusX(Expression lhv, Expression rhv)static ExpressionpropX(Expression owner, java.lang.String property)static ExpressionpropX(Expression owner, Expression property)static PropertyExpressionpropX(Expression owner, Expression property, boolean safe)static StatementreturnS(Expression expr)static StatementsafeExpression(Expression fieldExpr, Expression expression)static BooleanExpressionsameX(Expression self, Expression other)static Statementstmt(Expression expr)static TernaryExpressionternaryX(Expression cond, Expression trueExpr, Expression elseExpr)static PropertyExpressionthisPropX(boolean implicit, java.lang.String property)static ThrowStatementthrowS(Expression expr)static TryCatchStatementtryCatchS(Statement tryStatement)static TryCatchStatementtryCatchS(Statement tryStatement, Statement finallyStatement)static TryCatchStatementtryCatchS(Statement tryStatement, Statement finallyStatement, CatchStatement... catchStatements)static VariableExpressionvarX(java.lang.String name)static VariableExpressionvarX(java.lang.String name, ClassNode type)static VariableExpressionvarX(Variable variable)
-
-
-
Method Detail
-
andX
public static BinaryExpression andX(Expression lhv, Expression rhv)
-
args
public static ArgumentListExpression args(Expression... expressions)
-
args
public static ArgumentListExpression args(java.util.List<Expression> expressions)
-
args
public static ArgumentListExpression args(Parameter[] parameters)
-
args
public static ArgumentListExpression args(java.lang.String... names)
-
assignNullS
public static Statement assignNullS(Expression target)
-
assignS
public static Statement assignS(Expression target, Expression value)
-
assignX
public static Expression assignX(Expression target, Expression value)
-
attrX
public static Expression attrX(Expression oe, Expression prop)
-
binX
public static BinaryExpression binX(Expression left, Token token, Expression right)
-
block
public static BlockStatement block(VariableScope scope, Statement... stmts)
-
block
public static BlockStatement block(VariableScope scope, java.util.List<Statement> stmts)
-
block
public static BlockStatement block(Statement... stmts)
-
boolX
public static BooleanExpression boolX(Expression expr)
-
callSuperX
public static MethodCallExpression callSuperX(java.lang.String methodName)
-
callSuperX
public static MethodCallExpression callSuperX(java.lang.String methodName, Expression args)
-
callThisX
public static MethodCallExpression callThisX(java.lang.String methodName)
-
callThisX
public static MethodCallExpression callThisX(java.lang.String methodName, Expression args)
-
callX
public static MethodCallExpression callX(Expression receiver, java.lang.String methodName)
-
callX
public static MethodCallExpression callX(Expression receiver, java.lang.String methodName, Expression args)
-
callX
public static MethodCallExpression callX(Expression receiver, Expression method, Expression args)
-
callX
public static StaticMethodCallExpression callX(ClassNode receiver, java.lang.String methodName)
-
callX
public static StaticMethodCallExpression callX(ClassNode receiver, java.lang.String methodName, Expression args)
-
castX
public static CastExpression castX(ClassNode type, Expression expression)
-
castX
public static CastExpression castX(ClassNode type, Expression expression, boolean ignoreAutoboxing)
-
catchS
public static CatchStatement catchS(Parameter variable, Statement code)
-
classX
public static ClassExpression classX(ClassNode clazz)
-
classX
public static ClassExpression classX(java.lang.Class clazz)
-
closureX
public static ClosureExpression closureX(Parameter[] params, Statement code)
-
closureX
public static ClosureExpression closureX(Statement code)
-
cmpX
public static BinaryExpression cmpX(Expression lhv, Expression rhv)
Builds a binary expression that compares two values.- Parameters:
lhv- expression for the value to compare fromrhv- expression for the value value to compare to- Returns:
- the expression comparing two values
-
constX
public static ConstantExpression constX(java.lang.Object val)
-
constX
public static ConstantExpression constX(java.lang.Object val, boolean keepPrimitive)
-
ctorX
public static ConstructorCallExpression ctorX(ClassNode type, Expression args)
-
ctorX
public static ConstructorCallExpression ctorX(ClassNode type)
-
ctorSuperS
public static Statement ctorSuperS()
-
ctorSuperS
public static Statement ctorSuperS(Expression args)
-
ctorSuperX
public static ConstructorCallExpression ctorSuperX()
-
ctorSuperX
public static ConstructorCallExpression ctorSuperX(Expression args)
-
ctorThisS
public static Statement ctorThisS()
-
ctorThisS
public static Statement ctorThisS(Expression args)
-
ctorThisX
public static ConstructorCallExpression ctorThisX()
-
ctorThisX
public static ConstructorCallExpression ctorThisX(Expression args)
-
declS
public static Statement declS(Expression target, Expression init)
-
declX
public static DeclarationExpression declX(Expression target, Expression init)
-
entryX
public static MapEntryExpression entryX(Expression key, Expression value)
-
eqX
public static BinaryExpression eqX(Expression lhv, Expression rhv)
-
equalsNullX
public static BooleanExpression equalsNullX(Expression argExpr)
-
fieldX
public static FieldExpression fieldX(FieldNode fieldNode)
-
fieldX
public static FieldExpression fieldX(ClassNode owner, java.lang.String fieldName)
-
findArg
public static Expression findArg(java.lang.String argName)
-
getAllMethods
public static java.util.List<MethodNode> getAllMethods(ClassNode type)
-
getAllProperties
public static java.util.List<PropertyNode> getAllProperties(ClassNode type)
-
getInstanceNonPropertyFields
public static java.util.List<FieldNode> getInstanceNonPropertyFields(ClassNode cNode)
-
getInstanceNonPropertyFieldNames
public static java.util.List<java.lang.String> getInstanceNonPropertyFieldNames(ClassNode cNode)
-
getInstanceProperties
public static java.util.List<PropertyNode> getInstanceProperties(ClassNode cNode)
-
getInstancePropertyNames
public static java.util.List<java.lang.String> getInstancePropertyNames(ClassNode cNode)
-
getInstancePropertyFields
public static java.util.List<FieldNode> getInstancePropertyFields(ClassNode cNode)
-
getInterfacesAndSuperInterfaces
public static java.util.Set<ClassNode> getInterfacesAndSuperInterfaces(ClassNode cNode)
-
getSuperNonPropertyFields
public static java.util.List<FieldNode> getSuperNonPropertyFields(ClassNode cNode)
-
getSuperPropertyFields
public static java.util.List<FieldNode> getSuperPropertyFields(ClassNode cNode)
-
getAllProperties
public static java.util.List<PropertyNode> getAllProperties(java.util.Set<java.lang.String> names, ClassNode cNode, boolean includeProperties, boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters, boolean traverseSuperClasses, boolean skipReadonly)
-
getAllProperties
public static java.util.List<PropertyNode> getAllProperties(java.util.Set<java.lang.String> names, ClassNode origType, ClassNode cNode, boolean includeProperties, boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters, boolean traverseSuperClasses, boolean skipReadonly)
-
getAllProperties
public static java.util.List<PropertyNode> getAllProperties(java.util.Set<java.lang.String> names, ClassNode origType, ClassNode cNode, boolean includeProperties, boolean includeFields, boolean includePseudoGetters, boolean includePseudoSetters, boolean traverseSuperClasses, boolean skipReadonly, boolean reverse, boolean allNames, boolean includeStatic)
-
getterThisX
public static Expression getterThisX(ClassNode annotatedNode, PropertyNode pNode)
This method is similar topropX(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.- Parameters:
annotatedNode- the class node where the property node is accessed frompNode- the property being accessed- Returns:
- a method call expression or a property expression
-
getterX
public static Expression getterX(ClassNode annotatedNode, Expression receiver, PropertyNode pNode)
This method is similar topropX(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.- Parameters:
annotatedNode- the class node where the property node is accessed fromreceiver- the object having the propertypNode- the property being accessed- Returns:
- a method call expression or a property expression
-
hasClassX
public static BinaryExpression hasClassX(Expression instance, ClassNode cNode)
-
hasEqualFieldX
public static BinaryExpression hasEqualFieldX(FieldNode fNode, Expression other)
-
hasEqualPropertyX
public static BinaryExpression hasEqualPropertyX(ClassNode annotatedNode, PropertyNode pNode, VariableExpression other)
-
hasEqualPropertyX
@Deprecated public static BinaryExpression hasEqualPropertyX(PropertyNode pNode, Expression other)
Deprecated.
-
hasSameFieldX
public static BooleanExpression hasSameFieldX(FieldNode fNode, Expression other)
-
hasSamePropertyX
public static BooleanExpression hasSamePropertyX(PropertyNode pNode, Expression other)
-
ifElseS$$bridge
@Deprecated public static Statement ifElseS$$bridge(Expression cond, Statement thenStmt, Statement elseStmt)
Deprecated.
-
ifElseS
public static IfStatement ifElseS(Expression cond, Statement thenStmt, Statement elseStmt)
-
ifS$$bridge
@Deprecated public static Statement ifS$$bridge(Expression cond, Expression trueExpr)
Deprecated.
-
ifS
public static IfStatement ifS(Expression cond, Expression trueExpr)
-
ifS$$bridge
@Deprecated public static Statement ifS$$bridge(Expression cond, Statement trueStmt)
Deprecated.
-
ifS
public static IfStatement ifS(Expression cond, Statement trueStmt)
-
indexX
public static Expression indexX(Expression target, Expression value)
-
isInstanceOfX
public static BooleanExpression isInstanceOfX(Expression objectExpression, ClassNode cNode)
-
isNullX
public static BooleanExpression isNullX(Expression expr)
Alias forequalsNullX(Expression)
-
isOneX
public static BooleanExpression isOneX(Expression expr)
-
isTrueX
public static BooleanExpression isTrueX(Expression argExpr)
-
isZeroX
public static BooleanExpression isZeroX(Expression expr)
-
listX
public static ListExpression listX(java.util.List<Expression> args)
-
list2args
public static ListExpression list2args(java.util.List args)
-
classList2args
public static ListExpression classList2args(java.util.List<java.lang.String> args)
-
localVarX
public static VariableExpression localVarX(java.lang.String name)
-
localVarX
public static VariableExpression localVarX(java.lang.String name, ClassNode type)
-
ltX
public static BinaryExpression ltX(Expression lhv, Expression rhv)
-
mapX
public static MapExpression mapX(java.util.List<MapEntryExpression> expressions)
-
neX
public static BinaryExpression neX(Expression lhv, Expression rhv)
-
notNullX
public static BooleanExpression notNullX(Expression argExpr)
-
notX
public static NotExpression notX(Expression expr)
-
nullX
public static ConstantExpression nullX()
-
orX
public static BinaryExpression orX(Expression lhv, Expression rhv)
-
param
public static Parameter param(ClassNode type, java.lang.String name, Expression initialExpression)
-
plusX
public static BinaryExpression plusX(Expression lhv, Expression rhv)
-
propX
public static Expression propX(Expression owner, java.lang.String property)
-
propX
public static Expression propX(Expression owner, Expression property)
-
propX
public static PropertyExpression propX(Expression owner, Expression property, boolean safe)
-
returnS
public static Statement returnS(Expression expr)
-
safeExpression
public static Statement safeExpression(Expression fieldExpr, Expression expression)
-
sameX
public static BooleanExpression sameX(Expression self, Expression other)
-
stmt
public static Statement stmt(Expression expr)
-
ternaryX
public static TernaryExpression ternaryX(Expression cond, Expression trueExpr, Expression elseExpr)
-
thisPropX
public static PropertyExpression thisPropX(boolean implicit, java.lang.String property)
-
throwS
public static ThrowStatement throwS(Expression expr)
-
tryCatchS
public static TryCatchStatement tryCatchS(Statement tryStatement)
-
tryCatchS
public static TryCatchStatement tryCatchS(Statement tryStatement, Statement finallyStatement)
-
tryCatchS
public static TryCatchStatement tryCatchS(Statement tryStatement, Statement finallyStatement, CatchStatement... catchStatements)
-
varX
public static VariableExpression varX(java.lang.String name)
-
varX
public static VariableExpression varX(Variable variable)
-
varX
public static VariableExpression varX(java.lang.String name, ClassNode type)
-
copyAnnotatedNodeAnnotations
public static void copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, java.util.List<AnnotationNode> copied, java.util.List<AnnotationNode> notCopied)
Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIMEandRetentionPolicy.CLASS.Annotations with
GeneratedClosuremembers are not supported at present.
-
copyAnnotatedNodeAnnotations
public static void copyAnnotatedNodeAnnotations(AnnotatedNode annotatedNode, java.util.List<AnnotationNode> copied, java.util.List<AnnotationNode> notCopied, boolean includeGenerated)
Copies all candidateAnnotations with retention policyRetentionPolicy.RUNTIMEandRetentionPolicy.CLASS.Generatedannotations will be copied ifincludeGeneratedis true.Annotations with
GeneratedClosuremembers are not supported at present.
-
createConstructorStatementDefault
public static Statement createConstructorStatementDefault(FieldNode fNode)
-
getGetterName
public static java.lang.String getGetterName(PropertyNode pNode)
-
getSetterName
public static java.lang.String getSetterName(java.lang.String name)
-
convertASTToSource
public static java.lang.String convertASTToSource(ReaderSource readerSource, ASTNode expression) throws java.lang.Exception
Converts an expression into the String source. Only some specific expressions like closure expression support this.- Parameters:
readerSource- a sourceexpression- an expression. Can't be null- Returns:
- the source the closure was created from
- Throws:
java.lang.IllegalArgumentException- when expression is nulljava.lang.Exception- when closure can't be read from source
-
copyStatementsWithSuperAdjustment
public static boolean copyStatementsWithSuperAdjustment(ClosureExpression pre, BlockStatement body)
-
hasDeclaredMethod
public static boolean hasDeclaredMethod(ClassNode cNode, java.lang.String name, int argsCount)
-
inSamePackage
public static boolean inSamePackage(java.lang.Class first, java.lang.Class second)
-
isDefaultVisibility
public static boolean isDefaultVisibility(int modifiers)
-
makeDescriptorWithoutReturnType
@Deprecated public static java.lang.String makeDescriptorWithoutReturnType(MethodNode mn)
Deprecated.use MethodNodeUtils#methodDescriptorWithoutReturnType(MethodNode) instead
-
-