|
JavaTM 2 Platform Standard Ed. 5.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 | 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
は、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 例外が発生する場合があります。
CORBA の正式な仕様のうち、Java 2 Platform, Standard Edition, v.1.4 ORB が準拠しているセクションについては、「J2SE 1.4 における CORBA サポートの正式な仕様」を参照してください。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のパッケージ 次のパッケージ | フレームあり フレームなし |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。