Package: org.codehaus.groovy.ast.decompiled

## [Java] Class ClassStub

- org.codehaus.groovy.ast.decompiled.ClassStub

-     public class ClassStub
      extends MemberStub

  Data container holding bytecode-extracted class metadata for efficient decompilation.

  This class serves as an intermediary representation of class information extracted from compiled bytecode by AsmDecompiler. It holds raw class attributes (access modifiers, class names, signatures) and collections of method and field stubs that can be lazily reconstructed into full AST nodes by DecompiledClassNode.

  ClassStub instances are not AST nodes themselves; they are data containers that facilitate lazy loading of class members. The actual ClassNode representation is created by DecompiledClassNode, which uses this stub to populate fields and methods on demand via LazyFieldNode, LazyMethodNode, and LazyConstructorNode.

  Thread Safety: ClassStub instances are typically constructed once and then treated as immutable. They are safe for concurrent read access after initialization.

  See Also:
    AsmDecompiler.parseClass
    DecompiledClassNode.DecompiledClassNode

- - ### Constructor Summary

    Constructors
    Constructor and description
    `ClassStub(String className, int accessModifiers, String signature, String superName, String[] interfaceNames)` Creates a ClassStub from bytecode class metadata.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class MemberStub` | `getAnnotations`

- - ### Constructor Detail

    - #### public ClassStub(String className, int accessModifiers, String signature, String superName, String[] interfaceNames)

      Creates a ClassStub from bytecode class metadata.

      Parameters:
        `className` - the fully qualified class name (dot notation)
        `accessModifiers` - JVM access modifiers (ASM Opcodes flags)
        `signature` - generic type signature or `null`
        `superName` - internal superclass name (JVMS format) or `null`
        `interfaceNames` - internal interface names (JVMS format) or empty array