| 
Groovy 1.8.5 | |||||||
| FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Objectgroovy.beans.BindableASTTransformation
@GroovyASTTransformation(phase= CompilePhase.CANONICALIZATION) public class BindableASTTransformation extends Object
Handles generation of code for the @Bindable annotation when @Vetoable is not present.
Generally, it adds (if needed) a PropertyChangeSupport field and the needed add/removePropertyChangeListener methods to support the listeners. It also generates the setter and wires the setter through the PropertyChangeSupport. If a Vetoable annotation is detected it does nothing and lets the VetoableASTTransformation handle all the changes.| Field Summary | |
|---|---|
        protected static ClassNode | 
        
            boundClassNode
             | 
        
        protected ClassNode | 
        
            pcsClassNode
             | 
        
| Method Summary | |
|---|---|
            protected void
         | 
        
            addPropertyChangeSupport(ClassNode declaringClass)
            Adds the necessary field and methods to support property change support.  | 
        
            protected Statement
         | 
        
            createBindableStatement(PropertyNode propertyNode, Expression fieldExpression)
            Creates a statement body similar to:
   | 
        
            protected void
         | 
        
            createSetterMethod(ClassNode declaringClass, PropertyNode propertyNode, String setterName, Statement setterBlock)
            Creates a setter method with the given body.  | 
        
            static boolean
         | 
        
            hasBindableAnnotation(AnnotatedNode node)
            Convenience method to see if an annotated node is @Bindable.  | 
        
            protected boolean
         | 
        
            needsPropertyChangeSupport(ClassNode declaringClass, SourceUnit sourceUnit)
            Snoops through the declaring class and all parents looking for methods void addPropertyChangeListener(PropertyChangeListener), void removePropertyChangeListener(PropertyChangeListener), and void firePropertyChange(String, Object, Object).  | 
        
            void
         | 
        
            visit(ASTNode[] nodes, SourceUnit source)
            Handles the bulk of the processing, mostly delegating to other methods.  | 
        
| Methods inherited from class Object | |
|---|---|
| wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll | 
| Field Detail | 
|---|
protected static ClassNode boundClassNode
protected ClassNode pcsClassNode
| Method Detail | 
|---|
protected void addPropertyChangeSupport(ClassNode declaringClass)
protected final java.beans.PropertyChangeSupport this$PropertyChangeSupport = new java.beans.PropertyChangeSupport(this)"
 
 Also adds support methods:
 public void addPropertyChangeListener(java.beans.PropertyChangeListener)
 public void addPropertyChangeListener(String, java.beans.PropertyChangeListener)
 public void removePropertyChangeListener(java.beans.PropertyChangeListener)
 public void removePropertyChangeListener(String, java.beans.PropertyChangeListener)
 public java.beans.PropertyChangeListener[] getPropertyChangeListeners()
     declaringClass -  the class to which we add the support field and methods
protected Statement createBindableStatement(PropertyNode propertyNode, Expression fieldExpression)
this.firePropertyChange("field", field, field = value)
     propertyNode -            the field node for the propertyfieldExpression -  a field expression for setting the property value
protected void createSetterMethod(ClassNode declaringClass, PropertyNode propertyNode, String setterName, Statement setterBlock)
declaringClass -  the class to which we will add the setterpropertyNode -           the field to back the settersetterName -      the name of the settersetterBlock -     the statement representing the setter block
public static boolean hasBindableAnnotation(AnnotatedNode node)
node -  the node to check
protected boolean needsPropertyChangeSupport(ClassNode declaringClass, SourceUnit sourceUnit)
declaringClass -  the class to searchsourceUnit -  the source unit, for error reporting. @NotNull.
public void visit(ASTNode[] nodes, SourceUnit source)
nodes -    the ast nodessource -   the source unit for the nodes
Copyright © 2003-2011 The Codehaus. All rights reserved.