在EMF Ecore模型中使用枚举实现一个接口是否可行?在Java中可能有这样的代码:
public enum MyEnum implements MyInterface
。我希望通过EMF生成类似的代码(顺便说一句,默认情况下,所有由EMF生成的枚举都实现了org.eclipse.emf.common.util.Enumerator
)。但我找不到让生成的枚举实现特定接口的方法。在ecore图形编辑器或ecore模型编辑器中都无法定义枚举的继承关系。我可以在生成代码后手动添加implements
部分,但每次重新生成代码时它都会被覆盖。另外,是否有办法让EMF的代码生成器不覆盖implements
(只是它)?我知道可以修改类javadoc注释中的@generated
标签为@generatedNOT
,这样代码生成器就知道不要覆盖该类了,但这样做会阻止我在修改模型时更新该类。现在,我每次修改这个枚举时都会手动添加implements
,并保持其余时间的@generatedNOT
标签。但我感觉过一段时间我就会忘记,并且如果有人尝试修改它,即使已经正确地记录了,也可能会变得危险。与此有关的一些问题请参见:EMF Eclipse:带自定义字段(属性)的枚举。