2011-04-18 42 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