-
- すべてのスーパー・インタフェース:
DynAnyOperations
- 既知のすべてのサブインタフェース:
DynUnion
- 既知のすべての実装クラス:
_DynUnionStub
public interface DynUnionOperations extends DynAnyOperations
DynUnionオブジェクトによって、IDLの共用体の操作がサポートされます。 共用体の場合、有効な現在位置は次の2つだけです。- 判別子を示すゼロ
- アクティブなメンバーを示す1
-
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 TCKind
discriminator_kind()
判別子のTypeCodeのTCKind値を返します。DynAny
get_discriminator()
現在の判別子の値を返します。boolean
has_no_active_member()
共用体にアクティブなメンバーがない場合、つまり判別子の値が明示的なcaseラベルとして指定されず、共用体が判別子だけで構成される場合にtrueを返します。DynAny
member()
現在アクティブなメンバーを返します。TCKind
member_kind()
現在アクティブなメンバーのTypeCodeのTCKind値を返します。String
member_name()
現在アクティブなメンバーの名前を返します。void
set_discriminator(DynAny d)
DynUnionの判別子を、指定した値に設定します。void
set_to_default_member()
判別子の値を、共用体のデフォルトのcaseの値と一致する値に設定します。void
set_to_no_active_member()
判別子の値を、共用体のcaseラベルのどれとも一致しない値に設定します。-
インタフェース org.omg.DynamicAny.DynAnyOperationsで宣言されたメソッド
assign, component_count, copy, current_component, destroy, equal, from_any, get_any, get_boolean, get_char, get_double, get_dyn_any, get_float, get_long, get_longlong, get_octet, get_reference, get_short, get_string, get_typecode, get_ulong, get_ulonglong, get_ushort, get_val, get_wchar, get_wstring, insert_any, insert_boolean, insert_char, insert_double, insert_dyn_any, insert_float, insert_long, insert_longlong, insert_octet, insert_reference, insert_short, insert_string, insert_typecode, insert_ulong, insert_ulonglong, insert_ushort, insert_val, insert_wchar, insert_wstring, next, rewind, seek, to_any, type
-
-
-
-
メソッドの詳細
-
get_discriminator
DynAny get_discriminator()
現在の判別子の値を返します。
-
set_discriminator
void set_discriminator(DynAny d) throws TypeMismatch
DynUnionの判別子を、指定した値に設定します。 現在アクティブになっている共用体メンバーに一致する値に判別子を設定しても、そのメンバーには影響はありません。 判別子を現在アクティブになっているメンバーと一致しない値に設定すると、そのメンバーは非アクティブ化され、新しい判別子の値にメンバーがあれば、それに一致するメンバーをデフォルト値に初期化し、アクティブにします。 共用体の判別子を設定すると、判別子の値が存在しない共用体メンバーを指す場合(has_no_active_memberがtrueを返すような場合)は現在位置が0に設定されます。 そうでない場合、つまり判別子の値が指定した共用体メンバーを示す場合は、現在位置は1に設定されます(この場合、has_no_active_memberはfalseを返し、component_countは2を返す)。- 例外:
TypeMismatch
- パラメータのTypeCodeが、共用体の判別子のTypeCodeと同じではない場合
-
set_to_default_member
void set_to_default_member() throws TypeMismatch
判別子の値を、共用体のデフォルトのcaseの値と一致する値に設定します。 現在位置はゼロに設定され、component_countは2を返すようになります。- 例外:
TypeMismatch
- 共用体が明示的なデフォルトのcaseを持たない場合
-
set_to_no_active_member
void set_to_no_active_member() throws TypeMismatch
判別子の値を、共用体のcaseラベルのどれとも一致しない値に設定します。 現在位置はゼロに設定され、component_countは1を返すようになります。- 例外:
TypeMismatch
- 共用体に明示的なデフォルトのcaseがあるか、明示的なcaseラベルとして判別子の値の範囲全体が使用される場合
-
has_no_active_member
boolean has_no_active_member()
共用体にアクティブなメンバーがない場合、つまり判別子の値が明示的なcaseラベルとして指定されず、共用体が判別子だけで構成される場合にtrueを返します。 デフォルトのcaseを持つ共用体でこのオペレーションを呼び出すと、falseが返されます。 また、明示的なcaseラベルとして判別子の値の範囲全体が使用される共用体でこのオペレーションを呼び出した場合も、falseが返されます。
-
discriminator_kind
TCKind discriminator_kind()
判別子のTypeCodeのTCKind値を返します。
-
member_kind
TCKind member_kind() throws InvalidValue
現在アクティブなメンバーのTypeCodeのTCKind値を返します。- 例外:
InvalidValue
- 共用体に現在アクティブなメンバーがない場合
-
member
DynAny member() throws InvalidValue
現在アクティブなメンバーを返します。 返された参照は、現在アクティブなメンバーが変更しない間だけ有効であることに注意してください。 現在アクティブなメンバーの存続期間を超えて参照を使用すると、OBJECT_NOT_EXISTが発生します。- 例外:
InvalidValue
- 共用体にアクティブなメンバーがない場合
-
member_name
String member_name() throws InvalidValue
現在アクティブなメンバーの名前を返します。 共用体のTypeCodeに、現在アクティブなメンバーのメンバー名がない場合は、空の文字列が返されます。- 例外:
InvalidValue
- 共用体にアクティブなメンバーがない場合
-
-