Package org.codehaus.groovy.classgen

# Class ClassGenerator

java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codehaus.groovy.classgen.ClassGenerator

All Implemented Interfaces:
  `GroovyClassVisitor`, `GroovyCodeVisitor`, `ErrorCollecting`

Direct Known Subclasses:
  `AsmClassGenerator`, `DummyClassGenerator`

public abstract class ClassGenerator extends ClassCodeVisitorSupport
Abstract base class for generator of Java class versions of Groovy AST classes

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected LinkedList<ClassNode>`
  `innerClasses`
  Inner classes queued while generating the current class.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClassGenerator()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `LinkedList<ClassNode>`
  `getInnerClasses()`
  Returns the list of inner classes that were created during bytecode generation.
  `protected SourceUnit`
  `getSourceUnit()`
  Provides access to the `SourceUnit` for error reporting during visitation.
  `void`
  `visitBytecodeSequence(BytecodeSequence bytecodeSequence)`
  Visits a bytecode sequence during AST traversal.

  ### Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport

  `addError, 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`

  ### Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport

  `afterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor

  `visit, visit, visitEmptyExpression, visitListOfExpressions`

- ## Field Details

  - ### innerClasses

    protected LinkedList<ClassNode> innerClasses
    Inner classes queued while generating the current class.

- ## Constructor Details

  - ### ClassGenerator

    public ClassGenerator()

- ## Method Details

  - ### getInnerClasses

    public LinkedList<ClassNode> getInnerClasses()
    Returns the list of inner classes that were created during bytecode generation.
    Returns:
      the list of inner classes

  - ### getSourceUnit

    protected SourceUnit getSourceUnit()
    Provides access to the `SourceUnit` for error reporting during visitation. Implementations must override this method.
    Specified by:
      `getSourceUnit` in class `ClassCodeVisitorSupport`
    Returns:
      the source unit for this visitor

  - ### visitBytecodeSequence

    public void visitBytecodeSequence(BytecodeSequence bytecodeSequence)
    Visits a bytecode sequence during AST traversal. Subclasses should override this method to handle custom bytecode generation.
    Parameters:
      `bytecodeSequence` - the bytecode sequence to visit