Package: groovy.beans

## [Groovy] Class ListenerListASTStubber

- groovy.beans.ListenerListASTStubber

-     @GroovyASTTransformation(phase=CompilePhase.CONVERSION)
      class ListenerListASTStubber
      extends AbstractASTTransformation

  Joint-compilation stubber for ListenerList. Emits placeholder `addXxxListener(L)`, `removeXxxListener(L)`, `getXxxListeners()`, plus a `fireXxx(...)` per public method of the listener interface, so Java consumers can register listeners and fire events against the joint-compilation stub.

  The listener interface and its method set are read directly from the field's generic type parameter at CONVERSION; for typical classpath-resolvable listeners (e.g. `java.beans.PropertyChangeListener`) this works the same way the full transform does. Same-unit Groovy interfaces with their own transform-added members fall under the Tier 3 cross-class limitation.

  The full ListenerListASTTransformation at CANONICALIZATION removes stubber-tagged methods before its conflict check, so its "method already declared" errors continue to catch user conflicts but not stubber placeholders.

  Since:
    6.0.0

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class AbstractASTTransformation` | `RETENTION_CLASSNODE, sourceUnit`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `ListenerListASTStubber()`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `void` | `visit(ASTNode[] nodes, SourceUnit source)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class AbstractASTTransformation` | `addError, checkIncludeExcludeUndefinedAware, checkIncludeExcludeUndefinedAware, checkNotInterface, checkPropertyList, checkPropertyList, checkPropertyList, copyAnnotatedNodeAnnotations, copyAnnotatedNodeAnnotations, deemedInternal, deemedInternalName, getAnnotationName, getMemberClassList, getMemberClassValue, getMemberClassValue, getMemberIntValue, getMemberStringList, getMemberStringValue, getMemberStringValue, getMemberValue, hasAnnotation, init, markAsInternal, memberHasValue, shouldSkip, shouldSkip, shouldSkip, shouldSkipOnDescriptorUndefinedAware, shouldSkipUndefinedAware, shouldSkipUndefinedAware, shouldSkipUndefinedAware, tokenize`

- - ### Constructor Detail

    - #### ListenerListASTStubber()

  - ### Method Detail

    - #### @Override
      void visit(ASTNode[] nodes, SourceUnit source)