预订演示
前页 后页

函数宏

函数宏是一种操作和格式化各种元素数据项的便捷方式。每个函数宏都返回一个结果string 。使用函数宏的结果有两种主要方法:

  • 将返回的string直接替换到输出中,如:%TO_LOWER(attName)%
  • 将返回的string存储为变量定义的一部分,例如:$name = %TO_LOWER(attName)%
函数宏可以接受参数,这些参数可以传递给宏:
  • 字符串文字,用双引号括起来
  • 不带百分号的直接替换宏
  • 变量引用
  • 数字文字
使用逗号分隔的列表传递多个参数。

函数宏根据全大写样式命名,如下所示:

%CONVERT_SCOPE(操作范围)%

此处描述了可用的函数宏。参数用方括号表示,如下所示:

FUNCTION_NAME([参数])。

CONVERT_SCOPE([umlScope])

为了与支持的语言一起使用,将 [umlScope] 转换为正在生成的语言的适当范围关键字。此表显示了 [umlScope] 相对于给定语言的转换。

语言

转换

C++

包==>公开

公开 ==> 公开

私人 ==> 私人

受保护 ==> 受保护

C#

包==>内部

公开 ==> 公开

私人 ==> 私人

受保护 ==> 受保护

德尔福

包==>受保护

公开 ==> 公开

私人 ==> 私人

受保护 ==> 受保护

Java

包==> {空白}

公开 ==> 公开

私人 ==> 私人

受保护 ==> 受保护

PHP

包==>公开

公开 ==> 公开

私人 ==> 私人

受保护 ==> 受保护

VB

包==> 受保护

公开 ==> 公开

私人 ==> 私人

受保护 ==> 受保护

VB.Net

包==>朋友

公开 ==> 公开

私人 ==> 私人

受保护 ==> 受保护

COLLECTION_CLASS([语言])

为当前链接属性指定的语言提供适当的集合类。

CSTYLE_COMMENT([wrap_length])

使用 /* 和 */ 将当前范围内的元素的注记转换为纯 C 样式的注释。

DELPHI_PROPERTIES([范围], [分隔符], [缩进])

生成一个 Delphi属性。

DELPHI_COMMENT([wrap_length])

将当前范围内的元素的注记转换为 Delphi 注释。

EXEC_ADD_IN(, [function_name],, ...,)

调用Enterprise Architect插件

函数,它可以返回一个结果string 。

[插件

] 和 [function_name] 指定插件的名称插件

和函数被调用。

插件

的参数插件

函数可以通过参数 [prm_1] 到 [prm_n] 指定。

$result = %EXEC_ADD_IN("MyAddin", "ProcessOperation", classGUID, opGUID)%

由 EXEC_ADD_IN 宏调用的任何函数都必须有两个参数:一个EA.Repository object和一个包含来自 EXEC_ADD_IN 调用的任何附加参数的 Variant 数组。返回类型应该是 Variant。

Public函数ProcessOperation(存储库As EA.Repository , args As Variant) As Variant

查找([src],[子字符串])

[subString] 第一个实例在 [src] 中的位置; -1 如果没有。

GET_ALIGNMENT()

返回一个string ,其中当前输出行上的所有文本都转换为空格和制表符。

JAVADOC_COMMENT([wrap_length])

将当前范围内的元素的注记转换为 javadoc 样式的注释。

左([src],[count])

[src] 的前 [count] 个字符。

长度([src])

[src] 的长度。返回一个string 。

MATH_ADD(x,y) MATH_MULT(x,y) 和 MATH_SUB(x,y)

在代码模板或 DDL模板中,这三个宏分别执行以下数学函数:

  • 加法 (x+y)
  • 乘法 (x*y) 和
  • 减法 (xy)
参数 x 和 y 可以是整数或变量,或两者的组合。考虑这些示例,用于 C++ 代码生成的“类”模板:
  • $a = %MATH_ADD(3,4)%
  • $b = %MATH_SUB(10,3)%
  • $c = %MATH_MULT(2,3)%
  • $d = %MATH_ADD($a,$b)%
  • $e = %MATH_SUB($b,$c)%
  • $f = %MATH_MULT($a,$b)%
  • $g = %MATH_MULT($a,10)%
  • $h = %MATH_MULT(10,$b)%
