org.eclipse.uml2.umlメタモデルに準拠する UML モデルがあるとします。このモデルにはClass
、Property
、およびownedAttribute
それらの間の関係が含まれているとします。
Ecore レベルでは、Class
とProperty
はEObjects
であり、ownedAttribute
は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
興味のないより一般的なものを除外するには、どのようなアプローチを使用できますか?