我正在尝试通过 eclipse MDT/UML2 实现加载存储为 XMI 的 UML 模型。
它是一个状态图模型,它附加了一个概要文件,并将一个原型添加到此概要文件中,用于对具有优先级的转换进行建模。
使用 eclipse EMF 框架加载 *.uml 文件很好。
我现在想用一个独立的 java 项目加载这个 *.uml 文件。我想使用应用的刻板印象访问模型的所有元素。
我可以得到一切,但不是刻板印象。我确定它们没有从 *.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 文件中找到了与实际模型一起存储的 Profile,但 Stereotypes 未附加到模型中的元素。
我想我错过了一些必须通过getPackageRegistry() and getResourceFactoryRegistry()
.