@GroovyASTTransformation(phase = CompilePhase.CANONICALIZATION) @SuppressWarnings('ParameterCount') class ListenerListASTTransformation extends Object
 Handles generation of code for the @ListenerList annotation.
 
Generally, it adds the needed add<Listener>, remove<Listener> and get<Listener>s methods to support the Java Beans API.
Additionally it adds corresponding fire<Event> methods.
| Type Params | Return Type | Name and description | 
|---|---|---|
|  | void | addAddListener(SourceUnit source, AnnotationNode node, ClassNode declaringClass, FieldNode field, ClassNode listener, String name, def synchronize)Adds the add<Listener> method like: 
 synchronized void add${name.capitalize}(${listener.name} listener) {
     if (listener == null)
         return
     if (${field.name} == null)
        ${field.name} = []
     ${field.name}.add(listener)
 }
  | 
|  | void | addFireMethods(SourceUnit source, AnnotationNode node, ClassNode declaringClass, FieldNode field, GenericsType[] types, boolean synchronize, MethodNode method)Adds the fire<Event> methods like: 
 void fire${fireMethod.capitalize()}(${parameterList.join(', ')}) {
     if (${field.name} ! | 
|  | void | addGetListeners(SourceUnit source, AnnotationNode node, ClassNode declaringClass, FieldNode field, ClassNode listener, String name, def synchronize)Adds the get<Listener>s method like: 
 synchronized ${name.capitalize}[] get${name.capitalize}s() {
     def __result = []
     if (${field.name} ! | 
|  | void | addRemoveListener(SourceUnit source, AnnotationNode node, ClassNode declaringClass, FieldNode field, ClassNode listener, String name, def synchronize)Adds the remove<Listener> method like: 
 synchronized void remove${name.capitalize}(${listener.name} listener) {
     if (listener == null)
         return
     if (${field.name} == null)
         ${field.name} = []
     ${field.name}.remove(listener)
 }
  | 
|  | void | visit(ASTNode[] nodes, SourceUnit source) | 
Adds the add<Listener> method like:
 synchronized void add${name.capitalize}(${listener.name} listener) {
     if (listener == null)
         return
     if (${field.name} == null)
        ${field.name} = []
     ${field.name}.add(listener)
 }
 
     
                            Adds the fire<Event> methods like:
 void fire${fireMethod.capitalize()}(${parameterList.join(', ')}) {
     if (${field.name} != null) {
         def __list = new ArrayList(${field.name})
         for (listener in __list) {
             listener.$eventMethod(${evt})
         }
     }
 }
 
     
                            Adds the get<Listener>s method like:
 synchronized ${name.capitalize}[] get${name.capitalize}s() {
     def __result = []
     if (${field.name} != null)
         __result.addAll(${field.name})
     return __result as ${name.capitalize}[]
 }
 
     
                            Adds the remove<Listener> method like:
 synchronized void remove${name.capitalize}(${listener.name} listener) {
     if (listener == null)
         return
     if (${field.name} == null)
         ${field.name} = []
     ${field.name}.remove(listener)
 }