|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object | +--org.omg.CORBA.ServerRequest
Dynamic Skelton Interface (DSI) で要求の明示的な状態を取得するオブジェクトです。このクラス (DSI の基礎) は、DII の Request オブジェクトと類似しています。
ORB は、要求を具現化したものを作成し、それを Dynamic Implementation Routine(DIR) に送ります。動的サーバント (DIR) は、1 つの invoke メソッドを持つ DynamicImplementation クラスを実装することによって作成されます。このメソッドは、ServerRequest オブジェクトを受け入れます。
抽象クラス ServerRequest は、要求の結果を戻り値または例外として設定するメソッドに加えて、メソッド名、および要求の引数とコンテキストにアクセスするためのメソッドを定義します。
要求の引数にアクセスする上での問題は、DIR は、予期される引数についての型情報を提供する必要があることです (それらについてまとまった情報がないため)。この情報は、NamedValue オブジェクトのリストである NVList を介して提供されます。各 NamedValue オブジェクトは Any オブジェクトを格納し、Any オブジェクトは引数の型を表す TypeCode オブジェクトを持ちます。
同じように、予期される結果または例外のどちらかについて、応答に対しても型情報を提供する必要があります。そのため、result メソッドおよび except メソッドは Any オブジェクトをパラメータとしてとります。
DynamicImplementation,
NVList,
NamedValue| コンストラクタの概要 | |
ServerRequest()
|
|
| メソッドの概要 | |
void |
arguments(NVList args)
メソッドのパラメータ型を指定し、IN 引数値および INOUT 引数値を取得します。 |
abstract Context |
ctx()
オペレーションが属性のアクセスではなく、オペレーションの IDL 定義がコンテキスト式を格納している場合に、そのオペレーションに対して IDL で指定されているコンテキスト情報を返します。 |
void |
except(Any any)
推奨されていません。 set_exception() を使用してください。 |
String |
op_name()
推奨されていません。 operation() を使用してください。 |
String |
operation()
呼び出されるオペレーションの名前を取得します。 |
void |
params(NVList params)
推奨されていません。 arguments メソッドを使用してください。 |
void |
result(Any any)
推奨されていません。 set_result メソッドを使用してください。 |
void |
set_exception(Any any)
指定された例外をクライアントに返します。 |
void |
set_result(Any any)
呼び出しの戻り値を指定します。 |
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
public ServerRequest()
| メソッドの詳細 |
public String op_name()
_get_<attribute_name> および _set_<attribute_name> です。public String operation()
CORBA パッケージに実装されていない機能についてのコメントpublic void params(NVList params)
arguments メソッドを使用してください。
このメソッドは推奨されていません。代わりに arguments メソッドを使用してください。
set_exception メソッドを呼び出さないときは、メッソドのシグニチャーにパラメータがない場合でも、DIR はこのメソッドを 1 回だけ呼び出す必要があります。arguments メソッドまたは set_exception メソッドが 1 回呼び出されている場合、同じ ServerRequest オブジェクトで arguments を呼び出すと、BAD_INV_ORDER システム例外がスローされます。DIR は、IDL 仕様の順序で (左から右)、オペレーションのパラメータ型を記述する TypeCode および Flag で初期化された NVList を arguments メソッドに渡す必要があります。IN 引数値および INOUT 引数値が供給されている状態で、潜在的に異なる NVList が arguments から返されます。set_exception メソッドを呼び出さない場合、DIR は復帰する前に、返された NVList に OUT 引数の戻り値を供給する必要があり、また INOUT 引数の戻り値を変更することもできます。
params - NVList オブジェクト形式での、メソッドの引数public void arguments(NVList args)
set_exception メソッドを呼び出さないときは、メソッドのシグニチャーにパラメータがない場合でも、DIR はこのメソッドを 1 回だけ呼び出す必要があります。arguments メソッドまたは set_exception メソッドが呼び出された場合、同じ ServerRequest オブジェクトで arguments を呼び出すと、BAD_INV_ORDER システム例外がスローされます。DIR は、IDL 仕様の順序で (左から右)、オペレーションのパラメータ型を記述する TypeCode および Flag で初期化された NVList を arguments メソッドに渡す必要があります。IN 引数値および INOUT 引数値が供給されている状態で、潜在的に異なる NVList が arguments から返されます。set_exception メソッドを呼び出さない場合、DIR は復帰する前に、返された NVList に OUT 引数の戻り値を供給する必要があり、また INOUT 引数の戻り値を変更することもできます。args - NVList の形式での、メソッドの引数CORBA パッケージに実装されていない機能についてのコメントpublic void result(Any any)
set_result メソッドを使用してください。
このメソッドは推奨されません。代わりに set_result メソッドを使用してください。
set_exception メソッドが呼び出されない場合、呼び出されたメソッドの結果型が void でないときは、DIR が復帰する前に set_result メソッドが 1 回だけ呼び出される必要があります。オペレーションの結果型が void の場合、set_result メソッドは、型が tk_void の Any オブジェクトで必要に応じて 1 回だけ呼び出すことができます。arguments メソッドが呼び出される前、または set_result メソッドか set_exception メソッドが呼び出されたあとに set_result メソッドを呼び出すと、BAD_INV_ORDER 例外がスローされます。IDL オペレーションがコンテキスト式を格納する場合、または引数に渡された NVList がクライアントによって渡されるすべてのパラメータを記述しなかった場合、事前に ctx メソッドを呼び出さずに set_result メソッドを呼び出すと、MARSHAL システム例外がスローされます。
public void set_result(Any any)
set_exception メソッドが呼び出されない場合、呼び出されたメソッドの結果型が void でないときは、DIR が復帰する前に set_result メソッドは 1 回だけ呼び出される必要があります。オペレーションの結果型が void の場合、set_result メソッドは、型が tk_void の Any オブジェクトで必要に応じて 1 回だけ呼び出すことができます。arguments メソッドが呼び出される前、または set_result メソッドか set_exception メソッドが呼び出されたあとに set_result メソッドを呼び出すと、BAD_INV_ORDER 例外がスローされます。IDL のオペレーションがコンテキスト式を格納する場合、または引数に渡された NVList がクライアントによって渡されるすべてのパラメータを記述しなかった場合、事前に ctx メソッドを呼び出さずに set_result メソッドを呼び出すと、MARSHAL システム例外がスローされます。CORBA パッケージに実装されていない機能についてのコメントpublic void except(Any any)
any - 例外を格納する Any オブジェクトpublic void set_exception(Any any)
Any オブジェクトは、システム例外、あるいは呼び出されたオペレーションの ID の定義で指定されたユーザ例外の 1 つを格納する必要があります。例外を格納しない Any オブジェクトを渡すと、BAD_PARAM システム例外がスローされます。リスト表示されていないユーザ例外を渡すと、DIR が BAD_PARAM システム例外を受信するか、クライアントが UNKNOWN_EXCEPTION システム例外を受信します。any - 例外を格納する Any オブジェクトBAD_PARAM - 指定された Any オブジェクトが例外を格納しない場合、または例外がリスト表示されていないユーザ例外の場合UNKNOWN_EXCEPTION - 指定された例外がリスト表示されていないユーザ例外であり、DIR が BAD_PARAM 例外を受信しなかった場合CORBA パッケージに実装されていない機能についてのコメントpublic abstract Context ctx()
Context 参照を返します。arguments メソッドが呼び出される前、あるいは ctx、set_result や set_exception メソッドが呼び出されたあとに ctx メソッドを呼び出すと、BAD_INV_ORDER システム例外がスローされます。BAD_INV_ORDER - (1)arguments メソッドの前に ctx メソッドが呼び出された場合、あるいは (2) set_result か set_exception を呼び出したあとに ctx メソッドが呼び出された場合
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.