假设我有一个符合org.eclipse.uml2.uml元模型的 UML 模型。假设此模型包含 a Class
、 aProperty
和它们之间的ownedAttribute
关系。
在 Ecore 级别, theClass
和 theProperty
是EObjects
,而 theownedAttribute
是 a EReference
。
我的任务如下:给定一个EObject
,检索它的所有EReferences
. 我可以使用以下代码片段来完成此操作:
for (EReference eRef : myEObject.eClass().getEAllReferences()) {
if (eObject.eIsSet(eRef)) {
// found a relevant EReference
}
}
回到上面的 UML 示例,此代码片段将识别以下所有内容EReferences
:ownedElement
, ownedMember
, member
, feature
, attribute
, ownedAttribute
, role
。
我的问题:在已识别的EReferences
中,我只想保留ownedAttribute
,因为根据 UML 标准,这种关系是所有其他关系的子集。但是,Ecore 元模型没有指定 EReference 之间的任何类型的层次结构。我可以使用什么方法来过滤掉EReferences
我不感兴趣的更一般的内容?