内置函数

内置函数提供了访问源文件和迁移对象(潜在的 Rational® Synergy 对象)的属性的便捷方法。

并非所有迁移源都支持所有这些属性。例如,当执行从纯文件系统的完全迁移时,将不定义诸如 releasestatecomment 的属性。

如果映射规则尝试访问未定义的属性,那么将返回特殊的未定义值。基于未定义值的所有操作都将返回未定义值,但未定义函数除外,该函数将返回 TRUE。未定义值的布尔值为 FALSE,所以如果某个条件产生了未定义值,那么将不执行对应的操作。

表 1. 函数和返回类型
函数 返回类型 描述
%attribute(expression) 指定属性的类型。 指定属性的值。expression 被视为字符串值并且指定属性的名称。 如果指定属性不存在,那么将返回特殊未定义值。
%create_time Date 对象的创建时间,这是 %attribute('create_time') 的便捷等效值。
%date(expression) Date 从 ISO8601 格式的日期字符串转换而来的日期值。表达式必须是有效 ISO8601 格式的字符串值。
%encoding String 特定文件的文件编码 Groovy 最佳估算值的 CharSet 名称。
%is_dir Boolean 如果对象是目录,那么为 TRUE,否则为 FALSE
%is_executable Boolean 如果对象具有可执行许可权,那么为 TRUE,否则为 FALSE
%is_link Boolean 如果对象是符号链接(在 UNIX 上),那么为 TRUE,否则为 FALSE
%is_modifiable Boolean 如果对象具有可修改许可权(允许所有者对其进行修改),那么为 TRUE,否则为 FALSE
%is_text Boolean 如果 Rational Synergy 确定文件具有 ASCII 内容,那么为 TRUE,或者如果文件具有二进制内容,那么为 FALSE
%locale String 包含了客户机系统的语言环境值的字符串。这是通过在 Java™ 中使用 Locale.getDefault() 而返回的值。例如,可能返回字符串“en_US”。有关更多信息,请参阅 http://download.oracle.com/javase/6/docs/api/java/util/Locale.html#getDefault()
%mode 整型 包含了源对象的 UNIX 许可权方式的整数或者最接近的等效值。
%modify_time Date 源对象的 modify_time
%name String 源对象的 simple name。对于文件系统中的文件或目录,这是该文件或目录的名称(不带任何路径信息)。
%owner String 源对象的所有者,这是 %attribute('owner') 的便捷等效值。
%path String

包含了源对象的完整路径的字符串。

对于所迁移的文件,该字符串的确切含义取决于所用迁移插件的类型。如果从纯源进行迁移,那么该字符串是从顶级迁移源目录开始的完整相对路径,其中包含该目录的名称(因此,没有任何对象具有空的路径名)。

对于 Rational Synergy 对象,该字符串是顶级对象的名称加上从该顶级对象开始的相对路径。 对于处于维护工作区内的文件,该字符串包含此文件在该工作区中的路径。

%release String 源对象的发布标识,这是 %attribute('release') 的便捷等效值。
%size Long 以字节为单位的对象大小。
%status String 源对象的状态,这是 %attribute('status') 的便捷等效值。
%system_property(expression) String

返回等效于在 Java 中调用 System.getProperty(propertyName) 的字符串。参数是必须为 Java 系统属性的有效名称的字符串值。

例如,%system_property( 'user.language') 可能返回字符串“en_US”。

有关 Java 系统属性的更多信息,请访问 http://download.oracle.com/javase/6/docs/api/java/lang/System.html#getProperties()

%tr(expression1, expression2, expression3[, expression4]) String

返回等效于通过使用 expression2expression3 的 POSIX tr 命令以管道方式传送 expression1 值的字符串。 请访问 http://en.wikipedia.org/wiki/Tr_%28Unix%29 以获取关于 tr 命令的详细信息。

可选 expression4 参数可具有值“c”、“d”或“s”。这些值分别对应于选项 -c(表示补充)、-d(表示删除)和 -s(表示压缩相邻的完全相同字符)。

示例:%tr(%name, ’ab’, ’jk’)

该示例中的 %tr 将返回每一“a”和“b”字母均分别转换为字母“j”和“k”的名称。

此函数可用于映射文件名中的非法或不需要的字符。可使用以下格式的规则来创建全局映射:

WHEN TRUE SET name to %tr(%name,"…","…")

%type String 源对象的 Rational Synergy 类型,这是 %attribute('type') 的便捷等效值。
%undefined Boolean 如果表达式未定义,那么为 TRUE,或者如果表达式已定义,那么为 FALSE
%version String 源对象的 Rational Synergy 版本,这是 %attribute('version') 的便捷等效值。

反馈