public class ControllerAnnotationProcessor extends Object implements org.eclipse.xtend.lib.macro.TransformationParticipant<org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration>
if (annotation.pattern.matches(url) && request.isVerb(annotation.verb) {
this.xxxxx(url, baseRequest, request, response)
}
Where "xxx" is the name of the original method.
So, notice that it changes your original method, introducing parameters.
@Get("/books/:id")
def getBook()
Will actually be transformed to a method
public Result getBook(String id, String url, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
@Get("/books")
def getBook(String id)
Will have the same effect as the previous example.| Modifier and Type | Field and Description |
|---|---|
static List<? extends Class<? extends Annotation>> |
verbs |
| Constructor and Description |
|---|
ControllerAnnotationProcessor() |
| Modifier and Type | Method and Description |
|---|---|
void |
addParametersToActionMethods(org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration clazz,
org.eclipse.xtend.lib.macro.TransformationContext context) |
protected org.eclipse.xtend.lib.macro.declaration.MutableMethodDeclaration |
createHandlerMethod(org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration clazz,
org.eclipse.xtend.lib.macro.TransformationContext context) |
org.eclipse.xtext.xbase.lib.Pair<String,ArrayList<String>> |
createRegexp(String pattern) |
void |
doTransform(List<? extends org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration> annotatedTargetElements,
org.eclipse.xtend.lib.macro.TransformationContext context) |
Iterable<? extends org.eclipse.xtend.lib.macro.declaration.MutableParameterDeclaration> |
getHttpParameters(org.eclipse.xtend.lib.macro.declaration.MutableMethodDeclaration m) |
org.eclipse.xtend.lib.macro.declaration.Type |
httpAnnotation(org.eclipse.xtend.lib.macro.declaration.MutableMethodDeclaration m,
org.eclipse.xtend.lib.macro.TransformationContext context) |
List<org.eclipse.xtend.lib.macro.declaration.MutableMethodDeclaration> |
httpMethods(org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration clazz,
org.eclipse.xtend.lib.macro.TransformationContext context) |
boolean |
isBodyParameter(org.eclipse.xtend.lib.macro.declaration.MutableParameterDeclaration param,
org.eclipse.xtend.lib.macro.TransformationContext context) |
public static final List<? extends Class<? extends Annotation>> verbs
public void doTransform(List<? extends org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration> annotatedTargetElements, @Extension org.eclipse.xtend.lib.macro.TransformationContext context)
doTransform in interface org.eclipse.xtend.lib.macro.TransformationParticipant<org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration>public void addParametersToActionMethods(org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration clazz,
@Extension
org.eclipse.xtend.lib.macro.TransformationContext context)
protected org.eclipse.xtend.lib.macro.declaration.MutableMethodDeclaration createHandlerMethod(org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration clazz,
@Extension
org.eclipse.xtend.lib.macro.TransformationContext context)
public boolean isBodyParameter(org.eclipse.xtend.lib.macro.declaration.MutableParameterDeclaration param,
@Extension
org.eclipse.xtend.lib.macro.TransformationContext context)
public List<org.eclipse.xtend.lib.macro.declaration.MutableMethodDeclaration> httpMethods(org.eclipse.xtend.lib.macro.declaration.MutableClassDeclaration clazz, @Extension org.eclipse.xtend.lib.macro.TransformationContext context)
public Iterable<? extends org.eclipse.xtend.lib.macro.declaration.MutableParameterDeclaration> getHttpParameters(org.eclipse.xtend.lib.macro.declaration.MutableMethodDeclaration m)
public org.eclipse.xtend.lib.macro.declaration.Type httpAnnotation(org.eclipse.xtend.lib.macro.declaration.MutableMethodDeclaration m,
@Extension
org.eclipse.xtend.lib.macro.TransformationContext context)
Copyright © 2017 Uqbar Project. All rights reserved.