2012-09-12 3 views
5

나는 enum 속성이 BreakType breakType 인 Eclass Vehicle을 가지고있다.ecore 및 gen 모델에서 기본값 = null 인 enum 참조를 설정하는 방법은 무엇입니까?

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

내가 널 (null)로 속성을 breakType 기본을 설정하려면 :

BreakType이 같은 Ecore를 모델에 정의되어 있습니다. 그것을 위해 나는 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. 

내가 그것을 설정할 수 있습니다 기본적으로 null로 어떻게

BreakType breakType = DRUM // attribute set with default value 

입니다 breakType에 대해 다음 속성을 설정 ?

답변

1

나는 그렇게 생각하지 않습니다. defaultValueLiteral 등록 정보를 통해 기본값을 제공하지 않으면 EMF는 자동으로 속성 유형에 적합한 값을 선택합니다. 열거 형식의 경우 정의 된 첫 번째 리터럴 값입니다.

생성 된 코드는 언제든지 직접 수정할 수 있습니다. 아니면 당신은 unsettable 기능을 제공하기 위해 생성 방법을 이용해야한다 :

void unsetAttribute(); 
boolean isSetAttribute(); 

및 설정되지 않은 상태 대신 null 값을 확인.

+0

호세에게 감사드립니다. 이것은 도움이 될 것입니다 –

+4

음, EMF 요리법에서 내가 무엇을 보았는지보십시오. 아직 테스트하지는 않았지만, 아마도 이것이 당신이 찾고 있던 것입니다 : [null을 지원하는 열거 기반 속성 생성] (http://wiki.eclipse.org/EMF/Recipes#Recipe:_Generating_enumeration-based_attributes_that_support_null) –

+0

링크 된 EMF 레시피의 대안으로, 추가로 enum 인스턴스를 정의하고, UEFLEDED를 정의하고, 기본값으로 사용되도록 할 수 있습니다. 즉, ecorediag에서 리터럴리스트의 맨 위로 이동합니다 (기본값 열거 형이 자동으로 조정됩니다. 이것으로 적어도 정의되지 않은 디폴트 값이 존재하지만 null이 아닙니다. –