JavaTM 2 Platform
Std. Ed. v1.3

org.omg.CORBA
クラス ServerRequest

java.lang.Object
  |
  +--org.omg.CORBA.ServerRequest

public abstract class ServerRequest
extends Object

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
 

コンストラクタの詳細

ServerRequest

public ServerRequest()
メソッドの詳細

op_name

public String op_name()
推奨されていません。 operation() を使用してください。

呼び出されるオペレーションの名前を取得します。OMG IDL の規則では、これらの名前は、このオブジェクトの最上位の派生元のインタフェースによってサポートされるすべてのオペレーションで一意でなければなりません。属性を取得および設定するためのオペレーション名は、それぞれ _get_<attribute_name> および _set_<attribute_name> です。
戻り値:
呼び出されるオペレーションの名前

operation

public String operation()
呼び出されるオペレーションの名前を取得します。OMG IDL の規則では、これらの名前は、このオブジェクトの最上位の派生元のインタフェースによってサポートされるすべてのオペレーションで一意でなければなりません。属性を取得および設定するためのオペレーション名は、それぞれ _get_<attribute_name> および _set_<attribute_name> です。
戻り値:
呼び出されるオペレーションの名前
関連項目:
CORBA パッケージに実装されていない機能についてのコメント

params

public void params(NVList params)
推奨されていません。 arguments メソッドを使用してください。

メソッドのパラメータ型を指定し、IN 引数値および INOUT 引数値を取得します。

このメソッドは推奨されていません。代わりに 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 オブジェクト形式での、メソッドの引数

arguments

public void arguments(NVList args)
メソッドのパラメータ型を指定し、IN 引数値および INOUT 引数値を取得します。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 パッケージに実装されていない機能についてのコメント

result

public void result(Any any)
推奨されていません。 set_result メソッドを使用してください。

呼び出しの戻り値を指定します。

このメソッドは推奨されません。代わりに set_result メソッドを使用してください。

set_exception メソッドが呼び出されない場合、呼び出されたメソッドの結果型が void でないときは、DIR が復帰する前に set_result メソッドが 1 回だけ呼び出される必要があります。オペレーションの結果型が void の場合、set_result メソッドは、型が tk_voidAny オブジェクトで必要に応じて 1 回だけ呼び出すことができます。arguments メソッドが呼び出される前、または set_result メソッドか set_exception メソッドが呼び出されたあとに set_result メソッドを呼び出すと、BAD_INV_ORDER 例外がスローされます。IDL オペレーションがコンテキスト式を格納する場合、または引数に渡された NVList がクライアントによって渡されるすべてのパラメータを記述しなかった場合、事前に ctx メソッドを呼び出さずに set_result メソッドを呼び出すと、MARSHAL システム例外がスローされます。


set_result

public void set_result(Any any)
呼び出しの戻り値を指定します。set_exception メソッドが呼び出されない場合、呼び出されたメソッドの結果型が void でないときは、DIR が復帰する前に set_result メソッドは 1 回だけ呼び出される必要があります。オペレーションの結果型が void の場合、set_result メソッドは、型が tk_voidAny オブジェクトで必要に応じて 1 回だけ呼び出すことができます。arguments メソッドが呼び出される前、または set_result メソッドか set_exception メソッドが呼び出されたあとに set_result メソッドを呼び出すと、BAD_INV_ORDER 例外がスローされます。IDL のオペレーションがコンテキスト式を格納する場合、または引数に渡された NVList がクライアントによって渡されるすべてのパラメータを記述しなかった場合、事前に ctx メソッドを呼び出さずに set_result メソッドを呼び出すと、MARSHAL システム例外がスローされます。
関連項目:
CORBA パッケージに実装されていない機能についてのコメント

except

public void except(Any any)
推奨されていません。 set_exception() を使用してください。

DIR は、クライアントに例外を返すためにいつでも set_exception を呼び出すことができます。set_exception に渡された Any は、システム例外、あるいは呼び出されたオペレーションの IDL 定義の raises 式で指定されたユーザ例外を格納する必要があります。例外を格納しない Any を渡すと、BAD_PARAM システム例外がスローされます。リスト表示されていないユーザ例外を渡すと、DIR が BAD_PARAM システム例外を受信するか、クライアントが UNKNOWN_EXCEPTION システム例外を受信します。
パラメータ:
any - 例外を格納する Any オブジェクト

set_exception

public void set_exception(Any any)
指定された例外をクライアントに返します。このメソッドは、DIR によって呼び出されます。DIR は、このメソッドをいつでも呼び出すことができます。このメソッドに渡された Any オブジェクトは、システム例外、あるいは呼び出されたオペレーションの ID の定義で指定されたユーザ例外の 1 つを格納する必要があります。例外を格納しない Any オブジェクトを渡すと、BAD_PARAM システム例外がスローされます。リスト表示されていないユーザ例外を渡すと、DIR が BAD_PARAM システム例外を受信するか、クライアントが UNKNOWN_EXCEPTION システム例外を受信します。
パラメータ:
any - 例外を格納する Any オブジェクト
例外:
BAD_PARAM - 指定された Any オブジェクトが例外を格納しない場合、または例外がリスト表示されていないユーザ例外の場合
UNKNOWN_EXCEPTION - 指定された例外がリスト表示されていないユーザ例外であり、DIR が BAD_PARAM 例外を受信しなかった場合
関連項目:
CORBA パッケージに実装されていない機能についてのコメント

ctx

public abstract Context ctx()
オペレーションが属性のアクセスではなく、オペレーションの IDL 定義がコンテキスト式を格納している場合に、そのオペレーションに対して IDL で指定されているコンテキスト情報を返します。そうでない場合は、nil Context 参照を返します。arguments メソッドが呼び出される前、あるいは ctxset_resultset_exception メソッドが呼び出されたあとに ctx メソッドを呼び出すと、BAD_INV_ORDER システム例外がスローされます。
戻り値:
値が呼び出しとともに送られる必要のあるコンテキスト文字列を解決するために使用されるコンテキストオブジェクト
例外:
BAD_INV_ORDER - (1)arguments メソッドの前に ctx メソッドが呼び出された場合、あるいは (2) set_resultset_exception を呼び出したあとに ctx メソッドが呼び出された場合

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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.