eclipse插件模型中的一个类需要在完全不同的模型和插件中引用另一个类。Eclipse EMF - 有没有办法在不需要存储tostring()的情况下引用不同eclipse插件中模型的一部分的类?
这样做,我发现这thread,建议使用edatatype并初始化它的实例类与我需要链接到的类型。然而,当我试图在不同的模型链接到我的课,这样可以节省类的toString就像下面这个例子
<tasks description="" id="p1.tsk4" label="1" type="place" time="10">
<requiredCapabilityDescriptor>[email protected] (description: , id: cap2, label:) (parent: null)</requiredCapabilityDescriptor>
<involvedResource>[email protected] (description: null, id: null, label: null) (cad: null, material: null, pointySurface: <unset>, sharpEdges: <unset>, thumbnail: null, weight: <unset>) (changeCost: null, generic: <unset>, investCost: null, manufacturer: null)</involvedResource>
</tasks>
在这个例子中,我链接到两个不同的外部类CapabilityDescriptorImpl和ResourceDescriptorImpl
。正如你所看到的tostring存储在存储和可读性方面不方便,我也不太确定在这种情况下的一致性处理(我的意思是删除,编辑引用的实例)。根据线程写入tostring是因为我选择了可序列化的数据类型,所以我试图让它不可序列化,但这并不起作用。
所以我试图用的EReference,其中最小的字符串保存的另一种方法成为
<tasks description="" id="p1.tsk4" label="1" type="place" time="10">
<requiredCapabilityDescriptor xsi:type="CoD:CapabilityDescriptor" description="" id="cap2" label=""/>
<involvedResource xsi:type="CoD:ResourceDescriptor"/>
</tasks>
这是在可读性和存储方面好多了,但我真的怀疑这是一个实际参考它不包含任何可以引用原始实例的东西。其实我确定它并不是指原始对象,因为它没有显示任何econtainer。再一次出现一致性问题。
我最后一个选择 - 我能想到 - 存储被引用对象的URI,但在这种情况下,我将不得不自己管理所有的一致性问题。
所以我的问题是“是否有更好的方法来实现这个外部类的引用?”