如何在ecore和gen模型中设置默认值为null的枚举引用?

时间:2012-09-12 14:17:27

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

我有一个Eclass Vehicle,其枚举属性为BreakType breakType

BreakType在相同的Ecore模型中定义为:

BreakType{
    DRUM(0), DISC(1), BLADE(2)
}

我想将属性breakType默认设置为null。为此,我为breakType attribute->

设置了以下属性
DefaultLiteralValue: // it's blank
Unsettable: True

Properties of BreakType enum
Default Value : DRUM=0 // this is shown in editor UI even If i remove it from xml.

在生成gen-model和代码之后我得到的是

BreakType breakType = DRUM // attribute set with default value

默认情况下如何将其设置为null?

1 个答案:

答案 0 :(得分:1)

我认为你不能。如果未能通过defaultValueLiteral属性提供默认值,EMF会自动选择适合该属性类型的值。对于枚举类型,它是它定义的第一个文字值。

您始终可以自行修改生成的代码。或者您可能应该使用生成的方法来提供不可设置的功能:

void unsetAttribute();
boolean isSetAttribute();

并检查未设置状态而不是null值。