2012-09-12 11 views
5

Enon özniteliği BreakType breakType olan bir Eclass Vehicle sahibim.Enum referansı varsayılan değer ile nasıl belirlenir = ecore ve gen modelinde null?

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

Ben null Özellik breakType varsayılan ayarlamak istiyorum:

BreakType aynı Ecore modelinde tanımlanır. bunun için attribute->

Ben bunun dışında gen-model ve kod oluşturduktan sonra alıyorum ne
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. 

ben ayarladıktan can varsayılan olarak null Nasıl

BreakType breakType = DRUM // attribute set with default value 

olduğunu breakType için aşağıdaki özellikleri ayarlayın ?

cevap

1

Yapabileceğinizi sanmıyorum. defaultValueLiteral özelliği üzerinden bir varsayılan değer sağlamada başarısız olursa, EMF otomatik olarak özniteliğin türüne uygun bir değer alır. Numaralandırılmış bir tür için, tanımladığı ilk değişmez değerdir.

Oluşturulan kodu her zaman kendiniz değiştirebilirsiniz. Ya da belki unsettable işlevsellik sağlamak için oluşturulan yöntemlerin faydalanmak gerekir:

void unsetAttribute(); 
boolean isSetAttribute(); 

ve unset devlet yerine null değeri kontrol edin.

+0

Teşekkürler Jose. Bu yararlı olacak –

+4

Mmm, EMF Tarifler ne rastlamak bak. Henüz test etmedim, ama belki de aradığınız şey bu: [null'ı destekleyen numaralandırma tabanlı özellikler oluşturma] (http://wiki.eclipse.org/EMF/Recipes#Recipe:_Generating_enumeration-based_attributes_that_support_null) –

+0

Bağlantılı EMF reçetesine bir alternatif olarak, UNDEFINED diyelim ki, bir ekstra enum örneğini tanımlayabilir ve varsayılan olarak, yani ecorediag öğesinin, literal listenin en üstüne geldiğinden emin olun (bunun için varsayılan değer). numara türü otomatik olarak ayarlanacaktır). Bununla birlikte, en azından tanımlanmamış bir varsayılan değer var, ancak boş değil. –

İlgili konular