Package org.codehaus.groovy.classgen


package org.codehaus.groovy.classgen
Provides classes for generating Java bytecode from Groovy Abstract Syntax Trees (AST).

This package contains the core class generation infrastructure that transforms Groovy's AST representation into executable Java bytecode using the ASM library. The main components include:

  • AST visitors that traverse and transform Groovy class structures
  • Bytecode generators that emit JVM instructions
  • Verifiers that ensure code correctness and compliance with Java/Groovy semantics
  • Support for inner classes, enums, annotations, and other Groovy language features

The primary entry point for bytecode generation is AsmClassGenerator, which coordinates the entire class generation process. Various visitor classes handle specific aspects such as annotation processing, inner class resolution, variable scoping, and verification.

Since:
1.0
  • Class
    Description
    An Annotation visitor responsible for: reading annotation metadata (@Retention, @Target, attribute types) verify that an AnnotationNode conforms to annotation meta enhancing an AnnotationNode AST to reflect real annotation meta
    Generates Java class versions of Groovy classes using ASM.
    Represents some custom bytecode generation by the compiler.
    Helper class used by the class generator.
    This class represents a sequence of BytecodeInstructions or ASTNodes.
    Checks that a class satisfies various conditions including: Incorrect class or method access modifiers No abstract methods appear in a non-abstract class Existence and correct visibility for inherited members Invalid attempts to override final members
    Abstract base class for generator of Java class versions of Groovy AST classes
    An exception thrown by the class generator
    To generate a class that has all the fields and methods, except that fields are not initialized and methods are empty.
    Enums have a parent constructor with two arguments from java.lang.Enum.
    Transforms enum classes by adding required methods and fields according to Java enum semantics.
    A specialized Groovy AST visitor meant to perform additional verifications upon the current AST.
    Analyzes variable assignments to determine if variables are effectively final, which is required for use in closures and lambda expressions.
    Callback interface notified when effectively final analysis detects a problem.
    A context shared across generations of a class and its inner classes.
    Completes the transformation of inner classes by adding synthetic fields and constructor parameters needed to maintain references to outer class instances.
    Processes inner classes during compilation, handling the creation of synthetic fields and parameters needed for inner class instances to reference their enclosing instances.
    Abstract base class providing helper methods for inner class visitors.
    Utility class to add return statements.
    Listener notified when a synthetic return statement is created.
    Initializes the variable scopes for an AST.
    Verifies the AST node and adds any default AST code before bytecode generation occurs.
    Strategy invoked for each synthetic method or constructor generated for default arguments.
    Performs various checks on code inside methods and constructors including checking for valid field, variables names etc.