モデルで CORBA 共用体を定義して、.idl ファイルで生成できます。
手順
CORBA 共用体を定義するには、以下のようにします。
- CORBAModule ステレオタイプを使用したパッケージまたは CORBAInterface ステレオタイプを使用したクラスに新規の型を追加します。
- 作成した型の「フィーチャー」ウィンドウを開き、「種類」フィールドを「共用体」に設定します。
- 作成した型について、プロパティー CORBA::Type::Discriminator の値を、使用する弁別子の型 (例えば、short) に設定します。
- 共用体内の各データ型を表す属性 (例えば、length_short、length_long、および length_double という名前の属性) を型に追加します。
- 属性ごとに、属性型を適切に設定します (例えば、length_short には short、length_long には long、length_double には double)。
- 属性ごとに、「フィーチャー」ウィンドウを開き、プロパティー CORBA::Attribute::UnionCase の値を設定します。
このプロパティーの値は、属性で使用する弁別子の値にする必要があります。
値は、プロパティー CORBA::Type::Discriminator に指定した型を反映したものにする必要があります。
なお、共用体のデフォルトのデータ型として使用するデータ型に対して、プロパティー UnionCase をストリング「default」に設定することもできます。
例えば、UnionCase プロパティーの値を、属性 length_short に対して 1、属性 length_long に対して 2、属性 length_double に対して default に設定します。
例
この手順で述べた値の例を使用した場合は、生成されるコードは、以下のようなものになります。
union length switch (short) {
case 1 : short length_short; //## attribute length_short
case 2 : long length_long; //## attribute length_long
default : double length_double; //## attribute length_double
};