2009-07-01 5 views
1

En utilisant Enterprise Architect (version 7.5), j'essaie d'affiner la génération de code pour C#. Pour créer un attribut avec une valeur initiale qui est une chaîne générer correctement, la seule façon dont j'ai réussi est avec le code ci-dessous. Est-ce que quelqu'un sait si une façon plus simple de le faire? Il semble actuellement un peu gonflé.Génération de code Enterprise Architect simplifiée

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

Répondre

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

EA attInitial correspond à Property.default en UML.

défaut: String [0..1]

Une chaîne est évaluée pour donner une valeur par défaut de l'attribut lorsqu'un objet de la classe possédante est instancié. - UML 2.2 infrastructure 10.2.5, l'accent ajouté

Ainsi, selon UML, si le type de la propriété est une chaîne, la valeur attInitial doit être une expression qui évalue à une chaîne, pas le contenu d'un chaîne littérale.

Si vous voulez que ce soit une valeur littérale de chaîne d'extension non conforme à UML, vous devez écrire quelque chose d'un peu plus compliqué que ce que vous avez fait ci-dessus pour gérer l'échappement.

Questions connexes