我是 acceleo 的新手,对于文本生成(针对 java 语言),我正在使用 ecore 文件和 .mtl 模块。
在我的应用程序中需要注释,所以我在我的 ecore 模型中声明了注释。但问题是我无法使用 MTL 文件中的注释详细信息(键、值)检查条件。
我在.mtl文件中的条件是
[if(r.getEAnnotation('sourcename').details.key.equalsIgnoreCase('keyname'))] [/如果]
但是这里的条件表达式在 if block 中不接受,甚至在 let block 中也不接受。
我能够打印我的注释源详细信息(键、值)的值,甚至我能够打印条件的真值或假值。
如果有人知道这个问题的解决方案请重播我
最佳答案
此表达式 r.getEAnnotation('sourcename').details
返回一个集合,因此“if”的条件是 boolean 值的集合,而不是 boolean 值。您可以将其更改为:
[if(r.getEAnnotation('sourcename').details->first().key.equalsIgnoreCase('keyname'))] [/if]
或
[if(r.getEAnnotation('sourcename').details->collect(key.equalsIgnoreCase('keyname'))->size() > 0)]
[/if]
关于java - 在 acceleo 中使用注释的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706522/