gpt4 book ai didi

java - 企业架构师脚本: missed method in java api eaapi. jar

转载 作者:太空宇宙 更新时间:2023-11-04 06:45:20 24 4
gpt4 key购买 nike

在 Enterprise Architect 对象模型的引用中,我找到了 Element 类: http://www.sparxsystems.com/enterprise_architect_user_guide/9.3/automation/element2.html

Element包含属性IsComposite。我使用 Sparx Systems 的 Java API (eaapi.jar),但找不到此属性的 Setter(不可能使用 myElement.SetIsComposite(true))。

有人知道这个问题的解决办法吗?例如更新的 eaapi.jar 库或解决方法?

问候,菲尔

最佳答案

EA 的 Java API 是底层 COM API 的包装器,帮助文件中对此进行了记录。 Java 版本一般比 COM 版本落后一两步。

看来该方法已被排除在 Java API 之外。 COM 类中的其他属性在 Java API 中具有 getter/setter,但此属性没有。 10.0.1009版本也是如此。

在 EA 11.0.1105 (EA 11 的第一个通用版本),添加了 Element.SetCompositeDiagram(),但这似乎也仅限于 COM API:逆向工程 eaapi.jar 显示没有相应的方法。

从这里开始,您似乎可以选择三种选择:

  1. 向 Sparx Systems 报告问题并要求他们将相关方法添加到 Java API。
  2. 用 C# 重写代码以利用完整的 API。
  3. 使用未记录的 Repository.Execute() 方法直接操作底层数据库。

元素的“复合性”由 t_object.NType 列中的值 8 表示,但该列是重载的,也就是说其值的解释也取决于其他列,而且没有文档记录。因此,如果您想要可维护性,这不是一个好的解决方案。

如果您想这样做,请先添加图表,然后执行如下操作:

repository.Execute("update t_object set NType = 8 where Object_ID = " +
element.ElementID);

我认为这可行,但我还没有测试过。如果元素中有多个图表,我认为第一个会被选中。但所有这些本质上都是猜测,所以如果您想构建一些您知道可以工作的东西,请切换到 C#。

关于java - 企业架构师脚本: missed method in java api eaapi. jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24077616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com