Package org.codehaus.groovy.ast
Interface GroovyCodeVisitor
- All Known Implementing Classes:
AbstractInterruptibleASTTransformation,AnnotationClosureVisitor,AnnotationConstantsVisitor,AnnotationContractParameterVisitor,AnnotationProcessorVisitor,AsmClassGenerator,AssertStatementCreationUtility.AddAssertionCallStatementToReturnStatementVisitor,AssertStatementCreationUtility.AddResultReturnStatementVisitor,AssertStatementCreationUtility.ReturnStatementVisitor,ASTTransformationCollectorCodeVisitor,ASTTransformationVisitor,BaseVisitor,ClassCodeExpressionTransformer,ClassCodeVisitorSupport,ClassCompletionVerifier,ClassGenerator,ClosureWriter.CorrectAccessedVariableVisitor,CodeVisitorSupport,CollectRecursiveCalls,ContextualClassCodeVisitor,ContractElementVisitor,DependencyTracker,DomainModelInjectionVisitor,DummyClassGenerator,DynamicSetterInjectionVisitor,EnumCompletionVisitor,EnumVisitor,ExtendedVerifier,FieldASTTransformation,FinalVariableAnalyzer,GenericsVisitor,GinqAstBaseVisitor,GinqAstBuilder,GrabAnnotationTransformation,GroovyCodeVisitorAdapter,GroovydocVisitor,HasRecursiveCalls,InnerClassCompletionVisitor,InnerClassVisitor,InnerClassVisitorHelper,InstanceOfVerifier,JavaAwareResolveVisitor,LabelVerifier,LifecycleAfterTransformationVisitor,LifecycleBeforeTransformationVisitor,MethodInvocationTrap,NewifyASTTransformation,OperatorRenameASTTransformation,OptimizerVisitor,PlaceholderVisitor,ResolveVisitor,ReturnAdderForClosures,SecureASTCustomizer.SecuringCodeVisitor,SharedVariableCollector,SqlOrderByVisitor,SqlWhereVisitor,StatementReplacer,StaticCompilationTransformer,StaticCompilationVisitor,StaticImportVisitor,StaticTypeCheckingVisitor,StaticTypeCheckingVisitor.VariableExpressionTypeMemoizer,StaticVerifier,TransformingCodeVisitor,VariableExpressionReplacer,VariableScopeVisitor,VerifierCodeVisitor
public interface GroovyCodeVisitor
Defines the visitor interface for traversing and processing Groovy AST nodes using the visitor pattern.
Implementations can perform compilation, transformation, code generation, or analysis by implementing
visit methods for specific statement and expression types. The interface provides both required abstract
methods and default convenience methods for handling generic collections and null values.
-
Method Summary
Modifier and TypeMethodDescriptiondefault voidvisit(Expression expression) Convenience method to visit an expression if it is not null.default voidConvenience method to visit a statement if it is not null.voidvisitArgumentlistExpression(ArgumentListExpression expression) Visits an argument list expression (method arguments).voidvisitArrayExpression(ArrayExpression expression) Visits an array expression.voidvisitAssertStatement(AssertStatement statement) Visits an assert statement.voidvisitAttributeExpression(AttributeExpression expression) Visits an attribute expression (object@property, accessing direct field without getters).voidvisitBinaryExpression(BinaryExpression expression) Visits a binary expression (left op right).voidVisits a bitwise negation expression (~expr).voidvisitBlockStatement(BlockStatement statement) Visits a block statement (list of statements enclosed in braces).voidvisitBooleanExpression(BooleanExpression expression) Visits a boolean expression.voidvisitBreakStatement(BreakStatement statement) Visits a break statement.voidvisitBytecodeExpression(BytecodeExpression expression) Visits a bytecode expression (direct JVM bytecode instructions).voidvisitCaseStatement(CaseStatement statement) Visits a case clause within a switch statement.voidvisitCastExpression(CastExpression expression) Visits a cast expression ((Type) expr).voidvisitCatchStatement(CatchStatement statement) Visits a catch clause within a try-catch statement.voidvisitClassExpression(ClassExpression expression) Visits a class expression.voidvisitClosureExpression(ClosureExpression expression) Visits a closure expression.voidvisitClosureListExpression(ClosureListExpression expression) Visits a closure list expression.voidvisitConstantExpression(ConstantExpression expression) Visits a constant expression (literal value).voidVisits a constructor call expression.voidvisitContinueStatement(ContinueStatement statement) Visits a continue statement.voidvisitDeclarationExpression(DeclarationExpression expression) Visits a declaration expression (variable declaration with initialization).voidvisitDoWhileLoop(DoWhileStatement statement) Visits a do-while loop statement.default voidvisitEmptyExpression(EmptyExpression expression) Visits an empty expression.default voidvisitEmptyStatement(EmptyStatement statement) Visits an empty statement.voidvisitExpressionStatement(ExpressionStatement statement) Visits an expression statement (an expression used as a statement).voidvisitFieldExpression(FieldExpression expression) Visits a field expression.voidvisitForLoop(ForStatement statement) Visits a for loop statement.voidvisitGStringExpression(GStringExpression expression) Visits a GString expression (string with interpolations).voidvisitIfElse(IfStatement statement) Visits an if-else statement.voidvisitLambdaExpression(LambdaExpression expression) Visits a lambda expression.voidvisitListExpression(ListExpression expression) Visits a list expression.default voidvisitListOfExpressions(List<? extends Expression> list) Convenience method to visit a list of expressions.voidvisitMapEntryExpression(MapEntryExpression expression) Visits a map entry expression (key: value pair within a map).voidvisitMapExpression(MapExpression expression) Visits a map expression.voidvisitMethodCallExpression(MethodCallExpression expression) Visits a method call expression.voidvisitMethodPointerExpression(MethodPointerExpression expression) Visits a method pointer expression (object.&methodName).voidVisits a method reference expression (obj::method).voidvisitNotExpression(NotExpression expression) Visits a not expression (!expr).voidvisitPostfixExpression(PostfixExpression expression) Visits a postfix expression (expr op).voidvisitPrefixExpression(PrefixExpression expression) Visits a prefix expression (op expr).voidvisitPropertyExpression(PropertyExpression expression) Visits a property expression (object.property).voidvisitRangeExpression(RangeExpression expression) Visits a range expression.voidvisitReturnStatement(ReturnStatement statement) Visits a return statement.voidvisitShortTernaryExpression(ElvisOperatorExpression expression) Visits an Elvis operator expression (shorthand ternary with implicit condition check).voidvisitSpreadExpression(SpreadExpression expression) Visits a spread expression (*expr, spreading collection elements).voidvisitSpreadMapExpression(SpreadMapExpression expression) Visits a spread map expression (*:map, spreading map entries).voidVisits a static method call expression.voidvisitSwitch(SwitchStatement statement) Visits a switch statement.voidvisitSynchronizedStatement(SynchronizedStatement statement) Visits a synchronized statement.voidvisitTernaryExpression(TernaryExpression expression) Visits a ternary expression (condition ? trueExpr : falseExpr).voidvisitThrowStatement(ThrowStatement statement) Visits a throw statement.voidvisitTryCatchFinally(TryCatchStatement statement) Visits a try-catch-finally statement.voidvisitTupleExpression(TupleExpression expression) Visits a tuple expression (comma-separated expressions grouped in parentheses).voidvisitUnaryMinusExpression(UnaryMinusExpression expression) Visits a unary minus expression (-expr).voidvisitUnaryPlusExpression(UnaryPlusExpression expression) Visits a unary plus expression (+expr).voidvisitVariableExpression(VariableExpression expression) Visits a variable expression.voidvisitWhileLoop(WhileStatement statement) Visits a while loop statement.
-
Method Details
-
visitBlockStatement
Visits a block statement (list of statements enclosed in braces).- Parameters:
statement- theBlockStatementto process
-
visitForLoop
Visits a for loop statement.- Parameters:
statement- theForStatementto process
-
visitWhileLoop
Visits a while loop statement.- Parameters:
statement- theWhileStatementto process
-
visitDoWhileLoop
Visits a do-while loop statement.- Parameters:
statement- theDoWhileStatementto process
-
visitIfElse
Visits an if-else statement.- Parameters:
statement- theIfStatementto process
-
visitExpressionStatement
Visits an expression statement (an expression used as a statement).- Parameters:
statement- theExpressionStatementto process
-
visitReturnStatement
Visits a return statement.- Parameters:
statement- theReturnStatementto process
-
visitAssertStatement
Visits an assert statement.- Parameters:
statement- theAssertStatementto process
-
visitTryCatchFinally
Visits a try-catch-finally statement.- Parameters:
statement- theTryCatchStatementto process
-
visitSwitch
Visits a switch statement.- Parameters:
statement- theSwitchStatementto process
-
visitCaseStatement
Visits a case clause within a switch statement.- Parameters:
statement- theCaseStatementto process
-
visitBreakStatement
Visits a break statement.- Parameters:
statement- theBreakStatementto process
-
visitContinueStatement
Visits a continue statement.- Parameters:
statement- theContinueStatementto process
-
visitThrowStatement
Visits a throw statement.- Parameters:
statement- theThrowStatementto process
-
visitSynchronizedStatement
Visits a synchronized statement.- Parameters:
statement- theSynchronizedStatementto process
-
visitCatchStatement
Visits a catch clause within a try-catch statement.- Parameters:
statement- theCatchStatementto process
-
visitEmptyStatement
Visits an empty statement. Default implementation does nothing.- Parameters:
statement- theEmptyStatementto process
-
visit
Convenience method to visit a statement if it is not null. Delegates to the statement's visit method.- Parameters:
statement- theStatementto process, or null to do nothing
-
visitMethodCallExpression
Visits a method call expression.- Parameters:
expression- theMethodCallExpressionto process
-
visitStaticMethodCallExpression
Visits a static method call expression.- Parameters:
expression- theStaticMethodCallExpressionto process
-
visitConstructorCallExpression
Visits a constructor call expression.- Parameters:
expression- theConstructorCallExpressionto process
-
visitTernaryExpression
Visits a ternary expression (condition ? trueExpr : falseExpr).- Parameters:
expression- theTernaryExpressionto process
-
visitShortTernaryExpression
Visits an Elvis operator expression (shorthand ternary with implicit condition check).- Parameters:
expression- theElvisOperatorExpressionto process
-
visitBinaryExpression
Visits a binary expression (left op right).- Parameters:
expression- theBinaryExpressionto process
-
visitPrefixExpression
Visits a prefix expression (op expr).- Parameters:
expression- thePrefixExpressionto process
-
visitPostfixExpression
Visits a postfix expression (expr op).- Parameters:
expression- thePostfixExpressionto process
-
visitBooleanExpression
Visits a boolean expression.- Parameters:
expression- theBooleanExpressionto process
-
visitClosureExpression
Visits a closure expression.- Parameters:
expression- theClosureExpressionto process
-
visitLambdaExpression
Visits a lambda expression.- Parameters:
expression- theLambdaExpressionto process
-
visitTupleExpression
Visits a tuple expression (comma-separated expressions grouped in parentheses).- Parameters:
expression- theTupleExpressionto process
-
visitMapExpression
Visits a map expression.- Parameters:
expression- theMapExpressionto process
-
visitMapEntryExpression
Visits a map entry expression (key: value pair within a map).- Parameters:
expression- theMapEntryExpressionto process
-
visitListExpression
Visits a list expression.- Parameters:
expression- theListExpressionto process
-
visitRangeExpression
Visits a range expression.- Parameters:
expression- theRangeExpressionto process
-
visitPropertyExpression
Visits a property expression (object.property).- Parameters:
expression- thePropertyExpressionto process
-
visitAttributeExpression
Visits an attribute expression (object@property, accessing direct field without getters).- Parameters:
expression- theAttributeExpressionto process
-
visitFieldExpression
Visits a field expression.- Parameters:
expression- theFieldExpressionto process
-
visitMethodPointerExpression
Visits a method pointer expression (object.&methodName).- Parameters:
expression- theMethodPointerExpressionto process
-
visitMethodReferenceExpression
Visits a method reference expression (obj::method).- Parameters:
expression- theMethodReferenceExpressionto process
-
visitConstantExpression
Visits a constant expression (literal value).- Parameters:
expression- theConstantExpressionto process
-
visitClassExpression
Visits a class expression.- Parameters:
expression- theClassExpressionto process
-
visitVariableExpression
Visits a variable expression.- Parameters:
expression- theVariableExpressionto process
-
visitDeclarationExpression
Visits a declaration expression (variable declaration with initialization).- Parameters:
expression- theDeclarationExpressionto process
-
visitGStringExpression
Visits a GString expression (string with interpolations).- Parameters:
expression- theGStringExpressionto process
-
visitArrayExpression
Visits an array expression.- Parameters:
expression- theArrayExpressionto process
-
visitSpreadExpression
Visits a spread expression (*expr, spreading collection elements).- Parameters:
expression- theSpreadExpressionto process
-
visitSpreadMapExpression
Visits a spread map expression (*:map, spreading map entries).- Parameters:
expression- theSpreadMapExpressionto process
-
visitNotExpression
Visits a not expression (!expr).- Parameters:
expression- theNotExpressionto process
-
visitUnaryMinusExpression
Visits a unary minus expression (-expr).- Parameters:
expression- theUnaryMinusExpressionto process
-
visitUnaryPlusExpression
Visits a unary plus expression (+expr).- Parameters:
expression- theUnaryPlusExpressionto process
-
visitBitwiseNegationExpression
Visits a bitwise negation expression (~expr).- Parameters:
expression- theBitwiseNegationExpressionto process
-
visitCastExpression
Visits a cast expression ((Type) expr).- Parameters:
expression- theCastExpressionto process
-
visitArgumentlistExpression
Visits an argument list expression (method arguments).- Parameters:
expression- theArgumentListExpressionto process
-
visitClosureListExpression
Visits a closure list expression.- Parameters:
expression- theClosureListExpressionto process
-
visitBytecodeExpression
Visits a bytecode expression (direct JVM bytecode instructions).- Parameters:
expression- theBytecodeExpressionto process
-
visitEmptyExpression
Visits an empty expression. Default implementation does nothing.- Parameters:
expression- theEmptyExpressionto process
-
visitListOfExpressions
Convenience method to visit a list of expressions. Iterates through the list and calls the visit method on each non-null expression.- Parameters:
list- the list ofExpressions to process, or null to do nothing
-
visit
Convenience method to visit an expression if it is not null. Delegates to the expression's visit method.- Parameters:
expression- theExpressionto process, or null to do nothing
-