Class ContextualClassCodeVisitor

java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codehaus.groovy.macro.matcher.ContextualClassCodeVisitor
All Implemented Interfaces:
org.codehaus.groovy.ast.GroovyClassVisitor, org.codehaus.groovy.ast.GroovyCodeVisitor, org.codehaus.groovy.transform.ErrorCollecting

public abstract class ContextualClassCodeVisitor extends org.codehaus.groovy.ast.ClassCodeVisitorSupport
A class code visitor which is capable of remembering the context of the current visit. This makes it easier for subclasses to perform context-dependent transformations, where for example it is necessary to check the parent nodes of an AST node before performing some operations.
Since:
2.5.0
  • Constructor Details

    • ContextualClassCodeVisitor

      public ContextualClassCodeVisitor()
  • Method Details

    • getTreeContext

      public TreeContext getTreeContext()
    • getLastContext

      public TreeContext getLastContext()
    • pushContext

      protected void pushContext(TreeContext ctx)
    • popContext

      protected TreeContext popContext()
    • pushContext

      protected void pushContext(org.codehaus.groovy.ast.ASTNode node)
    • visitClass

      public void visitClass(org.codehaus.groovy.ast.ClassNode node)
      Specified by:
      visitClass in interface org.codehaus.groovy.ast.GroovyClassVisitor
      Overrides:
      visitClass in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitPackage

      public void visitPackage(org.codehaus.groovy.ast.PackageNode node)
      Overrides:
      visitPackage in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitImports

      public void visitImports(org.codehaus.groovy.ast.ModuleNode node)
      Overrides:
      visitImports in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitConstructorOrMethod

      protected void visitConstructorOrMethod(org.codehaus.groovy.ast.MethodNode node, boolean isConstructor)
      Overrides:
      visitConstructorOrMethod in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitField

      public void visitField(org.codehaus.groovy.ast.FieldNode node)
      Specified by:
      visitField in interface org.codehaus.groovy.ast.GroovyClassVisitor
      Overrides:
      visitField in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitProperty

      public void visitProperty(org.codehaus.groovy.ast.PropertyNode node)
      Specified by:
      visitProperty in interface org.codehaus.groovy.ast.GroovyClassVisitor
      Overrides:
      visitProperty in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitMethodCallExpression

      public void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression call)
      Specified by:
      visitMethodCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitMethodCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitStaticMethodCallExpression

      public void visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression call)
      Specified by:
      visitStaticMethodCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitStaticMethodCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitConstructorCallExpression

      public void visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression call)
      Specified by:
      visitConstructorCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitConstructorCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitBinaryExpression

      public void visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
      Specified by:
      visitBinaryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBinaryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitTernaryExpression

      public void visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression expression)
      Specified by:
      visitTernaryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitTernaryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitShortTernaryExpression

      public void visitShortTernaryExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression expression)
      Specified by:
      visitShortTernaryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitShortTernaryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitPostfixExpression

      public void visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression expression)
      Specified by:
      visitPostfixExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitPostfixExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitPrefixExpression

      public void visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression expression)
      Specified by:
      visitPrefixExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitPrefixExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitBooleanExpression

      public void visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression expression)
      Specified by:
      visitBooleanExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBooleanExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitNotExpression

      public void visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression expression)
      Specified by:
      visitNotExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitNotExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitClosureExpression

      public void visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression expression)
      Specified by:
      visitClosureExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitClosureExpression in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitTupleExpression

      public void visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression expression)
      Specified by:
      visitTupleExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitTupleExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitListExpression

      public void visitListExpression(org.codehaus.groovy.ast.expr.ListExpression expression)
      Specified by:
      visitListExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitListExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitArrayExpression

      public void visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression expression)
      Specified by:
      visitArrayExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitArrayExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitMapExpression

      public void visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression expression)
      Specified by:
      visitMapExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitMapExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitMapEntryExpression

      public void visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression expression)
      Specified by:
      visitMapEntryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitMapEntryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitRangeExpression

      public void visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression expression)
      Specified by:
      visitRangeExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitRangeExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitSpreadExpression

      public void visitSpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression expression)
      Specified by:
      visitSpreadExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitSpreadExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitSpreadMapExpression

      public void visitSpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression expression)
      Specified by:
      visitSpreadMapExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitSpreadMapExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitMethodPointerExpression

      public void visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression expression)
      Specified by:
      visitMethodPointerExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitMethodPointerExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitUnaryMinusExpression

      public void visitUnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression expression)
      Specified by:
      visitUnaryMinusExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitUnaryMinusExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitUnaryPlusExpression

      public void visitUnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression expression)
      Specified by:
      visitUnaryPlusExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitUnaryPlusExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitBitwiseNegationExpression

      public void visitBitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression expression)
      Specified by:
      visitBitwiseNegationExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBitwiseNegationExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitCastExpression

      public void visitCastExpression(org.codehaus.groovy.ast.expr.CastExpression expression)
      Specified by:
      visitCastExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitCastExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitConstantExpression

      public void visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression expression)
      Specified by:
      visitConstantExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitConstantExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitClassExpression

      public void visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression expression)
      Specified by:
      visitClassExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitClassExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitVariableExpression

      public void visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression expression)
      Specified by:
      visitVariableExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitVariableExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitPropertyExpression

      public void visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression expression)
      Specified by:
      visitPropertyExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitPropertyExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitAttributeExpression

      public void visitAttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression expression)
      Specified by:
      visitAttributeExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitAttributeExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitFieldExpression

      public void visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression expression)
      Specified by:
      visitFieldExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitFieldExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitGStringExpression

      public void visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression expression)
      Specified by:
      visitGStringExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitGStringExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitClosureListExpression

      public void visitClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression cle)
      Specified by:
      visitClosureListExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitClosureListExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitBytecodeExpression

      public void visitBytecodeExpression(org.codehaus.groovy.classgen.BytecodeExpression cle)
      Specified by:
      visitBytecodeExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBytecodeExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitAssertStatement

      public void visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement statement)
      Specified by:
      visitAssertStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitAssertStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitBlockStatement

      public void visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement block)
      Specified by:
      visitBlockStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBlockStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitBreakStatement

      public void visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement statement)
      Specified by:
      visitBreakStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBreakStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitCaseStatement

      public void visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement statement)
      Specified by:
      visitCaseStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitCaseStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitCatchStatement

      public void visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement statement)
      Specified by:
      visitCatchStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitCatchStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitContinueStatement

      public void visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement statement)
      Specified by:
      visitContinueStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitContinueStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitDoWhileLoop

      public void visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement loop)
      Specified by:
      visitDoWhileLoop in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitDoWhileLoop in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitExpressionStatement

      public void visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement statement)
      Specified by:
      visitExpressionStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitExpressionStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitForLoop

      public void visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement forLoop)
      Specified by:
      visitForLoop in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitForLoop in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitIfElse

      public void visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement ifElse)
      Specified by:
      visitIfElse in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitIfElse in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitReturnStatement

      public void visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement statement)
      Specified by:
      visitReturnStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitReturnStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitSwitch

      public void visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement statement)
      Specified by:
      visitSwitch in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitSwitch in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitSynchronizedStatement

      public void visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement statement)
      Specified by:
      visitSynchronizedStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitSynchronizedStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitThrowStatement

      public void visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement statement)
      Specified by:
      visitThrowStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitThrowStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitTryCatchFinally

      public void visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement statement)
      Specified by:
      visitTryCatchFinally in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitTryCatchFinally in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitWhileLoop

      public void visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement loop)
      Specified by:
      visitWhileLoop in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitWhileLoop in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitEmptyStatement

      public void visitEmptyStatement(org.codehaus.groovy.ast.stmt.EmptyStatement statement)
      Specified by:
      visitEmptyStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitEmptyStatement in class org.codehaus.groovy.ast.CodeVisitorSupport
    • getTreePath

      public List<TreeContext> getTreePath()
    • pathMatches

      public List<TreeContext> pathMatches(List<ASTNodePredicate> predicates)
    • pathUpTo

      public List<TreeContext> pathUpTo(ASTNodePredicate predicate)
    • pathUpTo

      public List<TreeContext> pathUpTo(Class<org.codehaus.groovy.ast.ASTNode> node)
    • pathUpTo

      public List<TreeContext> pathUpTo(Class<org.codehaus.groovy.ast.ASTNode> node, ASTNodePredicate predicate)
    • matchByClass

      public static List<ASTNodePredicate> matchByClass(Class<org.codehaus.groovy.ast.ASTNode>... classes)