|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface DynAnyOperations
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 例外が発生する場合があります。
メソッドの概要 | |
---|---|
void |
assign(DynAny dyn_any)
DynAny オブジェクトに関連付けられた値を、別の DynAny オブジェクトに関連付けられた値で初期化します。 |
int |
component_count()
DynAny のコンポーネントの数を返します。 |
DynAny |
copy()
呼び出した DynAny のディープコピーである値を持つ DynAny を新規作成します。 |
DynAny |
current_component()
現在位置のコンポーネントの DynAny を返します。 |
void |
destroy()
DynAny オブジェクトを破棄します。 |
boolean |
equal(DynAny dyn_any)
2 つの DynAny 値が等しいかどうか比較します。 |
void |
from_any(Any value)
DynAny オブジェクトに関連付けられた値を、any に含まれる値で初期化します。 |
Any |
get_any()
この DynAny が表す Any に含まれている Any 値を抽出します。 |
boolean |
get_boolean()
この DynAny から boolean 値を抽出します。 |
char |
get_char()
この DynAny から char 値を抽出します。 |
double |
get_double()
この DynAny から double 値を抽出します。 |
DynAny |
get_dyn_any()
この DynAny が表す Any に含まれている Any 値を抽出し、それを新しい DynAny にラップして返します。 |
float |
get_float()
この DynAny から float 値を抽出します。 |
int |
get_long()
この DynAny から整数値を抽出します。 |
long |
get_longlong()
この DynAny から long 値を抽出します。 |
byte |
get_octet()
この DynAny から byte 値を抽出します。 |
Object |
get_reference()
この DynAny から CORBA オブジェクトへの参照を抽出します。 |
short |
get_short()
この DynAny から short 値を抽出します。 |
String |
get_string()
この DynAny から文字列値を抽出します。 |
TypeCode |
get_typecode()
この DynAny から TypeCode オブジェクトを抽出します。 |
int |
get_ulong()
この DynAny から整数値を抽出します。 |
long |
get_ulonglong()
この DynAny から long 値を抽出します。 |
short |
get_ushort()
この DynAny から short 値を抽出します。 |
Serializable |
get_val()
この DynAny から直列化可能オブジェクトを抽出します。 |
char |
get_wchar()
この DynAny から long 値を抽出します。 |
String |
get_wstring()
この DynAny から文字列値を抽出します。 |
void |
insert_any(Any value)
この DynAny が表す Any に Any 値を挿入します。 |
void |
insert_boolean(boolean value)
DynAny に boolean 値を挿入します。 |
void |
insert_char(char value)
DynAny に char 値を挿入します。 |
void |
insert_double(double value)
DynAny に double 値を挿入します。 |
void |
insert_dyn_any(DynAny value)
この DynAny が表す Any に、パラメータ DynAny 内の Any 値を挿入します。 |
void |
insert_float(float value)
DynAny に float 値を挿入します。 |
void |
insert_long(int value)
DynAny に整数値を挿入します。 |
void |
insert_longlong(long value)
DynAny に long 値を挿入します。 |
void |
insert_octet(byte value)
DynAny に byte 値を挿入します。 |
void |
insert_reference(Object value)
DynAny に CORBA オブジェクトへの参照を挿入します。 |
void |
insert_short(short value)
DynAny に short 値を挿入します。 |
void |
insert_string(String value)
DynAny に文字列値を挿入します。 |
void |
insert_typecode(TypeCode value)
DynAny に TypeCode オブジェクトを挿入します。 |
void |
insert_ulong(int value)
DynAny に整数値を挿入します。 |
void |
insert_ulonglong(long value)
DynAny に long 値を挿入します。 |
void |
insert_ushort(short value)
DynAny に short 値を挿入します。 |
void |
insert_val(Serializable value)
この DynAny に直列化可能オブジェクトに対する参照を挿入します。 |
void |
insert_wchar(char value)
DynAny に char 値を挿入します。 |
void |
insert_wstring(String value)
DynAny に文字列値を挿入します。 |
boolean |
next()
現在位置を次のコンポーネントに進めます。 |
void |
rewind()
seek(0) と同じです。 |
boolean |
seek(int index)
現在位置を index に設定します。 |
Any |
to_any()
DynAny オブジェクトから any 値を作成します。 |
TypeCode |
type()
この DynAny オブジェクトに関連付けられた TypeCode を返します。 |
メソッドの詳細 |
---|
TypeCode type()
void assign(DynAny dyn_any) throws TypeMismatch
dyn_any
- @exception TypeMismatch 渡された DynAny の型が、初期化される DynAny の型に一致しない場合
TypeMismatch
void from_any(Any value) throws TypeMismatch, InvalidValue
TypeMismatch
- 渡された Any の型が、初期化される DynAny の型に一致しない場合
InvalidValue
- 渡された Any に正当な値が含まれない場合 (null の文字列など)Any to_any()
boolean equal(DynAny dyn_any)
void destroy()
DynAny copy()
void insert_boolean(boolean value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_octet(byte value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_char(char value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_short(short value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_ushort(short value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_long(int value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_ulong(int value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_float(float value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_double(double value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_string(String value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
InvalidValue
- 挿入される文字列がバウンド形式の文字列の境界より長い場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_reference(Object value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_typecode(TypeCode value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_longlong(long value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_ulonglong(long value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_wchar(char value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_wstring(String value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
InvalidValue
- 挿入される文字列がバウンド形式の文字列の境界より長い場合
TypeMismatch
void insert_any(Any value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_dyn_any(DynAny value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合void insert_val(Serializable value) throws TypeMismatch, InvalidValue
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合boolean get_boolean() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合byte get_octet() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合char get_char() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合short get_short() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合short get_ushort() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合int get_long() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合int get_ulong() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合float get_float() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合double get_double() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合String get_string() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合Object get_reference() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合TypeCode get_typecode() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合long get_longlong() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合long get_ulonglong() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合char get_wchar() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合String get_wstring() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
Any get_any() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合DynAny get_dyn_any() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合Serializable get_val() throws TypeMismatch, InvalidValue
TypeMismatch
- DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch
- 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue
- この DynAny がコンポーネントを持つが、現在位置が -1 である場合boolean seek(int index)
void rewind()
boolean next()
int component_count()
DynAny current_component() throws TypeMismatch
TypeMismatch
- DynEnum や空の例外のようにコンポーネントを持つことのできない DynAny で呼び出された場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。