我是 acceleo 的新手,对于文本生成(对于java语言)我正在使用 ecore 文件和 .mtl模块。
在我的应用程序中需要注释,所以我在我的ecore模型中声明了注释。但问题是我无法检查条件是否包含我的注释详细信息(键,值) mtl文件。
.mtl文件中的条件是
[如果(r.getEAnnotation( 'SOURCENAME')。details.key.equalsIgnoreCase( '键名'))] [/如果]
但是这里条件表达式不接受if块,甚至不接受let块。
我能够打印我的注释源详细信息(键,值)的值,甚至我能够打印条件的真值或宽度值。
如果有人知道这个问题的解决方案请重播我
谢谢, R.Ramesh
答案 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]