GEN 命令使您能够在可执行程序中向对象生成事件。此命令可以在带有或不带参数的情况下执行。
<instanceName>->GEN(<eventName>(<parameterName>
[, <parameterName>]*))
<instanceName>->GEN(<eventName>())
<instanceName>->GEN(<eventName>)
instanceName
指定实例或导航表达式的规范名称。
规范名称可以是:
导航表达式可以是:
规范名称始终引用同一个实例。导航表达式可以在不同的时间引用不同的实例。例如,如果实例 B[0] 到 B[3] 已被删除,那么 B[#0] 将引用实例 B[4]。
eventName
指定要生成的事件的名称。如果此事件需要参数,请将参数包括在 GEN 命令中。
如果事件带有参数,那么 GEN 命令将为该事件提供正确数目的参数以及正确的类型。例如,要生成事件 X,其中 X 定义为 X(int, B*, char*),并且 B 是 IBM® Rational® Rhapsody® 中定义的类,请输入:
A[1]->GEN(X(3,B[5],"now"))
或者
A[1]->GEN(X(1,NULL,"later"))
如果事件的参数并非指向
Rational Rhapsody 中定义的类的指针,例如
int、char* 或 userType(其中
userType 是在 Rational Rhapsody 外部定义的
用户定义类型),那么跟踪器依靠 C++ 运算符 >> (istream&)
或模板 string2X(T& t) 来正确解释您输入的字符。由于运算符
>> 会将字符 1 转换为整数 1,因此
A[1]->GEN(Y(1))
有效;但是,
由于运算符 >>
不会将字符“one”转换为整数,因此 A[1]->GEN(Y(one))
无效。同样,如果您使用了在 Rational Rhapsody
外部定义的类型,并且要通过跟踪器为其生成事件,那么必须为其提供运算符
>> 操作。