【发布时间】:2016-07-05 23:03:49
【问题描述】:
我正在为 IBM Rational Rhapsody 中指定的接口创建代码。 Rhapsody 为我的接口中使用的其他数据类型隐式生成包含语句。但我希望对包含语句有更多控制权,因此我将它们明确指定为组件源工件中的文本元素。因此,我想阻止 Rhapsody 自己生成包含语句。这可能吗?
【问题讨论】:
标签: include code-generation rhapsody
我正在为 IBM Rational Rhapsody 中指定的接口创建代码。 Rhapsody 为我的接口中使用的其他数据类型隐式生成包含语句。但我希望对包含语句有更多控制权,因此我将它们明确指定为组件源工件中的文本元素。因此,我想阻止 Rhapsody 自己生成包含语句。这可能吗?
【问题讨论】:
标签: include code-generation rhapsody
如果可以做到这一点,很可能是使用属性。在功能框中单击属性并按“包含”过滤以查看一些可能的候选者。并不是所有的属性都描述了它们究竟做了什么,所以祝你好运。
编辑:
我也花了一些时间浏览这些属性,但找不到任何你想要的东西。您似乎无法使用 Rhapsody 的基本版本执行此操作。 IBM 确实许可了一个附加组件来自定义代码生成,称为 Rules Composer(我认为);这几乎可以肯定允许您自定义包含,但成本很高。
还有另外两种可能的方法。根据您自定义包含语句的方式,您可以编写一个简单的 shell 脚本,可能使用 sed,然后只需运行该脚本以在每次 Rhapsody 生成代码时更新您的代码。
另一种方法是使用 Rhapsody API 创建一个插件/工具,该插件/工具迭代所有接口并相应地更改源工件。我自己没有尝试过这种方法,但我知道我的同事已经使用 API 来做类似的事情。
【讨论】:
最后我找到了让 Rhapsody 产生所需输出的属性:GenerateImplicitDependencies 用于多个元素,GenerateDeclarationDependency 用于 Type 元素。禁用这些将避免生成隐式包含语句。
【讨论】: