Eclipse MDT/UML2 実装を介して XMI として保存されている UML モデルをロードしようとしています。
これはステートチャートのモデルであり、プロファイルが添付されており、優先度のある遷移をモデル化するために使用されるステレオタイプがこのプロファイルに追加されています。
*.uml ファイルを Eclipse EMF フレームワークでロードしても問題ありません。
この *.uml ファイルをスタンドアロンの Java プロジェクトでロードしたいと考えています。ステレオタイプが適用されたモデルのすべての要素にアクセスしたいと考えています。
すべてを入手できますが、ステレオタイプは入手できません。*.uml ファイルからロードされていないと確信しています。
私が使用するコード:
URI uri = URI.createURI("model.uml");
ResourceSet set = new ResourceSetImpl();
set.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
set.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
set.createResource(uri);
Resource r = set.getResource(uri, true);
Model model = (Model) EcoreUtil.getObjectByType(r.getContents(), UMLPackage.Literals.MODEL);
モデルが提供するすべてのものに 経由でアクセスできるようになりましたmodel.allOwnedElements()
。*.uml ファイルに実際のモデルと共に保存されているプロファイルを見つけましたが、ステレオタイプがモデルの要素に関連付けられていません。
経由でリソース セットに追加する必要があるものを見逃していると思いますgetPackageRegistry() and getResourceFactoryRegistry()
。