【问题标题】:Simplify Enterprise Architect code generation简化 Enterprise Architect 代码生成
【发布时间】:2010-11-07 08:58:42
【问题描述】:
使用Enterprise Architect(7.5 版),我正在尝试改进C# 的代码生成。要使具有初始值为字符串的属性正确生成,我成功的唯一方法是使用下面的代码。有谁知道是否有更简单的方法来做到这一点?目前看起来有点臃肿。
%if attType=="string" and attInitial!=""%
= "
%elseIf attInitial!=""%
=
%endIf%
%attInitial ? value%
%if attType=="string" and attInitial!=""%
"
%endIf%
【问题讨论】:
标签:
code-generation
enterprise-architect
【解决方案1】:
%if attInitial!=""%
=
%attInitial%
%endIf%
EA 的 attInitial 对应于 UML 中的 Property.default。
默认值:字符串 [0..1]
一个经过求值的字符串,用于在实例化所属类的对象时为属性提供默认值。 -- UML 2.2 基础设施 10.2.5,增加重点
所以根据 UML,如果属性的类型是字符串,那么值 attInitial 应该是一个计算结果为字符串的表达式,而不是字符串文字的内容。
如果您确实希望它是一个不符合 UML 的扩展字符串文字值,您必须编写一些比您上面所做的更复杂的东西来处理转义。