Enterprise Architect代码生成:如何获取类实现的接口的标签
解决方案
你可以通过给list宏指定@template参数配合自定义子模板实现需求,核心逻辑是遍历类实现的接口时会自动切换上下文到对应接口,子模板内的classTag宏会读取当前遍历到的接口的标签:
- 新建一个类型为类的自定义代码生成子模板,你可以命名为
InterfaceAnnotation,模板内容写:
%if classTag:"annotations" != ""% %classTag:"annotations"% %endIf%
- 回到你原来的主类生成模板,将原来获取接口列表的宏替换为以下内容,放在类定义代码的上方:
%list="ClassInterface" @separator="\n" @template="InterfaceAnnotation"%
这样遍历每个实现接口时,会自动调用你写的子模板读取对应接口的annotations标签输出,最终就能得到你期望的带接口注解的类代码。
补充说明
如果你的标签名不是annotations或者需要提取多个标签,直接修改子模板里的classTag参数即可,也可以在子模板里加更多自定义格式逻辑,比如给注解加换行、空格等适配你需要的代码格式。
内容的提问来源于stack exchange,提问作者Aljosha Koecher
相关产品推荐
相关产品推荐

