企业架构师脚本:java api eaapi.jar中缺少的方法

企业架构师脚本:java api eaapi.jar中缺少的方法,java,enterprise-architect,Java,Enterprise Architect,在企业架构师对象模型的引用中,我找到了类元素: 类元素包含属性IsComposite。我使用Sparx系统的JavaAPI(eaapi.jar),但找不到该属性的Setter(myElement.SetIsComposite(true)不可能) 有人知道这个问题的解决办法吗?例如,eaapi.jar的更新库或解决方案 问候,, PhilEA的Java API是底层COM API的包装器,它在帮助文件中有文档记录。Java版本通常比COM版本落后一两步 这个方法似乎没有出现在JavaAPI中。C

在企业架构师对象模型的引用中,我找到了类
元素

元素
包含属性
IsComposite
。我使用Sparx系统的JavaAPI(eaapi.jar),但找不到该属性的Setter(
myElement.SetIsComposite(true)
不可能)

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

问候,,
Phil

EA的Java API是底层COM API的包装器,它在帮助文件中有文档记录。Java版本通常比COM版本落后一两步

这个方法似乎没有出现在JavaAPI中。COM类中的其他属性在JavaAPI中有getter/setter,但这个没有。10.0.1009版也是如此

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

从这里看来,您有三种选择:

  • 向Sparx Systems报告该问题,并要求他们向Java API添加相关方法
  • 用C#重写代码以利用完整的API
  • 使用未记录的
    Repository.Execute()
    方法直接操作底层数据库
  • 元素的“复合性”由
    t_object.NType
    列中的值8表示,但该列是重载的,也就是说其值的解释也取决于其他列,而且没有文档记录。因此,如果您需要可维护性,这不是一个好的解决方案

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

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

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

    如果属性是公共的(它也被标记为读/写),请直接使用它:
    myElement.IsComposite=trueGetter和setter方法只是使用OOP的一般方法,但在某些情况下它们不是必需的。您好,Jari,感谢您的快速评论。我已经尝试过这样设置这个属性。但是,这个属性似乎不是公共的。对于class元素的其他布尔属性,Getter和Setter可用:/I我想库的作者忘记了这一点:(