2009-07-01 5 views
1

Используя Enterprise Architect (версия 7.5), я пытаюсь уточнить генерацию кода для C#. Чтобы создать атрибут с начальным значением, который является строкой, генерируется правильно, единственный способ, которым я был успешным, - это код ниже. Кто-нибудь знает, есть ли более простой способ сделать это? В настоящее время это кажется немного раздутым.Упрощение создания кода архитектора предприятия

%if attType=="string" and attInitial!=""% 
= " 
%elseIf attInitial!=""% 
= 
%endIf% 
%attInitial ? value% 
%if attType=="string" and attInitial!=""% 
" 
%endIf% 

ответ

1
%if attInitial!=""% 
= 
%attInitial% 
%endIf% 

ЕА attInitial соответствует Property.default в UML.

по умолчанию: String [0..1]

Строка, оценивается дать значение по умолчанию для атрибута, когда объект имущего класса конкретизируется. - UML 2.2 Инфраструктура 10.2.5, подчеркивание добавлено

Итак, в соответствии с UML, если тип свойства является строка, то значение attInitial должно быть выражение, которое приводится к строке, а не содержимое строковый литерал.

Если вы хотите, чтобы это было литеральное значение строки расширения, отличное от UML, вам нужно написать что-то более сложное, чем то, что вы сделали выше, чтобы справиться с экранированием.

Смежные вопросы