我有一个类似下一个的EMF模型:
HardwareVerification -1-*-> Driver
HardwareVerification -0-*-> Environment
Environment -1-1-> Driver
每当我创建EMF模型的实例时,我必须在环境中创建一个驱动程序,而另一个在HardwareVerification中创建,但我需要的是在两个地方都有相同的驱动程序。
例如:
h1 -> driver 1
h1 -> env1
env1 -> driver1
我的问题是:我应该如何建模? *我读到要管理EMF中的链接,您可以使用另一个带有源和目标属性的EClass。
答案 0 :(得分:1)
可以将EReferences建模为包含或非包含引用。如果使用非包含引用,则可以引用模型中包含的相同对象。
假设环境“拥有”驱动程序,那么这将是包含引用。 并且HardwareVerification只会“使用”驱动程序,那么这将是非包含引用。文本“UML”图可能如下所示(< x>表示包含,<>非包含引用。
env1 <x>-----> driver1
^
|
h1 <>--------------
答案 1 :(得分:0)
我相信您所谈论的链接是EReference。
在ecore文件中向EClass添加EReference时,可以使用EReference的下限和上限属性指定基数。
在您的情况下,您可以设置LowerBound = 1,UpperBound = -1(无限)来表示-1 - * - &gt;