这些以相同的序列计算:
  • a = 3 + 4 = $a
  • b = 10 - 3 = $b
  • c = 2 * 3 = $c
  • d = a + b = $d
  • e = b - c = $e
  • f = a * b = $f
  • g = a * 10 = $g
  • h = 10 * b = $h
生成代码时,.h 文件(对于 C++)包含以下相应的字符串:
  • a = 3 + 4 = 7
  • b = 10 - 3 = 7
  • c = 2 * 3 = 6
  • d = a + b = 14
  • e = b - c = 1
  • f = a * b = 49
  • g = a * 10 = 70
  • h = 10 * b = 70

MID([src], [start]) MID([src], [start], [count])

[src] 的子字符串,从 [start] 开始,包括 [count] 个字符。其中 [count] 被省略, string的其余部分被包括在内。

PI([选项],[值],{[选项],[值]})

将当前模板的 PI 设置为 [value]。 [value] 的有效值为:

  • "\n"
  • "\t"
  • “”
  • “”
<option> 控制新 PI 何时生效。 <option> 的有效值为:
  • I , Immediate: 在下一个非空模板行之前生成新的 PI
  • N , Next: 在下一个非空模板行之后生成新的 PI
一次调用中允许多对选项。使用 this 的一个例子是一个关键字总是在一个新的行上,如下所示:

%PI=""%

%类抽象? “抽象的”%

%if classTag:"宏" != ""%

%PI(" I "、"\n"、" N "、"")%

%classTag:"宏"%

%万一%

班级

%班级名称%

有关更多详细信息,请参阅处理指令 (PI) 宏

PROCESS_END_OBJECT([模板名称])

使与基类相距较远的一个类可以转化为基类的对象(如属性、操作、包、参数、列等)。 [template_name] 是指临时存储数据的工作模板。

REMOVE_DUPLICATES([源], [分隔符])

其中[源]是一个[分隔符]分隔列表;这将删除任何重复或空字符串。

替换([ string ],[旧],[新])

将给定string <string> 中所有出现的 [old] 替换为 [new]。

RESOLVE_OP_NAME()

解决两个方法源接口具有相同名称的接口名称冲突。

RESOLVE_QUALIFIED_TYPE() RESOLVE_QUALIFIED_TYPE([分隔符]) RESOLVE_QUALIFIED_TYPE([分隔符], [默认])

为当前属性、链接属性、链接父项、操作或参数生成限定类型。启用除以外的分隔符的规范。以及需要某个值时的默认值。

RIGHT([src], [count])

[src] 的最后 [count] 个字符。

TO_LOWER([ string ])

将 [ string ] 转换为小写。

TO_UPPER([ string ])

将 [ string ] 转换为大写。

TRIM([ string ]) TRIM([ string ], [trimChars])

从 [ string ] 中删除尾随和前导空格。如果指定了 [trimChars],则删除 <trimChars> 集中的所有前导和尾随字符。

TRIM_LEFT([ string ]) TRIM_LEFT([ string ], [trimChars])

从 <string> 中删除指定的前导字符。

TRIM_RIGHT([ string ]) TRIM_RIGHT([ string ], [trimChars])

从 <string> 中删除指定的尾随字符。

VB_COMMENT([wrap_length])

将当前范围内的元素的注记转换为 Visual Basic 样式注释。

WRAP_COMMENT([comment], [wrap_length], [indent], [start_string])

以宽度 [wrap_length] 将文本 [comment] 换行,将 [indent] 和 [start_string] 放在每行的开头。

$behavior = %WRAP_COMMENT(opBehavior, "40", " ", "//")%

<wrap_length> 仍然必须作为string传递,即使 WRAP_COMMENT 将此参数视为整数。

WRAP_LINES([文本], [wrap_length], [start_string] {, [end_string] })

将 [text] 包装为指定为 [wrap_length],将 [start_string] 添加到每行的开头,并将 [end_string] 添加到行尾(如果已指定)。

XML_COMMENT([wrap_length])

将当前范围内的元素的注记转换为 XML 样式的注释。

了解更多