5

我有一个 Eclass Vehicle,它有一个 enum 属性BreakType breakType

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

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

我想将属性breakType默认设置为空。为此,我为属性设置了以下breakType属性->

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?

4

1 回答 1

1

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

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

void unsetAttribute();
boolean isSetAttribute();

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

于 2012-09-13T22:12:54.667 回答