我是MDSD/EMF的新手,但得到了Eclipse的大力支持。如何创建对现有模型对象的引用?
我创建了一个玩具模型,就像awynne建议的那样回答,而且我非常接近。我只使用EMF及其生成的树编辑器。
这里是我的EMF元模型的总结:
- EClass: Widget
- name
- EClass: WidgetReference
- aWidgetReference : Widget [0..1] Containment = false
- EClass: WidgetContainer
- myWidgets : Widget [0..*] Containment = true
- EClass: ReferenceContainer
- myReferences : WidgetReference [0..*] Containment = true
- EClass: TopLevelClass
- myWidgetContainer : [1] WidgetContainer Containment = true
- myReferenceContainer : [1] ReferenceContainer Containment = true
现在所发生的事情是,在生成的树编辑器的模型,我创造一切从TopLevelClass开始。我可以在WidgetContainer中成功创建多个小部件,并且可以在ReferenceContainer中创建一个WidgetReference并将其与特定的Widget关联。
万一有人运行到这一点,有在生成EMF编辑器代码中的错误:
当我尝试不止一个WidgetReference添加到ReferenceContainer,树编辑器只显示ReferenceContainer下的第一个WidgetReference 。如果我点击树中的WidgetReferences项,它会在属性视图中显示多个WidgetReferences。它只是不会让我在树中看到它们,因此不会让我选择它们来更改它们的引用以将其与实际小部件相关联。
解决方法是根据需要创建尽可能多的引用,保存并关闭模型,然后重新打开它。重新打开后,将显示所有参考。
感谢您的任何帮助/指导。
杰夫
谢谢,迭戈,但没有这不是我要找的。我对交叉模型引用不感兴趣。我只想引用同一模型中的对象。问题是,我无法在生成的模型编辑器中找到一种方法来实际指向模型对象的现有实例,以确保该对象及其字段在对该对象的所有引用中都是相同的。 – 2010-11-10 22:33:02