JavaTM 2
Platform
Std. Ed. v1.4.0

org.omg.DynamicAny
インタフェース DynUnionOperations

すべてのスーパーインタフェース:
DynAnyOperations
既知のサブインタフェースの一覧:
DynUnion
既知の実装クラスの一覧:
_DynUnionStub

public interface DynUnionOperations
extends DynAnyOperations

DynUnion オブジェクトによって、IDL の共用体の操作がサポートされます。共用体の場合、有効な現在位置は次の 2 つだけです。

共用体の component_count 値は、現在の判別子によって異なります。判別子が指定されたメンバを示す場合は 2 で、そうでない場合は 1 です。


メソッドの概要
 TCKind discriminator_kind()
          判別子の TypeCode の TCKind 値を返します。
 DynAny get_discriminator()
          現在の判別子の値を返します。
 boolean has_no_active_member()
          共用体にアクティブなメンバがない場合、つまり判別子の値が明示的な case ラベルとして指定されず、共用体が判別子だけで構成される場合に true を返します。
 TCKind member_kind()
          現在アクティブなメンバの TypeCode の TCKind 値を返します。
 String member_name()
          現在アクティブなメンバの名前を返します。
 DynAny member()
          現在アクティブなメンバを返します。
 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

public DynAny get_discriminator()
現在の判別子の値を返します。


set_discriminator

public 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

public void set_to_default_member()
                           throws TypeMismatch
判別子の値を、共用体のデフォルトの case の値と一致する値に設定します。現在位置は 0 に設定され、component_count は 2 を返すようになります。

例外:
TypeMismatch - 共用体が明示的なデフォルトの case を持たない場合

set_to_no_active_member

public void set_to_no_active_member()
                             throws TypeMismatch
判別子の値を、共用体の case ラベルのどれとも一致しない値に設定します。現在位置は 0 に設定され、component_count は 1 を返すようになります。

例外:
TypeMismatch - 共用体に明示的なデフォルトの case があるか、明示的な case ラベルとして判別子の値の範囲全体が使用される場合

has_no_active_member

public boolean has_no_active_member()
共用体にアクティブなメンバがない場合、つまり判別子の値が明示的な case ラベルとして指定されず、共用体が判別子だけで構成される場合に true を返します。デフォルトの case を持つ共用体でこのオペレーションを呼び出すと、false が返されます。また、明示的な case ラベルとして判別子の値の範囲全体が使用される共用体でこのオペレーションを呼び出した場合も、false が返されます。


discriminator_kind

public TCKind discriminator_kind()
判別子の TypeCode の TCKind 値を返します。


member_kind

public TCKind member_kind()
                   throws InvalidValue
現在アクティブなメンバの TypeCode の TCKind 値を返します。

例外:
InvalidValue - 共用体に現在アクティブなメンバがない場合

member

public DynAny member()
              throws InvalidValue
現在アクティブなメンバを返します。返された参照は、現在アクティブなメンバが変更しない間だけ有効であることに注意してください。現在アクティブなメンバの存続期間を超えて参照を使用すると、OBJECT_NOT_EXIST が発生します。

例外:
InvalidValue - 共用体にアクティブなメンバがない場合

member_name

public String member_name()
                   throws InvalidValue
現在アクティブなメンバの名前を返します。共用体の TypeCode に、現在アクティブなメンバのメンバ名がない場合は、空の文字列が返されます。

例外:
InvalidValue - 共用体にアクティブなメンバがない場合

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.