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

インタフェースDynAnyFactoryOperations

  • 既知のすべてのサブインタフェース:
    DynAnyFactory
    既知のすべての実装クラス:
    _DynAnyFactoryStub


    public interface DynAnyFactoryOperations
    DynAnyオブジェクトは、DynAnyFactoryオブジェクトでオペレーションを呼び出すことで作成できます。 一般的に、DynAnyオブジェクトを作成する方法は2つあります。
    • 既存のDynAnyオブジェクトでオペレーションを呼び出す
    • DynAnyFactoryオブジェクトでオペレーションを呼び出す
    構築型DynAnyオブジェクトでは、構成要素の値へのアクセスをカプセル化するようなDynAnyオブジェクトを新しく作成できるオペレーションがサポートされます。 DynAnyオブジェクトでは、コピー・オペレーションによるDynAnyオブジェクトの新規作成もサポートしています。 DynAnyFactoryオブジェクトへの参照を取得するには、ORB.resolve_initial_references()を呼び出します。このとき、識別子パラメータを「DynAnyFactory」という文字列定数に設定します。

    通常、anyの動的解釈では、最初にcreate_dyn_any()を使用してDynAnyオブジェクトを作成します。 作成されるDynAnyオブジェクト参照は、anyの型によって、DynFixed、DynStruct、DynSequence、DynArray、DynUnion、DynEnum、またはDynValueといったオブジェクト参照にナロー変換できます。

    anyの動的作成では、create_dyn_any_from_type_code()を使用してDynAnyオブジェクトを作成します。このとき、作成する値に関連付けるTypeCodeを渡します。 返される参照は、必要に応じてDynStructなどの複雑な型のどれかにナロー変換できます。 次に、結果として得られるオブジェクトでオペレーションを呼び出して値を初期化します。 最後に、to_anyオペレーションを起動して、構築型DynAnyから値を作成します。

    • メソッドの詳細

      • create_dyn_any

        DynAny create_dyn_any​(Any value)
                       throws InconsistentTypeCode
        any値からDynAnyオブジェクトを新規作成します。 any値に関連付けられているTypeCodeのコピーが、結果として作成されるDynAnyオブジェクトに割り当てられます。 DynAnyオブジェクトに関連付けられる値は、元のanyの値のコピーになります。 作成されたDynAnyの現在位置は、渡された値にコンポーネントがある場合はゼロ、それ以外の場合は -1に設定されます。
        例外:
        InconsistentTypeCode - 値のTypeCodeがTCKindのtk_Principal、tk_native、またはtk_abstract_interfaceである場合
      • create_dyn_any_from_type_code

        DynAny create_dyn_any_from_type_code​(TypeCode type)
                                      throws InconsistentTypeCode
        TypeCodeからDynAnyを作成します。 TypeCodeによって、作成されるオブジェクトの型はDynAnyまたはそれから派生したDynStructなどの型のどれかになります。 返される参照は、派生型にナロー変換できます。 どの場合も、TypeCodeから作成されたDynAnyにはデフォルト値があります。 基本型のデフォルト値は次のようになります。
        • booleanの場合はfalse
        • 数値型の場合はゼロ
        • octet、char、およびwcharの場合はゼロ
        • stringとwstringの場合は空の文字列
        • オブジェクト参照の場合はnull
        • 型コードの場合はTCKindの値がtk_nullである型コード
        • any値の場合は、TCKindの値がtk_nullである型コードを持ち、値を持たないany
        複合型の場合は、対応するDynAnyを作成すると、次のようなデフォルト値が割り当てられます。
        • DynSequenceの場合、現在位置が -1に設定され、空のシーケンスが作成される。
        • DynEnumの場合、現在位置が -1に設定され、列挙子の値はTypeCodeによって示される最初の列挙子の値に設定される。
        • DynFixedの場合、現在位置が -1に設定され、値ゼロが設定される。
        • DynStructの場合、空の例外では現在位置が -1に、それ以外のTypeCodeでは現在位置がゼロに設定される。 メンバーがあれば、そのデフォルト値に(再帰的に)初期化される。
        • DynArrayの場合、現在位置がゼロに設定され、要素がデフォルト値に(再帰的に)初期化される。
        • DynUnionの場合、現在位置がゼロに設定される。 判別子の値は、共用体で最初に指定されたメンバーに一致する値に設定される。 このメンバーはアクティブ化され、(再帰的に)デフォルト値に初期化される。
        • DynValueおよびDynValueBoxの場合、null値に初期化される。
        例外:
        InconsistentTypeCode