使用EMF / ecore的嵌套类

时间:2014-10-30 15:32:57

标签: eclipse eclipse-emf emf eclipse-emf-ecore ecore

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文件中为嵌套类建模?

2 个答案:

答案 0 :(得分:2)

您无法在Ecore中创建嵌套的EClassesEClass可以包含的唯一元素是EStructuralFeatures(引用和属性),EOperationEAnnotationEGenericTypeETypeParameter。< / 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()