Pergunta

Usando Enterprise Architect (versão 7.5), eu sou tentando refinar a geração de código para C #. Para tornar um atributo com um valor inicial que é uma seqüência de gerar corretamente, a única maneira que eu fui bem sucedido é com o código abaixo. Alguém sabe se uma maneira mais simples de fazer isso? Atualmente, parece um pouco inchado.

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

Solução

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

corresponde attInitial da EA para Property.default em UML.

padrão: String [0..1]

Uma seqüência que é Avaliados para dar um valor padrão para o atributo quando um objeto da classe proprietária é instanciado. - UML 2.2 infra-estrutura 10.2.5, ênfase adicionada

Assim, de acordo com UML, se o tipo da propriedade é uma string, então o valor attInitial deve ser uma expressão que avalia para uma cadeia, não o conteúdo de um literal string.

Se você quer que ele seja um valor literal cadeia de extensão não-UML-complient, você tem que escrever algo um pouco mais complicado que o que você tem feito acima para pega escapar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top