在加速器中使用注释的问题

时间:2011-04-18 17:23:56

标签: java annotations acceleo

我是 acceleo 的新手,对于文本生成(对于java语言)我正在使用 ecore 文件和 .mtl模块。

在我的应用程序中需要注释,所以我在我的ecore模型中声明了注释。但问题是我无法检查条件是否包含我的注释详细信息(键,值) mtl文件。

.mtl文件中的条件

[如果(r.getEAnnotation( 'SOURCENAME')。details.key.equalsIgnoreCase( '键名'))]        [/如果]

但是这里条件表达式不接受if块,甚至不接受let块。

我能够打印我的注释源详细信息(键,值)的值,甚至我能够打印条件的真值或宽度值。

如果有人知道这个问题的解决方案请重播我

谢谢, R.Ramesh

1 个答案:

答案 0 :(得分:1)

此表达式r.getEAnnotation('sourcename').details返回一个集合,因此“if”的条件是布尔值的集合,而不是布尔值。您可以将其更改为:

[if(r.getEAnnotation('sourcename').details->first().key.equalsIgnoreCase('keyname'))] [/if]

[if(r.getEAnnotation('sourcename').details->collect(key.equalsIgnoreCase('keyname'))->size() > 0)] 

[/if]