【发布时间】:2014-04-24 03:53:53
【问题描述】:
是否可以让 EMF Ecore 模型中的枚举实现接口?在 Java 中可能有类似的东西:public enum MyEnum implements MyInterface。我希望能够通过 EMF 生成类似的东西(顺便说一句,默认情况下,EMF 生成的所有枚举似乎都实现了org.eclipse.emf.common.util.Enumerator)。
我找不到让生成的枚举实现特定接口的方法。我无法在 ecore 图表编辑器或 ecore 模型编辑器中使用枚举定义继承关系。我可以在生成代码后手动将implements 添加到枚举中,但是每次我再次生成代码时它都会被覆盖。
或者,有没有办法让 implements(只有它)不被 EMF 的代码生成覆盖?
我知道我可以将类 javadoc 注释中的 @generated 标记修改为 @generatedNOT,因此代码生成器知道它不能覆盖该类,但它会在我修改模型时阻止更新该类。
现在我所做的是每次在模型中修改此枚举时手动添加implements,并在其余时间保留@generatedNOT 标签。我觉得这会在几个月后变得危险,因为我会忘记它,或者更糟糕的是,当其他人试图修改它时,即使有正确的记录。
有些相关:EMF Eclipse: enumeration with custom fields (properties)
【问题讨论】: