JavaTM 2 Platform
Standard Ed. 5.0

org.omg.DynamicAny
インタフェース DynAnyOperations

既知のサブインタフェースの一覧:
DynAny, DynArray, DynArrayOperations, DynEnum, DynEnumOperations, DynFixed, DynFixedOperations, DynSequence, DynSequenceOperations, DynStruct, DynStructOperations, DynUnion, DynUnionOperations, DynValue, DynValueBox, DynValueBoxOperations, DynValueCommon, DynValueCommonOperations, DynValueOperations
既知の実装クラスの一覧:
_DynAnyStub, _DynArrayStub, _DynEnumStub, _DynFixedStub, _DynSequenceStub, _DynStructStub, _DynUnionStub, _DynValueStub

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 を返します。
 

メソッドの詳細

type

TypeCode type()
この DynAny オブジェクトに関連付けられた TypeCode を返します。DynAny オブジェクトは、作成時に TypeCode 値を割り当てられます。この TypeCode の値によって、DynAny オブジェクトを通して扱われる値の型が決まります。DynAny オブジェクトに関連付けられる TypeCode は、DynAny の作成時に初期化され、その DynAny の存続期間中は変更できないことに注意してください。

戻り値:
この DynAny オブジェクトに関連付けられた TypeCode

assign

void assign(DynAny dyn_any)
            throws TypeMismatch
DynAny オブジェクトに関連付けられた値を、別の DynAny オブジェクトに関連付けられた値で初期化します。初期化される DynAny の現在位置は、値がコンポーネントを持つ場合は 0 に、コンポーネントを持たない場合は -1 に設定されます。

パラメータ:
dyn_any - @exception TypeMismatch 渡された DynAny の型が、初期化される DynAny の型に一致しない場合
例外:
TypeMismatch

from_any

void from_any(Any value)
              throws TypeMismatch,
                     InvalidValue
DynAny オブジェクトに関連付けられた値を、any に含まれる値で初期化します。初期化される DynAny の現在位置は、値がコンポーネントを持つ場合は 0 に、コンポーネントを持たない場合は -1 に設定されます。

例外:
TypeMismatch - 渡された Any の型が、初期化される DynAny の型に一致しない場合
InvalidValue - 渡された Any に正当な値が含まれない場合 (null の文字列など)

to_any

Any to_any()
DynAny オブジェクトから any 値を作成します。DynAny オブジェクトに関連付けられた TypeCode のコピーが、結果として作成される any に割り当てられます。DynAny オブジェクトに関連付けられた値が any にコピーされます。

戻り値:
同じ値と TypeCode を持つ Any オブジェクト

equal

boolean equal(DynAny dyn_any)
2 つの DynAny 値が等しいかどうか比較します。DynAny 値は、TypeCode が等しく、再帰的にすべての DynAny が等しい値を持つ場合に、等しいことになります。比較対象の 2 つの DynAny の現在位置は、等しいかどうかには関係しません。

戻り値:
2 つの DynAny が等しい場合は true、そうでない場合は false

destroy

void destroy()
DynAny オブジェクトを破棄します。この操作によって、DynAny オブジェクトに関連付けられるデータ値を表すために使用されるリソースはすべて解放されます。ORB インタフェースの作成操作で取得した参照や、DynAny.copy() から返された参照に対しては必ず呼び出し、リソースのリークを防ぐ必要があります。コンポーネントの DynAny オブジェクト (たとえば、current_component 操作で返されたオブジェクトなど) で破棄操作を呼び出しても何も起こりません。DynAny オブジェクトを破棄すると、そのオブジェクトから得られるすべての DynAny オブジェクトが破棄されることになります。つまり、破棄された DynAny のコンポーネントへの参照は無効になります。このような参照で呼び出しを行うと、OBJECT_NOT_EXIST が発生します。DynAny のコンポーネントをその DynAny の破棄後も操作するには、DynAny を破棄する前に、コピー操作でコンポーネントのコピーを作成します。


copy

DynAny copy()
呼び出した DynAny のディープコピーである値を持つ DynAny を新規作成します。この操作は多様型です。つまり、DynAny から派生した DynStruct などの型で呼び出すと、派生型が作成されますが、参照は基底型の DynAny で返されます。

戻り値:
DynAny オブジェクトのディープコピー

insert_boolean

void insert_boolean(boolean value)
                    throws TypeMismatch,
                           InvalidValue
DynAny に boolean 値を挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_octet

void insert_octet(byte value)
                  throws TypeMismatch,
                         InvalidValue
DynAny に byte 値を挿入します。IDL のデータ型 octet は、Java のデータ型 byte にマップされます。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_char

void insert_char(char value)
                 throws TypeMismatch,
                        InvalidValue
DynAny に char 値を挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_short

void insert_short(short value)
                  throws TypeMismatch,
                         InvalidValue
DynAny に short 値を挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_ushort

void insert_ushort(short value)
                   throws TypeMismatch,
                          InvalidValue
DynAny に short 値を挿入します。IDL のデータ型 ushort は、Java のデータ型 short にマップされます。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_long

void insert_long(int value)
                 throws TypeMismatch,
                        InvalidValue
DynAny に整数値を挿入します。IDL のデータ型 long は、Java のデータ型 int にマップされます。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_ulong

void insert_ulong(int value)
                  throws TypeMismatch,
                         InvalidValue
DynAny に整数値を挿入します。IDL のデータ型 ulong は、Java のデータ型 int にマップされます。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_float

void insert_float(float value)
                  throws TypeMismatch,
                         InvalidValue
DynAny に float 値を挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_double

void insert_double(double value)
                   throws TypeMismatch,
                          InvalidValue
DynAny に double 値を挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_string

void insert_string(String value)
                   throws TypeMismatch,
                          InvalidValue
DynAny に文字列値を挿入します。バウンド形式とアンバウンド形式のどちらの文字列の場合もこのメソッドを使用して挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
InvalidValue - 挿入される文字列がバウンド形式の文字列の境界より長い場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_reference

void insert_reference(Object value)
                      throws TypeMismatch,
                             InvalidValue
DynAny に CORBA オブジェクトへの参照を挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_typecode

void insert_typecode(TypeCode value)
                     throws TypeMismatch,
                            InvalidValue
DynAny に TypeCode オブジェクトを挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_longlong

void insert_longlong(long value)
                     throws TypeMismatch,
                            InvalidValue
DynAny に long 値を挿入します。IDL のデータ型 long long は、Java のデータ型 long にマップされます。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_ulonglong

void insert_ulonglong(long value)
                      throws TypeMismatch,
                             InvalidValue
DynAny に long 値を挿入します。IDL のデータ型の符号なし long long は、Java のデータ型 long にマップされます。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_wchar

void insert_wchar(char value)
                  throws TypeMismatch,
                         InvalidValue
DynAny に char 値を挿入します。IDL のデータ型 wchar は、Java のデータ型 char にマップされます。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_wstring

void insert_wstring(String value)
                    throws TypeMismatch,
                           InvalidValue
DynAny に文字列値を挿入します。バウンド形式とアンバウンド形式のどちらの文字列の場合もこのメソッドを使用して挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
InvalidValue - 挿入される文字列がバウンド形式の文字列の境界より長い場合
TypeMismatch

insert_any

void insert_any(Any value)
                throws TypeMismatch,
                       InvalidValue
この DynAny が表す Any に Any 値を挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_dyn_any

void insert_dyn_any(DynAny value)
                    throws TypeMismatch,
                           InvalidValue
この DynAny が表す Any に、パラメータ DynAny 内の Any 値を挿入します。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

insert_val

void insert_val(Serializable value)
                throws TypeMismatch,
                       InvalidValue
この DynAny に直列化可能オブジェクトに対する参照を挿入します。IDL の ValueBase 型は Java の Serializable 型にマップされます。

例外:
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合

get_boolean

boolean get_boolean()
                    throws TypeMismatch,
                           InvalidValue
この DynAny から boolean 値を抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_octet

byte get_octet()
               throws TypeMismatch,
                      InvalidValue
この DynAny から byte 値を抽出します。IDL のデータ型 octet は、Java のデータ型 byte にマップされます。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_char

char get_char()
              throws TypeMismatch,
                     InvalidValue
この DynAny から char 値を抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_short

short get_short()
                throws TypeMismatch,
                       InvalidValue
この DynAny から short 値を抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_ushort

short get_ushort()
                 throws TypeMismatch,
                        InvalidValue
この DynAny から short 値を抽出します。IDL のデータ型 ushort は、Java のデータ型 short にマップされます。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_long

int get_long()
             throws TypeMismatch,
                    InvalidValue
この DynAny から整数値を抽出します。IDL のデータ型 long は、Java のデータ型 int にマップされます。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_ulong

int get_ulong()
              throws TypeMismatch,
                     InvalidValue
この DynAny から整数値を抽出します。IDL のデータ型 ulong は、Java のデータ型 int にマップされます。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_float

float get_float()
                throws TypeMismatch,
                       InvalidValue
この DynAny から float 値を抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_double

double get_double()
                  throws TypeMismatch,
                         InvalidValue
この DynAny から double 値を抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_string

String get_string()
                  throws TypeMismatch,
                         InvalidValue
