例えば、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 は Cleared です。 MutatorGenerate のデフォルトは、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;
}