ecore模型编辑器不允许将类作为子类添加到类中;手动完成,如
...
<eClassifiers xsi:type="ecore:EClass" name="Test_Class">
<eClassifiers xsi:type="ecore:EClass" name="Nested_Class"></eClassifiers>
...
结果
org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'eClassifiers' not found. (platform:/resource/EMFTestProject/model/My.ecore, 5, 62)
有没有办法在ecore文件中为嵌套类建模?
答案 0 :(得分:2)
您无法在Ecore中创建嵌套的EClasses
。 EClass
可以包含的唯一元素是EStructuralFeatures
(引用和属性),EOperation
,EAnnotation
,EGenericType
和ETypeParameter
。< / p>
看看Ecore元模型: http://download.eclipse.org/modeling/emf/emf/javadoc/2.10.0/org/eclipse/emf/ecore/package-summary.html
答案 1 :(得分:0)
要在元模型中的两个EClass对象之间创建包含引用,您必须创建一个EReference ereference=EcoreFactory.eInstance.create
并添加一个父类:motherclass.getEReferences().add(ereference)
并将children类作为ereference的EType。 ereference.setEType()