前页 后页

功能宏

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

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

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

%CONVERT_SCOPE(opScope)%

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

FUNCTION_NAME([参数])。

CONVERT_SCOPE([umlScope])

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

语言

转换次数

C ++

包==>公共

公开==>公开

私人==>私人

受保护==>受保护

C#

包==>内部

公开==>公开

私人==>私人

受保护==>受保护

德尔菲

包==>受保护

公开==>公开

私人==>私人

受保护==>受保护

爪哇

包==> {空白}

公开==>公开

私人==>私人

受保护==>受保护

的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 Add-In函数,该函数可以返回结果字符串。

[addin_name]和[function_name]指定Add-In和要调用的函数的名称。

参数到Add-In功能可以通过参数[prm_1]至[prm_n]来指定。

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

EXEC_ADD_IN宏要调用的任何函数都必须具有两个参数:EA.Repository对象,以及包含EXEC_ADD_IN调用中任何其他参数的Variant数组。返回类型应为Variant。

公共功能ProcessOperation(存储库为EA.Repository,args为变体)为变体

FIND([src],[subString])

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

GET_ALIGNMENT()

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

JAVADOC_COMMENT([wrap_length])

将当前作用域中元素的注释转换为javadoc样式的注释。

LEFT([src],[count])

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

长度([src])

[src]的长度。返回一个字符串。

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]的情况下,将包括其余字符串。

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

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

  • “ \ n”
  • “ \ t”
  • “”
  • “”
<option>控制新PI何时生效。 <option>的有效值为:
  • I,立即:新的PI在下一个非空模板行之前生成
  • N,下一步:新的PI在下一个非空模板行之后生成
一个呼叫中允许多对选项。一个可能使用这种情况的示例是,其中一个关键字始终位于换行符,如下所示:

%PI =“”%

%classAbstract? “抽象”%

%if classTag:“宏”!=“”%

%PI(“ I”,“ \ n”,“ N”,“”)%

%classTag:“宏”%

%万一%

%班级名称%

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

PROCESS_END_OBJECT([template_name])

使远离基础类一个类的类可以转换为基础类的对象(例如属性,操作,包,参数和列)。 [template_name]是指临时存储数据的工作模板。

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

其中[源]是[分隔符]分隔的列表;这将删除所有重复或空字符串。

替换([字符串],[旧],[新])

在给定的字符串<string>中用[new]替换所有出现的[old]。

RESOLVE_OP_NAME()

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

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

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

RIGHT([src],[count])

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

TO_LOWER([string])

将[string]转换为小写。

TO_UPPER([字串])

将[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_COMMENT将此参数视为整数,仍必须将<wrap_length>作为字符串传递。

WRAP_LINES([text],[wrap_length],[start_string] {,[end_string]})

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

XML_COMMENT([wrap_length])

将当前作用域中元素的注释转换为XML样式的注释。

学到更多