any
に関連付けられたデータ値のトラバース、およびデータ値の基本的な構成要素の抽出を可能にするクラスとインタフェースを提供します。参照: 説明
インタフェース | 説明 |
---|---|
DynAny |
Any の値は、DynAny オブジェクトを通して動的に解釈 (トラバース) および構築できます。
|
DynAnyFactory |
DynAny オブジェクトは、DynAnyFactory オブジェクトでオペレーションを呼び出すことで作成できます。
|
DynAnyFactoryOperations |
DynAny オブジェクトは、DynAnyFactory オブジェクトでオペレーションを呼び出すことで作成できます。
|
DynAnyOperations |
Any の値は、DynAny オブジェクトを通して動的に解釈 (トラバース) および構築できます。
|
DynArray |
DynArray オブジェクトによって、IDL の配列の操作がサポートされます。
|
DynArrayOperations |
DynArray オブジェクトによって、IDL の配列の操作がサポートされます。
|
DynEnum |
DynEnum オブジェクトによって、IDL の列挙値の操作がサポートされます。
|
DynEnumOperations |
DynEnum オブジェクトによって、IDL の列挙値の操作がサポートされます。
|
DynFixed |
DynFixed オブジェクトによって、IDL の fixed 値の操作がサポートされます。
|
DynFixedOperations |
DynFixed オブジェクトによって、IDL の fixed 値の操作がサポートされます。
|
DynSequence |
DynSequence オブジェクトによって、IDL のシーケンスの操作がサポートされます。
|
DynSequenceOperations |
DynSequence オブジェクトによって、IDL のシーケンスの操作がサポートされます。
|
DynStruct |
DynStruct オブジェクトによって、IDL 構造体および例外値の操作がサポートされます。
|
DynStructOperations |
DynStruct オブジェクトによって、IDL 構造体および例外値の操作がサポートされます。
|
DynUnion |
DynUnion オブジェクトによって、IDL の共用体の操作がサポートされます。
|
DynUnionOperations |
DynUnion オブジェクトによって、IDL の共用体の操作がサポートされます。
|
DynValue |
DynValue オブジェクトによって、IDL の非 boxed 値型の操作がサポートされます。
|
DynValueBox |
DynValueBox オブジェクトによって、IDL の boxed 値型の操作がサポートされます。
|
DynValueBoxOperations |
DynValueBox オブジェクトによって、IDL の boxed 値型の操作がサポートされます。
|
DynValueCommon |
DynValueCommon は、DynValue および DynValueBox インタフェースでサポートされるオペレーションを提供します。
|
DynValueCommonOperations |
DynValueCommon は、DynValue および DynValueBox インタフェースでサポートされるオペレーションを提供します。
|
DynValueOperations |
DynValue オブジェクトによって、IDL の非 boxed 値型の操作がサポートされます。
|
クラス | 説明 |
---|---|
_DynAnyFactoryStub |
DynAny オブジェクトは、DynAnyFactory オブジェクトでオペレーションを呼び出すことで作成できます。
|
_DynAnyStub |
Any の値は、DynAny オブジェクトを通して動的に解釈 (トラバース) および構築できます。
|
_DynArrayStub |
DynArray オブジェクトによって、IDL の配列の操作がサポートされます。
|
_DynEnumStub |
DynEnum オブジェクトによって、IDL の列挙値の操作がサポートされます。
|
_DynFixedStub |
DynFixed オブジェクトによって、IDL の fixed 値の操作がサポートされます。
|
_DynSequenceStub |
DynSequence オブジェクトによって、IDL のシーケンスの操作がサポートされます。
|
_DynStructStub |
DynStruct オブジェクトによって、IDL 構造体および例外値の操作がサポートされます。
|
_DynUnionStub |
DynUnion オブジェクトによって、IDL の共用体の操作がサポートされます。
|
_DynValueStub |
DynValue オブジェクトによって、IDL の非 boxed 値型の操作がサポートされます。
|
AnySeqHelper |
org/omg/DynamicAny/AnySeqHelper.java。
|
DynAnyFactoryHelper |
DynAny オブジェクトは、DynAnyFactory オブジェクトでオペレーションを呼び出すことで作成できます。
|
DynAnyHelper |
Any の値は、DynAny オブジェクトを通して動的に解釈 (トラバース) および構築できます。
|
DynAnySeqHelper |
org/omg/DynamicAny/DynAnySeqHelper.java。
|
DynArrayHelper |
DynArray オブジェクトによって、IDL の配列の操作がサポートされます。
|
DynEnumHelper |
DynEnum オブジェクトによって、IDL の列挙値の操作がサポートされます。
|
DynFixedHelper |
DynFixed オブジェクトによって、IDL の fixed 値の操作がサポートされます。
|
DynSequenceHelper |
DynSequence オブジェクトによって、IDL のシーケンスの操作がサポートされます。
|
DynStructHelper |
DynStruct オブジェクトによって、IDL 構造体および例外値の操作がサポートされます。
|
DynUnionHelper |
DynUnion オブジェクトによって、IDL の共用体の操作がサポートされます。
|
DynValueHelper |
DynValue オブジェクトによって、IDL の非 boxed 値型の操作がサポートされます。
|
FieldNameHelper |
org/omg/DynamicAny/FieldNameHelper.java。
|
NameDynAnyPair |
org/omg/DynamicAny/NameDynAnyPair.java。
|
NameDynAnyPairHelper |
org/omg/DynamicAny/NameDynAnyPairHelper.java。
|
NameDynAnyPairSeqHelper |
org/omg/DynamicAny/NameDynAnyPairSeqHelper.java。
|
NameValuePair |
org/omg/DynamicAny/NameValuePair.java。
|
NameValuePairHelper |
org/omg/DynamicAny/NameValuePairHelper.java。
|
NameValuePairSeqHelper |
org/omg/DynamicAny/NameValuePairSeqHelper.java。
|
実行時に any
に関連付けられたデータ値のトラバース、およびデータ値の基本的な構成要素の抽出を可能にするクラスとインタフェースを提供します。
any
は、その any
の型について静的な情報がない (IDL コンパイラがその型について生成したコードが、オブジェクト実装を含めてコンパイルされていない) プログラムに渡すことができます。このため、オブジェクトは any
を受け取っても、それを使用するための移植性のあるメソッドがないことになります。
DynAny
を使うと、any
のデータ値のトラバースを実行時に行い、データ値の基本的な構成要素を抽出できます。これは、強力なジェネリックサーバー (ブリッジ、フィルタリングをサポートするイベントチャネル) を作成する場合に役立ちます。また、型に関する静的な情報を持たずに、実行時に any
を構築することもできます。これは、ジェネリッククライアント (ブリッジ、ブラウザ、デバッガ、ユーザーインタフェースツール) を作成する場合に役立ちます。
Any
の値は、DynAny オブジェクトを通して動的に解釈 (トラバース) および構築できます。DynAny オブジェクトはデータ値に関連付けられますが、このデータ値は Any に挿入された値のコピーに対応します。DynAny オブジェクトは、コンポーネントの DynAny の順序付けられたコレクションとみなすことができます。DynAny が long
などの基本型を表す場合、または空の例外のようにコンポーネントのない型を表す場合は、コンポーネントの順序付けられたコレクションは空になります。
それぞれの DynAny オブジェクトで、その DynAny のコンポーネントのコレクション内における現在位置が把握されます。現在位置は、0 から n-1 のインデックス値で示されます (n はコンポーネントの数)。-1 という特別なインデックス値もあり、これは現在位置がどこも指し示していないことを意味します。現在位置を持つことのできない値 (空の例外など) の場合、インデックス値は -1 で固定されます。DynAny
がコンポーネントを持つ値で初期化された場合、インデックスも 0 に初期化されます。初期化されていない DynAny
(DynAny
に値がないが、コンポーネントを持つことのできる TypeCode
がある) が作成された場合は、現在位置は DynAny
によって表される値の型によって異なります。現在位置は、新規作成された DynAny
のコンポーネントがデフォルト値を持てるかどうかによって 0 または -1 になります。
rewind
、seek
、および next
の繰り返し操作を使用すると、現在位置が変更できます。current_component
操作は、現在位置のコンポーネントを返します。component_count
操作は DynAny
のコンポーネントの数を返します。これらの操作をあわせて使用すると、コンポーネントの内容を (再帰的に) 調べるなど、DynAny
のコンポーネントに対して繰り返し処理を行えます。
構築型と関連付けられた DynAny
オブジェクトを、構築型 DynAny
オブジェクトといいます。IDL の各種構築型 (fixed、enum、struct、sequence、union、array、exception、値型) のそれぞれについて、DynAny
インタフェースから継承されたインタフェースがあります。構築型 DynAny
オブジェクトは、DynAny
オブジェクトを新規作成するための操作をエクスポートします。作成されるオブジェクトはそれぞれ構築型のデータ値のコンポーネントに関連付けられます。たとえば、DynStruct
は struct
値と関連付けられます。つまり、DynStruct
は、構造体のメンバーごとにコンポーネントが 1 つずつあるような、順序付けられたコレクションを所有するとみなすことができます。DynStruct
オブジェクトは、struct
のメンバーに関連付けられる DynAny
オブジェクトを新規作成するための操作をエクスポートします。
別の (構築型) DynAny
から DynAny
オブジェクトを得た場合 (たとえば DynStruct
から作成された、構造体メンバーを表す DynAny
)、そのメンバーである DynAny
は、DynStruct
に論理的に含まれることになります。insert
または get
操作を呼び出しても、現在位置は変更されません。最上位の DynAny
オブジェクト (別の DynAny
のコンポーネントではないもの) を破棄すると、そのコンポーネントの DynAny
オブジェクトも破棄されます。最上位ではない DynAny
を破棄した場合は何も起こりません。破棄された最上位の DynAny
、またはその下位オブジェクトに対して操作を呼び出すと、OBJECT_NOT_EXIST がスローされます。DynAny
を破棄したあとも、それに関連付けられるデータ値のコンポーネントを操作するには、まずコンポーネントの DynAny
を作成してから、作成した DynAny
オブジェクトのコピーを作成します。
DynAny
オブジェクトの動作は、割り当てられたメモリー空間とアクセス速度に関して効果的な実装を実現できるように定義されています。DynAny
オブジェクトは、実行時に any
から抽出された値のトラバースや、any
の値の構築を行うために使用することが想定されています。ほかの用途での使用はお勧めできません。
Insert
と get
の各操作は、基本 DynAny
オブジェクトの操作に必要ですが、構築型 DynAny
オブジェクトの操作にも役立ちます。構築型 DynAny
オブジェクトに基本データ型の値を挿入すると、DynAny
オブジェクトに関連付けられた構築型データ値の現在のコンポーネントを初期化することになります。たとえば、DynStruct
で insert_boolean
を呼び出すと、関連する struct
のデータ値の現在位置に boolean
のデータ値が挿入されます。値の TypeCode
が DynAny
に含まれる TypeCode
と同じである場合、値の挿入と抽出を通して型は同じになります。DynAny
にコンポーネントがある場合は、値の挿入と抽出における型は現在位置の DynAny
の TypeCode
と同じになります。
基本的なオペレーションには次のものがあります。
DynAny
オブジェクトと DynAnyFactory
オブジェクトは、それらが作成および使用されるプロセスに対してローカルであると想定されています。つまり、DynAny
および DynAnyFactory
オブジェクトへの参照をほかのプロセスにエクスポートしたり、ORB.object_to_string()
で外部化したりすることはできません。実行を試みると MARSHAL システム例外が発生します。IDL にインタフェースが指定されているため、DynAny
オブジェクトでは標準の org.omg.CORBA.Object
インタフェースに定義されている操作をエクスポートできます。ただし、Object
インタフェースを通してエクスポートした操作を呼び出そうとすると、標準 NO_IMPLEMENT 例外が発生することがあります。DynAny
オブジェクトを DII と使用しようとすると、NO_IMPLEMENT 例外が発生する場合があります。
Java(TM) Platform, Standard Edition 6 ORB が準拠する公式の仕様のサポートセクションの正確なリストは、「Java(TM) SE 6 での正式な CORBA サポート仕様」を参照してください。
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.