Xtext和Xtend - 在方法中的参数之前添加注释

时间:2015-12-16 22:14:24

标签: java xtext xtend

我正在尝试生成如下的Java代码。

public void create(@RequestBody final Resource resource) {
    return;
}

我在下面给出了我为提供@RequestBody而添加的Inferrer代码片段。

members += event.toMethod(event.action.name, typeRef(void)) [
    var dataType = map.get(method.action.name)
    parameters += event.toParameter(method.type.parameter.name, dataType.javaType)
    annotations += annotationRef("org.springframework.web.bind.annotation.RequestBody");
    body = '''
        return;
    '''

生成的代码如下所示。

@RequestBody
public void create(final Resource resource) {
    return;
}

我应该在xtend代码中进行哪些更改才能在方法参数之前获取注释?与@RequestBody final Resource resource

一样

1 个答案:

答案 0 :(得分:2)

您必须将Annotation添加到Parameter本身。使用变量或with子句

members += entity.toMethod("dummy", Void.TYPE.typeRef) [
parameters +=  entity.toParameter("someParam", String.typeRef) => [
    annotations += annotationRef("java.lang.Deprecated");
]
body = ''''''
]