モジュール java.corba
パッケージ org.omg.DynamicAny

インタフェースDynUnionOperations

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

    public interface DynUnionOperations
    extends DynAnyOperations
    DynUnionオブジェクトによって、IDLの共用体の操作がサポートされます。 共用体の場合、有効な現在位置は次の2つだけです。
    • 判別子を示すゼロ
    • アクティブなメンバーを示す1
    共用体のcomponent_count値は、現在の判別子によって異なります。判別子が指定されたメンバーを示す場合は2で、そうでない場合は1です。
    • メソッドの詳細

      • 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 - 共用体にアクティブなメンバーがない場合