|
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.