【发布时间】:2021-12-12 16:53:54
【问题描述】:
我使用 Enterprise Architect 进行代码生成,我想自动检索一个类实现的接口的所有标签(在我的例子中是 Java 注释)。考虑以下示例:
从这个模型中,我想生成一个如下所示的类:
@AnnotationOfMyInterface
public class MyClass {
...
}
所以我想将注释作为标签添加到MyInterface,在代码生成期间应该应用到MyClass。在 UI 中,显示了已实现接口的标签,所以我希望有一种方法可以在代码生成期间获取这些标签。
我尝试编辑代码生成模板并找到宏来获取
- 类实现的所有接口:
%list="ClassInterface" @separator=", "% - 具有给定名称的所有标签(正在为其生成代码的类):
%classTag:"annotations"%
但不幸的是,我无法组合这些宏,也就是说,我无法将一个接口传递给classTag 宏,以便我可以检索该特定接口的标签(而不是我正在为其生成代码的那个)。有没有办法获取特定类/接口的类标签?
我还尝试创建一个单独的代码生成模板并从主类代码生成模板中“调用”它。但在我的模板中,classTag 宏仍然只能获取类的标签。
【问题讨论】:
-
我不确定这里是否有人在使用 EA 的代码生成。我没有,Geert 可能也没有。所以也许你应该在 Sparx 的论坛上问这个问题(带有这个问题的链接)。
-
几年前我不得不修改现有模板,但如果可能的话,我会尽量远离他们。有一些 Sparx 员工似乎非常了解这个话题,但他们通常只经常访问 Sparx 用户论坛。
-
@qwerty_so, Geert Bellekens:谢谢你们,我会在 EA 的论坛上碰碰运气。这仅用于概念证明。所以一旦我知道这在一般情况下是可能的,我会“尽可能远离”^^。到目前为止,摆弄模板并不是我所说的有趣或有益的。
-
是的,同样的故事。一般来说,我发现代码生成不像我以前想的那样那有用。我使用 API 来创建运行良好的代码。但现在我知道代码应该保留在代码中,并在 UML 中进行设计。唯一有用的桥梁(对我来说)是当您重新编写一些现有代码时。无论如何祝你好运!
标签: code-generation enterprise-architect