1

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 の例に戻ると、このコード スニペットは次のすべてEReferencesownedElement識別します。ownedMembermemberfeatureattributeownedAttributerole

私の問題: 識別された のうち、EReferencesのみを保持したいと思いownedAttributeます。これは、この関係が UML 標準に従って他のすべてをサブセット化するためです。ただし、Ecore メタモデルは、EReference 間のいかなる種類の階層も指定しません。EReferences興味のないより一般的なものを除外するには、どのようなアプローチを使用できますか?

4

1 に答える 1

0

「派生」参照を除外できます (org.eclipse.emf.ecore.EStructuralFeature.isDerived() == false)。

于 2014-10-23T15:50:43.970 に答える