在EMF中,用户可以绘制UML图,并且可以将UML模型转换为Java代码。据我所知,EMF有自己的内部数据结构来捕获用户绘制的UML模型。我想要做的是通过编码而不是通过绘图来制作UML模型,即使用EMF的内部数据结构来表示UML元模型(类,包,属性等)。像,
UmlClass myClass = new UmlClass();
UmlAttribute myAttr = new UmlAttribute();
myClass.addAttribute(myAttr);
这可能吗(甚至不是EMF)?无论如何,我想使用一个完全反映OMG标准UML规范的强大数据结构。
提前致谢。
答案 0 :(得分:0)
没有完全反映OMG规范的类,但EMF ECore是模型的元模型。因此,您可以使用EMF ECore执行所需操作。 http://www.eclipse.org/modeling/emf/docs/#overviews有很多文档和一本优秀的书。该链接有图片和书的链接。
一个例子:
EcoreFactory ecoreFactory = EcoreFactory.eINSTANCE;
EClass myClass = ecoreFactory.createEClass();
myClass.setName("MyClass");
EAttribute myAttr = ECoreFactory.createEAttribute();
myAttr.setName("myAttr");
myAttr.setEType(EcorePackage.Literals.ESTRING);
myClass.getEStructuralFeatures().add(myAttr);
答案 1 :(得分:0)
EMF是一个建模框架,旨在支持一般的建模,而不仅仅是UML。
如果特别是UML,那么确实存在于EMF之上的这种实现。查看UML2。