2011-04-18 16 views
1

使用说明我很新的acceleo,对于文本生成(对于Java语言)我使用的Ecore文件和.mtl模块。问题与acceleo

在我的应用程序

有需要的注释,所以我宣布我的Ecore model.but问题的注解是我无法检查,如果条件与MTL文件我的注释信息(键,值)。

我在条件.mtl文件

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

但是这里条件表达式在不接受if块中甚至不接受块段中也是如此。

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

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

感谢, R.Ramesh

+0

你是什么意思?当你尝试它时,那行上是否有编译错误? – Kellindil 2011-04-19 08:45:41

回答

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] 
+0

感谢Stephane,它的工作现在 – Rams 2011-04-22 09:44:07

+0

似乎对我来说是一个正确的答案,应该这样标记。 – 2011-07-22 01:33:45