仅检索EC类的最特定的EReference



假设我有一个符合org.eclipse.uml2.UML元模型的UML模型。假设该模型包含ClassProperty和它们之间的ownedAttribute关系。

在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元模型没有指定EReference之间的任何层次结构。我可以使用什么方法来筛选出我不感兴趣的更通用的EReferences

您可以筛选出"派生"引用(org.eclipse.emf.ecore.EStructurealFeature.isDerived()==false)。

相关内容

  • 没有找到相关文章

最新更新