|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | ||||||||||
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 | IDL-to-Java コンパイラ (ポータブル) バージョン "3.1" により ../../../.. |
| DynAnyFactoryHelper | DynAny オブジェクトは、DynAnyFactory オブジェクトでオペレーションを呼び出すことで作成できます。 |
| DynAnyHelper | Any の値は、DynAny オブジェクトを通して動的に解釈 (トラバース) および構築することができます。 |
| DynAnySeqHelper | IDL-to-Java コンパイラ (ポータブル) バージョン "3.1" により ../../../.. |
| DynArrayHelper | DynArray オブジェクトによって、IDL の配列の操作がサポートされます。 |
| DynEnumHelper | DynEnum オブジェクトによって、IDL の列挙値の操作がサポートされます。 |
| DynFixedHelper | DynFixed オブジェクトによって、IDL の fixed 値の操作がサポートされます。 |
| DynSequenceHelper | DynSequence オブジェクトによって、IDL のシーケンスの操作がサポートされます。 |
| DynStructHelper | DynStruct オブジェクトによって、IDL 構造体および例外値の操作がサポートされます。 |
| DynUnionHelper | DynUnion オブジェクトによって、IDL の共用体の操作がサポートされます。 |
| DynValueHelper | DynValue オブジェクトによって、IDL の非 boxed 値型の操作がサポートされます。 |
| FieldNameHelper | IDL-to-Java コンパイラ (ポータブル) バージョン "3.1" により ../../../.. |
| NameDynAnyPair | NameDynAnyPair は、DynAny オブジェクトに名前を関連付けます。 |
| NameDynAnyPairHelper | NameDynAnyPair は、DynAny オブジェクトに名前を関連付けます。 |
| NameDynAnyPairSeqHelper | IDL-to-Java コンパイラ (ポータブル) バージョン "3.1" により ../../../.. |
| NameValuePair | NameValuePair は、Any オブジェクトに名前を関連付けます。 |
| NameValuePairHelper | NameValuePair は、Any オブジェクトに名前を関連付けます。 |
| NameValuePairSeqHelper | IDL-to-Java コンパイラ (ポータブル) バージョン "3.1" により ../../../.. |
実行時に 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 は、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 2 プラットフォーム、Standard Edition、バージョン 1.4 の ORB が準拠する公式仕様の一覧については、「J2SE 1.4 での CORBA サポートの公式仕様」を参照してください。
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | ||||||||||
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.