モジュール java.corba
パッケージ org.omg.CORBA

クラスServerRequest


  • public abstract class ServerRequest
    extends Object
    Dynamic Skeleton Interface (DSI)の明示的な状態を取り込むオブジェクトです。 DSIの基盤であるこのクラスは、DIIにおけるRequestオブジェクトに似ています。

    ORBにより要求が具体化されて、Dynamic Implementation Routine (DIR)に送られます。 動的サーバント(DIR)はDynamicImplementationクラスを実装することにより作成され、1つのinvokeメソッドを持ちます。 このメソッドはServerRequestオブジェクトを受け取ります。 abstractクラスServerRequestにより、メソッド名、引数、およびリクエスト・コンテキストにアクセスするメソッド、およびリクエストの結果を戻り値または例外として設定するメソッドが定義されます。

    要求の引数にアクセスする際、引数に関するまとまった情報が存在しないため、予期される引数の型情報をDIRが提供する必要があります。 この情報はNamedValueオブジェクトのリストであるNVListにより提供されます。 NamedValueオブジェクトにはAnyオブジェクトが含まれ、Anyオブジェクトが引数の型を表すTypeCodeオブジェクトを保持します。

    同様に、予期される結果または例外用に応答の型情報を指定する必要があるため、resultおよびexceptメソッドがパラメータとしてAnyオブジェクトを取ります。

    関連項目:
    DynamicImplementation, NVList, NamedValue
    • コンストラクタの詳細

      • ServerRequest

        public ServerRequest()
    • メソッドの詳細

      • op_name

        @Deprecated
        public String op_name()
        非推奨。
        operation()を使用してください
        呼び出される操作名を取得します。 OMG IDLの規則では、これらの名前はこのオブジェクトの「最上位の派生」インタフェースでサポートされるすべての操作の中で一意である必要があります。 属性の取得と設定の操作名は、それぞれ_get_<attribute_name>_set_<attribute_name>になります。
        戻り値:
        呼び出されるオペレーションの名前
      • operation

        public String operation()
        org.omg.CORBA.NO_IMPLEMENT例外をスローします。

        呼び出される操作名を取得します。 OMG IDLの規則では、これらの名前はこのオブジェクトの「最上位の派生」インタフェースでサポートされるすべての操作の中で一意である必要があります。 属性の取得と設定の操作名は、それぞれ_get_<attribute_name>_set_<attribute_name>になります。

        戻り値:
        呼び出されるオペレーションの名前
        関連項目:
        CORBAパッケージに実装されていない機能についてのコメント
      • params

        @Deprecated
        public void params​(NVList params)
        非推奨。
        メソッドargumentsを使用してください
        メソッドのパラメータ型を指定して、inおよびinout引数の値を取得します。

        このメソッドは非推奨です。代わりにargumentsメソッドを使用してください。

        set_exceptionメソッドが呼び出されない場合、DIRはメソッドのシグネチャにパラメータが含まれなくても、1度だけこのメソッドを呼び出す必要があります。 argumentsまたはset_exceptionメソッドが呼び出された場合、同じServerRequestオブジェクトに対してargumentsを呼び出すとBAD_INV_ORDERシステム例外がスローされます。 DIRは、操作のパラメータ型を説明するTypeCodeとFlagで初期化されたNVListを、IDL仕様で指定された順序(左から右)でargumentsメソッドに渡す必要があります。 潜在的に異なるNVListが、指定されたinおよびinout引数値を使用して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は、操作のパラメータ型を説明するTypeCodeとFlagで初期化されたNVListを、IDL仕様で指定された順序(左から右)でargumentsメソッドに渡す必要があります。 潜在的に異なるNVListが、指定されたinおよびinout引数値を使用してargumentsから返されます。 set_exceptionメソッドを呼び出さない場合、DIRは、復帰前に、返されるNVListにすべてのout引数の戻り値を指定する必要があります。また、すべてのinout引数の戻り値を変更する場合もあります。
        パラメータ:
        args - メソッドの引数(NVListの形式)
        関連項目:
        CORBAパッケージに実装されていない機能についてのコメント
      • result

        @Deprecated
        public void result​(Any any)
        非推奨。
        メソッドset_resultを使用してください
        呼出しの任意の戻り値を指定します。

        このメソッドは非推奨です。代わりにset_resultメソッドを使用してください。

        set_exceptionメソッドが呼び出されず、呼び出されたメソッドの結果型がvoid以外の場合、DIRの復帰前にset_resultメソッドを1度だけ呼び出す必要があります。 操作の結果型がvoidの場合、オプションで、tk_void型のAnyオブジェクトを使用して、set_resultメソッドを1度呼び出すことができます。 argumentsメソッドが呼び出される前、あるいはset_resultまたはset_exceptionメソッドが呼び出されたあとにset_resultメソッドを呼び出すと、BAD_INV_ORDER例外がスローされます。 IDL操作にコンテキスト式が含まれるか、引数に渡されたNVListにクライアントから渡されたすべてのパラメータが記述されない場合、それ以前にctxメソッドを呼び出さないでset_resultメソッドを呼び出すと、MARSHALシステム例外がスローされる場合があります。

        パラメータ:
        any - 設定する戻り値を含むAnyオブジェクト
      • set_result

        public void set_result​(Any any)
        org.omg.CORBA.NO_IMPLEMENT例外をスローします。

        呼出しの任意の戻り値を指定します。 set_exceptionメソッドが呼び出されず、呼び出されたメソッドの結果型がvoid以外の場合、DIRの復帰前にset_resultメソッドを1度だけ呼び出す必要があります。 操作の結果型がvoidの場合、オプションで、tk_void型のAnyオブジェクトを使用して、set_resultメソッドを1度呼び出すことができます。 argumentsメソッドが呼び出される前、あるいはset_resultまたはset_exceptionメソッドが呼び出されたあとにset_resultメソッドを呼び出すと、BAD_INV_ORDER例外がスローされます。 IDL操作にコンテキスト式が含まれるか、引数に渡されたNVListにクライアントから渡されたすべてのパラメータが記述されない場合、それ以前にctxメソッドを呼び出さないでset_resultメソッドを呼び出すと、MARSHALシステム例外がスローされる場合があります。

        パラメータ:
        any - 設定する戻り値を含むAnyオブジェクト
        関連項目:
        CORBAパッケージに実装されていない機能についてのコメント
      • except

        @Deprecated
        public void except​(Any any)
        非推奨。
        set_exception()を使用してください
        DIRはいつでもset_exceptionを呼び出してクライアントに例外を返すことができます。 set_exceptionに渡されるAnyには、システム例外または呼び出される操作のIDL定義の発生式に指定されたユーザー例外を含める必要があります。 例外が指定されていないAnyを渡すと、BAD_PARAMシステム例外がスローされます。 リストされていないユーザー例外を渡すと、DIRがBAD_PARAMシステム例外を受け取るか、またはクライアントがUNKNOWNシステム例外を受け取ることになります。
        パラメータ:
        any - 例外を含むAnyオブジェクト
      • set_exception

        public void set_exception​(Any any)
        org.omg.CORBA.NO_IMPLEMENT例外をスローします。

        指定された例外をクライアントに返します。 このメソッドはDIRから呼び出され、いつでも呼び出すことができます。 このメソッドに渡されたAnyオブジェクトには、システム例外または呼び出される操作のIDL定義で指定されたユーザー例外のいずれかを含める必要があります。 例外が指定されていないAnyを渡すと、BAD_PARAMシステム例外がスローされます。 リストされていないユーザー例外を渡すと、DIRがBAD_PARAMシステム例外を受け取るか、またはクライアントがUNKNOWNシステム例外を受け取ることになります。

        パラメータ:
        any - 例外を含むAnyオブジェクト
        例外:
        BAD_PARAM - 指定されたAnyオブジェクトに例外が含まれない、または例外が、リストされていないユーザー例外である場合
        UNKNOWN - 指定された例外がリストにないユーザー例外であり、DIRがBAD_PARAM例外を受け取らなかった場合
        関連項目:
        CORBAパッケージに実装されていない機能についてのコメント
      • ctx

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