org.codehaus.groovy.grails.compiler.web
Class ControllerActionTransformer
java.lang.Object
org.codehaus.groovy.grails.compiler.web.ControllerActionTransformer
- All Implemented Interfaces:
- org.codehaus.groovy.grails.compiler.injection.ClassInjector, org.codehaus.groovy.grails.compiler.injection.GrailsArtefactClassInjector
public class ControllerActionTransformer
- extends java.lang.Object
- implements org.codehaus.groovy.grails.compiler.injection.GrailsArtefactClassInjector
Enhances controller classes by converting closures actions to method actions and binding
request parameters to action arguments.
|
Field Summary |
static java.lang.String |
VOID_TYPE
|
| 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 |
|
Method Summary |
protected void |
addMethodToInvokeClosure(org.codehaus.groovy.ast.ClassNode controllerClassNode,
org.codehaus.groovy.ast.PropertyNode closureProperty,
org.codehaus.groovy.control.SourceUnit source)
|
protected void |
annotateActionMethod(org.codehaus.groovy.ast.Parameter[] parameters,
org.codehaus.groovy.ast.MethodNode methodNode)
|
protected void |
enhanceCommandObjectClass(org.codehaus.groovy.ast.ClassNode commandObjectTypeClassNode,
java.lang.String actionName,
org.codehaus.groovy.control.SourceUnit source)
|
protected void |
error(org.codehaus.groovy.control.SourceUnit source,
java.lang.String me)
|
java.lang.String[] |
getArtefactTypes()
|
protected org.codehaus.groovy.ast.stmt.Statement |
getAutoWireCommandObjectStatement(java.lang.String paramName)
|
protected org.codehaus.groovy.ast.stmt.Statement |
getCommandObjectDataBindingStatement(org.codehaus.groovy.ast.ClassNode controllerClassNode,
java.lang.String paramName,
org.codehaus.groovy.ast.ClassNode commandObjectClassNode)
|
protected org.codehaus.groovy.ast.expr.Expression |
getRejectValueExpression(java.lang.String methodParamName)
|
protected org.codehaus.groovy.ast.stmt.BlockStatement |
initializeActionParameters(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.ASTNode actionNode,
java.lang.String actionName,
org.codehaus.groovy.ast.Parameter[] actionParameters,
org.codehaus.groovy.control.SourceUnit source)
|
protected void |
initializeCommandObjectParameter(org.codehaus.groovy.ast.stmt.BlockStatement wrapper,
org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.ClassNode commandObjectTypeClassNode,
org.codehaus.groovy.ast.ASTNode actionNode,
java.lang.String actionName,
java.lang.String paramName,
org.codehaus.groovy.control.SourceUnit source)
|
protected void |
initializeMethodParameter(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.stmt.BlockStatement wrapper,
org.codehaus.groovy.ast.ASTNode actionNode,
java.lang.String actionName,
org.codehaus.groovy.ast.Parameter param,
org.codehaus.groovy.control.SourceUnit source)
|
protected void |
initializePrimitiveOrTypeWrapperParameter(org.codehaus.groovy.ast.stmt.BlockStatement wrapper,
org.codehaus.groovy.ast.Parameter param,
java.lang.String requestParameterName)
|
protected void |
initializeStringParameter(org.codehaus.groovy.ast.stmt.BlockStatement wrapper,
org.codehaus.groovy.ast.Parameter param,
java.lang.String requestParameterName)
|
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)
|
boolean |
shouldInject(java.net.URL url)
|
protected void |
transformClosureToMethod(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.expr.ClosureExpression closureAction,
org.codehaus.groovy.ast.PropertyNode property,
org.codehaus.groovy.control.SourceUnit source)
|
protected void |
warning(org.codehaus.groovy.control.SourceUnit sourceUnit,
org.codehaus.groovy.ast.ASTNode node,
java.lang.String warningMessage)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
VOID_TYPE
public static final java.lang.String VOID_TYPE
- See Also:
- Constant Field Values
ControllerActionTransformer
public ControllerActionTransformer()
getArtefactTypes
public java.lang.String[] getArtefactTypes()
- Specified by:
getArtefactTypes in interface org.codehaus.groovy.grails.compiler.injection.GrailsArtefactClassInjector
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
addMethodToInvokeClosure
protected void addMethodToInvokeClosure(org.codehaus.groovy.ast.ClassNode controllerClassNode,
org.codehaus.groovy.ast.PropertyNode closureProperty,
org.codehaus.groovy.control.SourceUnit source)
annotateActionMethod
protected void annotateActionMethod(org.codehaus.groovy.ast.Parameter[] parameters,
org.codehaus.groovy.ast.MethodNode methodNode)
transformClosureToMethod
protected void transformClosureToMethod(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.expr.ClosureExpression closureAction,
org.codehaus.groovy.ast.PropertyNode property,
org.codehaus.groovy.control.SourceUnit source)
initializeActionParameters
protected org.codehaus.groovy.ast.stmt.BlockStatement initializeActionParameters(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.ASTNode actionNode,
java.lang.String actionName,
org.codehaus.groovy.ast.Parameter[] actionParameters,
org.codehaus.groovy.control.SourceUnit source)
initializeMethodParameter
protected void initializeMethodParameter(org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.stmt.BlockStatement wrapper,
org.codehaus.groovy.ast.ASTNode actionNode,
java.lang.String actionName,
org.codehaus.groovy.ast.Parameter param,
org.codehaus.groovy.control.SourceUnit source)
initializeCommandObjectParameter
protected void initializeCommandObjectParameter(org.codehaus.groovy.ast.stmt.BlockStatement wrapper,
org.codehaus.groovy.ast.ClassNode classNode,
org.codehaus.groovy.ast.ClassNode commandObjectTypeClassNode,
org.codehaus.groovy.ast.ASTNode actionNode,
java.lang.String actionName,
java.lang.String paramName,
org.codehaus.groovy.control.SourceUnit source)
enhanceCommandObjectClass
protected void enhanceCommandObjectClass(org.codehaus.groovy.ast.ClassNode commandObjectTypeClassNode,
java.lang.String actionName,
org.codehaus.groovy.control.SourceUnit source)
getCommandObjectDataBindingStatement
protected org.codehaus.groovy.ast.stmt.Statement getCommandObjectDataBindingStatement(org.codehaus.groovy.ast.ClassNode controllerClassNode,
java.lang.String paramName,
org.codehaus.groovy.ast.ClassNode commandObjectClassNode)
getAutoWireCommandObjectStatement
protected org.codehaus.groovy.ast.stmt.Statement getAutoWireCommandObjectStatement(java.lang.String paramName)
initializeStringParameter
protected void initializeStringParameter(org.codehaus.groovy.ast.stmt.BlockStatement wrapper,
org.codehaus.groovy.ast.Parameter param,
java.lang.String requestParameterName)
initializePrimitiveOrTypeWrapperParameter
protected void initializePrimitiveOrTypeWrapperParameter(org.codehaus.groovy.ast.stmt.BlockStatement wrapper,
org.codehaus.groovy.ast.Parameter param,
java.lang.String requestParameterName)
getRejectValueExpression
protected org.codehaus.groovy.ast.expr.Expression getRejectValueExpression(java.lang.String methodParamName)
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
shouldInject
public boolean shouldInject(java.net.URL url)
- Specified by:
shouldInject in interface org.codehaus.groovy.grails.compiler.injection.ClassInjector
error
protected void error(org.codehaus.groovy.control.SourceUnit source,
java.lang.String me)
warning
protected void warning(org.codehaus.groovy.control.SourceUnit sourceUnit,
org.codehaus.groovy.ast.ASTNode node,
java.lang.String warningMessage)