«CORBAInterface» クラスは、属性と操作の両方を持つことができます。この要素は、IDL インターフェース内で同じ名前を持つ属性と操作内に生成されます。
属性および操作に使用されるデータ・タイプは、IDL ファイルにおける「現状のまま」に生成されます。
そのため、定義済み CORBA タイプ・パッケージ内、あるいは、独自の «CORBAModule» または «CORBAInterface» 内のいずれか
で定義されている CORBA データ・タイプを使用する必要があります。
以下のように、モデルにサブクラスを作成して、IDL インターフェースを実現してください。
- すべての CORBA 操作は、実現クラス内に対応 C++ 操作を持つ必要があります。
- すべての CORBA 属性は、実現クラス内に対応 C++ 属性を持つ必要があります。実現クラス内に get および set 操作を用意する必要があります。
- すべての CORBA タイプ (例えば long) は、実現クラス内に対応タイプ (例えば CORBA::long) を持つ必要があります。これらのタイプは、定義済みタイプ・パッケージからインポートできます。
CORBA 操作および属性を CORBA インターフェースから通常クラスにドラッグ・アンド・ドロップすることで、簡単に処理できます。IBM® Rational® Rhapsody® は、自動的にタイプを変換します。
コード生成に関して、以下の制約が CORBA インターフェースに適用されます。
- CORBA インターフェースの属性および属性は、Public、Private、または Protected のようにクラス分けすることはできません。そのため、生成された IDL ファイルは、Public の属性および操作のみを参照します。Protected および Private の属性は無視されます。
- «CORBAInterface» ステレオタイプ・クラスは、インスタンス化できません。そのため、それが存在すると、操作の本体が無視されます。
- virtual、static、および const というキーワードは、«CORBAInterface» クラスで意味を持ちません。そのため、キーワードの virtual/static は、IDL 属性生成時に無視されます。
属性の CORBA::Attribute:IsReadOnly プロパティーを True に設定することで、CORBA インターフェースの属性を readonly (CORBA キーワード) にできます。CORBA インターフェースの操作を oneway にするには、操作の CORBA::Operation::IsOneWay プロパティーを True に設定します。
さらに、以下の標準 UML オプションが操作に対して有効です。
- 操作引数は、In、Out、または INOUT の方向を持つことができます。この値は「引数」ウィンドウで指定します。
- CORBA::Operation::ThrowExceptions プロパティーにより、1 つの操作がスローする例外を指定できます。例えば、操作に例外 exc1 および exc2 をスローさせる場合は、ThrowExceptions プロパティーに "exc1, exc2" と設定します。