特性和生成属性

特性是对象包括的用以维护其状态的变量。对象将包括的特性作为数据项的集合。数据项为变量指定名称和类型,其中类型为数据类型。对象的数据项会映射到对象结构的成员。该成员的名称和类型与对象数据的名称和类型相同。

例如,Valve 对象类型的 isClosed 特性的值作为数据成员嵌入在 Valve 结构内:

struct Valve {
    /*** User explicit entries ***/
    RiCBoolean isClosed;   /*## attribute isClosed ##*/
};

RiCBoolean 类型在 C 中等同于 OMBoolean,是 IBM® Rational® Rhapsody® Developer for C++ 框架中定义的一种布尔数据类型。

访问器操作使您能够访问数据,而增变器操作使您能够修改数据。如果 C_CG::Attribute::AccessorGenerate 属性设置为 Checked,则会生成访问器。类似的,如果 C_CG::Attribute::MutatorGenerate 属性设置为 Always,则会生成增变器。AccessorGenerate 的缺省值为 ClearedMutatorGenerate 的缺省值为 Never

访问器和增变器操作在对象类型的规范文件的用户隐式条目区域中生成。例如,_getIsClosed() 访问器操作和 _setIsClosed() 增变器操作的原型是为 Valve.h 文件中的 isClosed 特性而生成的:

/*** User implicit entries ***/
RiCBoolean Valve _getIsClosed(const Valve* const me);
void Valve _setIsClosed(Valve* const me, RiCBoolean
    p_isClosed);

访问器和增变器操作的主体在对象类型的实施文件中生成。例如,以下实施是为 Valve.c 文件中的 _getIsClosed()_setIsClosed() 操作而生成的:

/*** Methods implementation ***/
RiCBoolean Valve_getIsClosed(const Valve* const me) {
   return me->isClosed;
}
void Valve _setIsClosed(Valve* const me, RiCBoolean
    p_isClosed) {
    me->isClosed = p_isClosed;
}

Rational Rhapsody 按以下顺序生成特性:

  1. 特性分组为用户定义的特性和隐式特性(例如关系容器)。
  2. 每个子组中的特性按字母顺序生成。

反馈