public interface DynAnyOperations
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
- TypeMismatch
- 渡されたDynAnyの型が、初期化されるDynAnyの型に一致しない場合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で呼び出された場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.