【问题标题】:Nested classes with EMF/ecore带有 EMF/ecore 的嵌套类
【发布时间】:2014-10-30 15:32:56
【问题描述】:

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 文件中对嵌套类之类的东西进行建模?

【问题讨论】:

  • 您的意思是要在两个类之间创建包含关系?

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


【解决方案1】:

您不能在 Ecore 中创建嵌套的 EClassesEClass 可以包含的唯一元素是 EStructuralFeatures(引用和属性)、EOperationEAnnotationEGenericTypeETypeParameter

看看 Ecore 元模型: http://download.eclipse.org/modeling/emf/emf/javadoc/2.10.0/org/eclipse/emf/ecore/package-summary.html

【讨论】:

    【解决方案2】:

    要在元模型中的两个 EClass 对象之间创建包含引用,您必须创建 A EReference ereference=EcoreFactory.eInstance.create 并添加母类:motherclass.getEReferences().add(ereference)
    并将子类作为 ereference 的 EType。 ereference.setEType()

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 1970-01-01
      • 2013-06-25
      • 2016-09-05
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      相关资源
      最近更新 更多