この DynAny から文字列値を抽出します。バウンド形式とアンバウンド形式のどちらの文字列の場合もこのメソッドを使用して抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_reference

Object get_reference()
                     throws TypeMismatch,
                            InvalidValue
この DynAny から CORBA オブジェクトへの参照を抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_typecode

TypeCode get_typecode()
                      throws TypeMismatch,
                             InvalidValue
この DynAny から TypeCode オブジェクトを抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_longlong

long get_longlong()
                  throws TypeMismatch,
                         InvalidValue
この DynAny から long 値を抽出します。IDL のデータ型 long long は、Java のデータ型 long にマップされます。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_ulonglong

long get_ulonglong()
                   throws TypeMismatch,
                          InvalidValue
この DynAny から long 値を抽出します。IDL のデータ型の符号なし long long は、Java のデータ型 long にマップされます。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_wchar

char get_wchar()
               throws TypeMismatch,
                      InvalidValue
この DynAny から long 値を抽出します。IDL のデータ型 wchar は、Java のデータ型 char にマップされます。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_wstring

String get_wstring()
                   throws TypeMismatch,
                          InvalidValue
この DynAny から文字列値を抽出します。バウンド形式とアンバウンド形式のどちらの文字列の場合もこのメソッドを使用して抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue

get_any

Any get_any()
            throws TypeMismatch,
                   InvalidValue
この DynAny が表す Any に含まれている Any 値を抽出します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_dyn_any

DynAny get_dyn_any()
                   throws TypeMismatch,
                          InvalidValue
この DynAny が表す Any に含まれている Any 値を抽出し、それを新しい DynAny にラップして返します。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

get_val

Serializable get_val()
                     throws TypeMismatch,
                            InvalidValue
この DynAny から直列化可能オブジェクトを抽出します。IDL の ValueBase 型は Java の Serializable 型にマップされます。

例外:
TypeMismatch - DynAny のアクセス対象のコンポーネントが、要求された型と同じ型ではない場合
TypeMismatch - 現在のコンポーネント自体がコンポーネントを持つような DynAny で呼び出された場合
InvalidValue - この DynAny がコンポーネントを持つが、現在位置が -1 である場合

seek

boolean seek(int index)
現在位置を index に設定します。現在位置には 0 から n-1 というインデックスが付きます。つまり、0 というインデックスは最初のコンポーネントに対応します。この操作は、結果の現在位置が DynAny のコンポーネントを示す場合は true、コンポーネントに対応しない位置を示す場合は false を返します。seek は、負のインデックスでも呼び出せます。この場合、現在位置は -1 に設定され、どのコンポーネントをも指し示さないことになり、false が返されます。現在位置にコンポーネントがない DynAny について負以外のインデックス値を渡すと、現在位置が -1 に設定され、false が返されます。


rewind

void rewind()
seek(0) と同じです。


next

boolean next()
現在位置を次のコンポーネントに進めます。操作は、結果の現在位置がコンポーネントを示す場合は true、そうでない場合は false を返します。false が返された場合、現在位置は -1 のままになります。コンポーネントを持たない DynAny で next を呼び出すと、現在位置は -1 のままで false が返されます。


component_count

int component_count()
DynAny のコンポーネントの数を返します。DynAny がコンポーネントを持たない場合は 0 を返します。コンポーネント数のカウントは、最上位だけに対して行われます。たとえば、メンバが 1 つしかない DynStruct で component_count を呼び出すと、それがどのようなメンバであっても戻り値は 1 になります。


current_component

DynAny current_component()
                         throws TypeMismatch
現在位置のコンポーネントの DynAny を返します。現在位置は進めないので、rewind、next、seek のどれかを呼び出さずに current_component を繰り返し呼び出すと、同じコンポーネントが返されることになります。返された DynAny オブジェクト参照は、現在のコンポーネントの値の取得や設定に使用できます。現在のコンポーネントが複合型を表す場合、返された参照を TypeCode に基づいてナロー変換し、その複合型に対応するインタフェースを取得できます。DynEnum または空の例外のようにコンポーネントを持つことのできない DynAny で current_component を呼び出すと、TypeMismatch が発生します。現在位置が -1 である DynAny で current_component を呼び出すと、nil の参照が返されます。current_component とともに繰り返し操作を使用すると、any 値を動的に作成できます。DynStruct などの動的な any を作成後、current_component と next を使用し、値のすべてのコンポーネントを初期化できます。動的な値が完全に初期化されたら、対応する any 値を to_any で作成できます。

例外:
TypeMismatch - DynEnum や空の例外のようにコンポーネントを持つことのできない DynAny で呼び出された場合

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。