仅检索EClass的最具体的引用

时间:2014-10-22 14:34:47

标签: eclipse-emf eclipse-emf-ecore eclipse-mdt

假设我有一个符合 org.eclipse.uml2.uml 元模型的UML模型。假设此模型在它们之间包含ClassPropertyownedAttribute关系。

在Ecore级别,ClassPropertyEObjects,而ownedAttributeEReference

我的任务如下:给定EObject,检索其所有EReferences。我可以使用以下代码片段完成此操作:

for (EReference eRef : myEObject.eClass().getEAllReferences()) {
    if (eObject.eIsSet(eRef)) {
        // found a relevant EReference
    }
}

回到上面的UML示例,此代码段将识别以下所有EReferencesownedElementownedMembermemberfeatureattributeownedAttributerole

我的问题:在标识EReferences之外,我只想保留ownedAttribute,因为这种关系根据UML标准对所有其他关系进行子集。但是,Ecore元模型未指定EReferences之间的任何类型的层次结构。我可以使用什么方法来过滤掉我不感兴趣的更一般的EReferences

1 个答案:

答案 0 :(得分:0)

您可以过滤掉“派生”引用(org.eclipse.emf.ecore.EStructuralFeature.isDerived()== false)。