@AnnotationHandlerFor(value=Vetoable.class) public class VetoableASTTransformation extends AbstractASTTransformation implements VetoableConstants, AnnotationHandler
@Vetoable
annotation.COLLECTIONS_CLASS, GRIFFON_APPLICATION_TYPE, INJECT_TYPE, NAMED_TYPE
METHOD_ADD_VETOABLE_CHANGE_LISTENER, METHOD_FIRE_VETOABLE_CHANGE, METHOD_GET_VETOABLE_CHANGE_LISTENERS, METHOD_GET_VETOABLE_CHANGE_SUPPORT, METHOD_REMOVE_VETOABLE_CHANGE_LISTENER, PROPERTY_VETO_EXCEPTION_TYPE, VETOABLE_CHANGE_LISTENER_TYPE, VETOABLE_CHANGE_SUPPORT_FIELD_NAME, VETOABLE_CHANGE_SUPPORT_FIELD_NAME_LOCK, VETOABLE_CHANGE_SUPPORT_TYPE, VETOABLE_FIRE_METHODS, VETOABLE_METHODS, VETOABLE_TYPE
EVENT, METHOD_ADD_PROPERTY_CHANGE_LISTENER, METHOD_FIRE_PROPERTY_CHANGE, METHOD_GET_PROPERTY_CHANGE_LISTENERS, METHOD_GET_PROPERTY_CHANGE_SUPPORT, METHOD_REMOVE_PROPERTY_CHANGE_LISTENER, NEW_VALUE, OBSERVABLE_FIRE_METHODS, OBSERVABLE_METHODS, OBSERVABLE_TYPE, OLD_VALUE, PROPERTY_CHANGE_EVENT_TYPE, PROPERTY_CHANGE_LISTENER_TYPE, PROPERTY_CHANGE_SUPPORT_FIELD_NAME, PROPERTY_CHANGE_SUPPORT_FIELD_NAME_LOCK, PROPERTY_CHANGE_SUPPORT_TYPE, VALUE
APPLICATION, BOOLEAN, GRIFFON_CORE_CALLABLEWITHARGS, GRIFFON_CORE_RUNNABLEWITHARGS, INT, JAVA_LANG_CLASS, JAVA_LANG_OBJECT, JAVA_LANG_RUNNABLE, JAVA_LANG_STRING, JAVA_NET_URL, JAVA_UTIL_COLLECTION, JAVA_UTIL_LIST, JAVA_UTIL_MAP, JAVAX_ANNOTATION_NONNULL, JAVAX_ANNOTATION_NULLABLE, JAVAX_INJECT_INJECT, JAVAX_INJECT_NAMED, NAME, R, T, VOID, WILDCARD
Constructor and Description |
---|
VetoableASTTransformation() |
Modifier and Type | Method and Description |
---|---|
static void |
addVetoableIfNeeded(org.codehaus.groovy.control.SourceUnit source,
org.codehaus.groovy.ast.ClassNode classNode) |
static void |
apply(org.codehaus.groovy.ast.ClassNode classNode)
Adds the necessary field and methods to support resource locating.
|
static boolean |
hasVetoableAnnotation(org.codehaus.groovy.ast.AnnotatedNode node)
Convenience method to see if an annotated node is
@Vetoable . |
static boolean |
needsVetoableSupport(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.control.SourceUnit source) |
void |
visit(org.codehaus.groovy.ast.ASTNode[] nodes,
org.codehaus.groovy.control.SourceUnit source)
Handles the bulk of the processing, mostly delegating to other methods.
|
addDelegateMethods, addError, applicationExpression, applicationProperty, checkNodesForAnnotationAndType, emptyMap, injectApplication, injectedField, injectedField, makeClassSafe, makeClassSafe, makeClassSafe, makeClassSafe0, makeClassSafeWithGenerics, makeClassSafeWithGenerics, makeClassSafeWithGenerics, makeGenericsType, makeGenericsType, makeGenericsType, memberHasValue, needsDelegate, newClass
public static boolean hasVetoableAnnotation(org.codehaus.groovy.ast.AnnotatedNode node)
@Vetoable
.node
- the node to checkpublic void visit(org.codehaus.groovy.ast.ASTNode[] nodes, org.codehaus.groovy.control.SourceUnit source)
visit
in interface org.codehaus.groovy.transform.ASTTransformation
nodes
- the ast nodessource
- the source unit for the nodespublic static boolean needsVetoableSupport(org.codehaus.groovy.ast.ClassNode classNode, org.codehaus.groovy.control.SourceUnit source)
public static void addVetoableIfNeeded(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode)
public static void apply(org.codehaus.groovy.ast.ClassNode classNode)
classNode
- the class to which we add the support field and methods