我正在尝试通过 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 文件中找到了与实际模型一起存储的配置文件,但是
构造型不附加到模型中的元素。
我认为我缺少一些必须通过 getPackageRegistry() 和 getResourceFactoryRegistry() 添加到资源集中的内容。
最佳答案
您应该使用插件项目。
关于java - 使用具有应用配置文件的 EMF 加载 UML 状态图模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13881825/