org.codehaus.groovy.grails.compiler.web
Class ControllerTransformer

java.lang.Object
  extended by org.codehaus.groovy.grails.compiler.injection.AbstractGrailsArtefactTransformer
      extended by org.codehaus.groovy.grails.compiler.web.ControllerTransformer
All Implemented Interfaces:
java.lang.Comparable, org.codehaus.groovy.grails.compiler.injection.ClassInjector, org.codehaus.groovy.grails.compiler.injection.GrailsArtefactClassInjector

public class ControllerTransformer
extends org.codehaus.groovy.grails.compiler.injection.AbstractGrailsArtefactTransformer

Enhances controller classes with the appropriate API at compile time.

Since:
2.0

Field Summary
static java.util.regex.Pattern CONTROLLER_PATTERN
           
 
Fields inherited from class org.codehaus.groovy.grails.compiler.injection.AbstractGrailsArtefactTransformer
CURRENT_PREFIX, METHOD_MISSING_METHOD_NAME, OBJECT_CLASS, PUBLIC_STATIC_MODIFIER, STATIC_METHOD_MISSING_METHOD_NAME, THIS_EXPRESSION
 
Fields inherited from interface org.codehaus.groovy.grails.compiler.injection.GrailsArtefactClassInjector
EMPTY_CLASS_ARRAY, ZERO_ARGS, ZERO_PARAMETERS
 
Fields inherited from interface org.codehaus.groovy.grails.compiler.injection.ClassInjector
PRIVATE_STATIC_MODIFIER
 
Constructor Summary
ControllerTransformer()
           
 
Method Summary
 java.lang.Class<?> getInstanceImplementation()
           
 java.lang.Class<?> getStaticImplementation()
           
protected  boolean isControllerClassNode(org.codehaus.groovy.ast.ClassNode classNode)
           
 void performInjection(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode)
           
 void performInjection(org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.classgen.GeneratorContext context, org.codehaus.groovy.ast.ClassNode classNode)
           
protected  void performInjectionInternal(java.lang.String apiInstanceProperty, org.codehaus.groovy.control.SourceUnit source, org.codehaus.groovy.ast.ClassNode classNode)
           
 boolean shouldInject(java.net.URL url)
           
 
Methods inherited from class org.codehaus.groovy.grails.compiler.injection.AbstractGrailsArtefactTransformer
compareTo, getArtefactType, getArtefactTypes, isCandidateInstanceMethod, isStaticCandidateMethod, populateAutowiredApiLookupMethod, populateDefaultApiLookupMethod, requiresAutowiring, requiresStaticLookupMethod
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONTROLLER_PATTERN

public static java.util.regex.Pattern CONTROLLER_PATTERN
Constructor Detail

ControllerTransformer

public ControllerTransformer()
Method Detail

getInstanceImplementation

public java.lang.Class<?> getInstanceImplementation()
Specified by:
getInstanceImplementation in class org.codehaus.groovy.grails.compiler.injection.AbstractGrailsArtefactTransformer

getStaticImplementation

public java.lang.Class<?> getStaticImplementation()
Specified by:
getStaticImplementation in class org.codehaus.groovy.grails.compiler.injection.AbstractGrailsArtefactTransformer

shouldInject

public boolean shouldInject(java.net.URL url)

performInjectionInternal

protected void performInjectionInternal(java.lang.String apiInstanceProperty,
                                        org.codehaus.groovy.control.SourceUnit source,
                                        org.codehaus.groovy.ast.ClassNode classNode)
Overrides:
performInjectionInternal in class org.codehaus.groovy.grails.compiler.injection.AbstractGrailsArtefactTransformer

performInjection

public void performInjection(org.codehaus.groovy.control.SourceUnit source,
                             org.codehaus.groovy.classgen.GeneratorContext context,
                             org.codehaus.groovy.ast.ClassNode classNode)
Specified by:
performInjection in interface org.codehaus.groovy.grails.compiler.injection.ClassInjector
Overrides:
performInjection in class org.codehaus.groovy.grails.compiler.injection.AbstractGrailsArtefactTransformer

performInjection

public void performInjection(org.codehaus.groovy.control.SourceUnit source,
                             org.codehaus.groovy.ast.ClassNode classNode)
Specified by:
performInjection in interface org.codehaus.groovy.grails.compiler.injection.ClassInjector
Overrides:
performInjection in class org.codehaus.groovy.grails.compiler.injection.AbstractGrailsArtefactTransformer

isControllerClassNode

protected boolean isControllerClassNode(org.codehaus.groovy.ast.ClassNode classNode)