我可以使用Eclipse-EMF的内部数据结构吗?
问题描述:
在EMF中,用户可以绘制UML图,并且可以将UML模型转换为Java代码。据我所知,EMF有自己的内部数据结构来捕捉用户绘制的UML模型。而我想要做的是通过编码来制作UML模型,而不是通过绘制,即通过使用表示UML元模型(类,包,属性等)的EMF内部数据结构。像,我可以使用Eclipse-EMF的内部数据结构吗?
UmlClass myClass = new UmlClass();
UmlAttribute myAttr = new UmlAttribute();
myClass.addAttribute(myAttr);
这是可能的(甚至没有EMF)?无论如何,我想要使用完全反映OMG标准UML规范的健壮数据结构。
在此先感谢。
答
没有完全反映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);