Eclipse 如何在运行时可用的ECORE中创建Has-a引用(包含)?

Eclipse 如何在运行时可用的ECORE中创建Has-a引用(包含)?,eclipse,uml,eclipse-emf,Eclipse,Uml,Eclipse Emf,哎,, 我是EMF/ECORE的新手。我想建立一个有参考包容的模型,但是包容 应该在运行时可用。因此: 我有不同的课程,有一卷。因此,体积在类中建模: MyVolume - depth: EDouble - height: EDouble - width: EDouble - volume() MyClass - name: EString - volume: MyVolume 如果a使用.genmodel创建编辑器,我可以将其添加到类a卷中。但我希望Volume是类的一部分,这

哎,, 我是EMF/ECORE的新手。我想建立一个有参考包容的模型,但是包容 应该在运行时可用。因此:

我有不同的课程,有一卷。因此,体积在类中建模:

MyVolume
 - depth: EDouble
 - height: EDouble
 - width: EDouble
 - volume()

MyClass
 - name: EString
 - volume: MyVolume
如果a使用.genmodel创建编辑器,我可以将其添加到类a卷中。但我希望Volume是类的一部分,这样用户就可以将类Volume用作类似名称的属性,而无需首先创建它。深度、高度和宽度的显示方式应与编辑器属性视图中的属性名称相同

应该设置模型中的哪个属性,或者是否有其他方法来归档目标

提前谢谢

斯特芬

我想出了一个解决办法:

我创建了MyVolume类,然后 使用My.impl.MyAttributeImpl作为实例类名的数据类型MyVolume。 然后在MyClass中创建一个属性volume:MyVolume数据类型。 因此我可以访问源代码中的depth,如fixture.getVolume.getDepth; 但在编辑器的“属性”视图中仅显示体积。 还有什么想法吗


Steffen

为什么不简单地让MyClass扩展MyVolume,而不是拥有一个属性?我认为您想要的这种联合在任何其他方面都不受支持。

您也可以在创建MyClass时覆盖项目提供程序以自动创建MyVolume的实例


EMF手册中有很多这样的例子,请看一下覆盖命令部分。

谢谢您的回答。这个例子应该只强调探索EMF/ECORE的用例。我有一种解决我问题的方法,见上文!