Package: org.codehaus.groovy.classgen

## [Java] Class InnerClassVisitor

- org.codehaus.groovy.classgen.InnerClassVisitor

-     public class InnerClassVisitor
      extends InnerClassVisitorHelper

  Processes inner classes during compilation, handling the creation of synthetic fields and parameters needed for inner class instances to reference their enclosing instances. This visitor identifies and transforms inner class constructor calls to pass the appropriate enclosing instance references.

- - ### Constructor Summary

    Constructors
    Constructor and description
    `InnerClassVisitor(CompilationUnit cu, SourceUnit su)` Creates a new inner class visitor.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected SourceUnit` | `getSourceUnit()` * Provides access to the SourceUnit for error reporting during visitation. * Implementations must override this method. * * Returns: the source unit for this visitor
    `` | `public void` | `visitClass(ClassNode node)` * Visits a ClassNode, processing its annotations, package, imports, contents, and object initializers. * * Parameters: `node` - the class node to visit
    `` | `public void` | `visitClosureExpression(ClosureExpression closure)` * Visits a ClosureExpression with annotation processing, traversing parameter annotations * before delegating to parent traversal. * * Parameters: `expression` - the closure expression to visit
    `` | `public void` | `visitConstructorCallExpression(ConstructorCallExpression call)` * Visits a ConstructorCallExpression, traversing its argument list. * * Parameters: `call` - the constructor call expression
    `` | `protected void` | `visitConstructorOrMethod(MethodNode node, boolean isConstructor)` * Visits a constructor or method node (implementation detail for both visit methods). * Processes the node's annotations, all parameter annotations, and code block. * * Parameters: `node` - the method or constructor node * `isConstructor` - true if node is a constructor, false if it is a method
    `` | `public void` | `visitField(FieldNode node)` * Visits a FieldNode, processing its annotations and initial value expression if present. * * Parameters: `node` - the field node to visit
    `` | `protected void` | `visitObjectInitializerStatements(ClassNode node)` * Visits all object initializer statements in a class, typically static or instance initialization blocks. * * Parameters: `node` - the class node containing initializer statements
    `` | `public void` | `visitProperty(PropertyNode node)` * Visits a PropertyNode, processing its annotations, initial value expression, * and getter/setter blocks if present. * * Parameters: `node` - the property node to visit

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class InnerClassVisitorHelper` | `addFieldInit, getClassNode, getObjectDistance, isStatic, setMethodDispatcherCode, setPropertyGetterDispatcher, setPropertySetterDispatcher, shouldHandleImplicitThisForInnerClass`
    `class ClassCodeVisitorSupport` | `addError, getSourceUnit, visitAnnotation, visitAnnotations, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitClosureExpression, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitStatementAnnotations, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoop, visitYieldStatement`
    `class CodeVisitorSupport` | `afterSwitchCaseStatementsVisited, afterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAssertStatement, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBlockStatement, visitBooleanExpression, visitBreakStatement, visitBytecodeExpression, visitCaseStatement, visitCastExpression, visitCatchStatement, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitEmptyStatement, visitExpressionStatement, visitFieldExpression, visitForLoop, visitGStringExpression, visitIfElse, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitSwitch, visitSwitchExpression, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression, visitWhileLoop, visitYieldStatement`

- - ### Constructor Detail

    - #### public InnerClassVisitor(CompilationUnit cu, SourceUnit su)

      Creates a new inner class visitor.

      Parameters:
        `cu` - the compilation unit (currently unused but kept for API compatibility)
        `su` - the source unit for error reporting

  - ### Method Detail

    - #### protected SourceUnit getSourceUnit()

      * Provides access to the SourceUnit for error reporting during visitation. * Implementations must override this method. * *

      Returns:
        the source unit for this visitor

    - #### public void visitClass(ClassNode node)

      * Visits a ClassNode, processing its annotations, package, imports, contents, and object initializers. * *

      Parameters:
        `node` - the class node to visit

    - #### public void visitClosureExpression(ClosureExpression closure)

      * Visits a ClosureExpression with annotation processing, traversing parameter annotations * before delegating to parent traversal. * *

      Parameters:
        `expression` - the closure expression to visit

    - #### public void visitConstructorCallExpression(ConstructorCallExpression call)

      * Visits a ConstructorCallExpression, traversing its argument list. * *

      Parameters:
        `call` - the constructor call expression

    - #### protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)

      * Visits a constructor or method node (implementation detail for both visit methods). * Processes the node's annotations, all parameter annotations, and code block. * *

      Parameters:
        `node` - the method or constructor node *
        `isConstructor` - true if node is a constructor, false if it is a method

    - #### public void visitField(FieldNode node)

      * Visits a FieldNode, processing its annotations and initial value expression if present. * *

      Parameters:
        `node` - the field node to visit

    - #### protected void visitObjectInitializerStatements(ClassNode node)

      * Visits all object initializer statements in a class, typically static or instance initialization blocks. * *

      Parameters:
        `node` - the class node containing initializer statements

    - #### public void visitProperty(PropertyNode node)

      * Visits a PropertyNode, processing its annotations, initial value expression, * and getter/setter blocks if present. * *

      Parameters:
        `node` - the property node to visit