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

クラスContext



  • public abstract class Context
    extends Object
    Requestオペレーションで、この呼び出しとともに送出される前にコンテキスト文字列を解決する必要のあるコンテキスト・オブジェクトの指定で使用されるオブジェクトです。解決されたコンテキスト文字列は、リクエストの呼び出しとともに送られます。 Contextオブジェクトは、NamedValueオブジェクトの形式でプロパティのリストを格納します。 それらのプロパティは、クライアント、環境、または要求の状況についての情報を表すもので、通常、パラメータとして渡すのが難しいプロパティです。

    Contextオブジェクトは、まずORBメソッドのget_default_contextを呼び出し、次にデフォルトのコンテキストでcreate_childメソッドを呼び出すことによって作成されます。

    Contextオブジェクトの各プロパティは、NamedValueオブジェクトによって表されます。 プロパティ名はNamedValueオブジェクトのnameフィールドに格納され、その名前に関連した値はNamedValueオブジェクトのvalueフィールドに割り当てられたAnyオブジェクトに格納されます。

    Contextのプロパティは、サーバーの環境に送られる(および暗黙的にその一部となる)クライアントまたはアプリケーションの環境の一部を表すことができます。 (ウィンドウ識別子やユーザー設定情報など)。 サーバーが呼び出されると(つまりプロパティが送られたあと)、サーバーはget_valuesメソッドを使用して、そのContextオブジェクトにそのプロパティについて問い合わせることができます。

    オペレーションの宣言にcontext節が定義されている場合、スタブおよびスケルトンはそのコンテキスト用として付加的な引数を持ちます。 オペレーションの呼出しが発生すると、ORBはIDLのオペレーション定義で名付けられて、クライアントのContextオブジェクトにあるプロパティが、呼び出されたメソッドへのContextオブジェクト・パラメータで提供されるようにします。

    Contextプロパティ名(文字列)は、通常、OMG IDL識別子またはピリオドで区切られた一連のOMG IDL識別子の形式となります。 コンテキスト・プロパティ名のパターンは、プロパティ名、または1つの「*」が末尾に付くプロパティ名のどちらかです。 末尾に「*」が付かないプロパティ名パターンは、そのプロパティ名自体の文字列とだけ一致します。 「<名前>*」形式のプロパティ名のパターンは、<名前>で始まり0以上の文字が続くどのプロパティ名とも一致します。

    プロパティ名のパターンは、オペレーション定義のcontext節で、またはContext.get_valuesメソッドのパラメータとして使用されます。

    Contextオブジェクトは、特定のデフォルトの動作を行うためにお互いに連鎖させることができます。 create_childメソッドで作成されたContextオブジェクトは、その親(それを作成したContextオブジェクト)に連鎖されます。つまりその親は、プロパティ名の検索で子の後に検索されます。

    あるContextオブジェクトで定義されたプロパティは、その1つ上のレベルで定義されたそのプロパティをオーバーライドします。 プロパティの検索で使用される範囲は、get_valuesメソッドを呼び出すときに開始範囲を指定し、CTX_RESTRICT_SCOPEフラグを使用することにより制限できます。

    Contextオブジェクトは、開始検索範囲を指定する目的で名付けることができます。

    導入されたバージョン:
    JDK1.2
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      Context​()  
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 
      修飾子と型 メソッド 説明
      abstract String context_name​()
      このContextオブジェクトの名前を取得します。
      abstract Context create_child​(String child_ctx_name)
      文字列で名前を指定して、このContextオブジェクトを親とするContextオブジェクトを生成します。
      abstract void delete_values​(String propname)
      nameフィールドが、指定されたプロパティ名と一致するNamedValueオブジェクトを、このContextオブジェクトから削除します。
      abstract NVList get_values​(String start_scope, int op_flags, String pattern)
      nameフィールドが、指定された名前、または指定された名前パターンと一致するNamedValueオブジェクトを取得します。
      abstract Context parent​()
      このContextオブジェクトの親を取得します。
      abstract void set_one_value​(String propname, Any propvalue)
      NamedValueオブジェクトを生成し、そのオブジェクトをこのContextオブジェクトに追加します。
      abstract void set_values​(NVList values)
      このContextオブジェクトの1つ以上のプロパティ値を設定します。
    • コンストラクタの詳細

      • Context

        public Context​()
    • メソッドの詳細

      • context_name

        public abstract String context_name​()
        このContextオブジェクトの名前を取得します。
        戻り値:
        このContextオブジェクトの名前
      • parent

        public abstract Context parent​()
        このContextオブジェクトの親を取得します。
        戻り値:
        このContextオブジェクトの親であるContextオブジェクト
      • create_child

        public abstract Context create_child​(String child_ctx_name)
        文字列で名前を指定して、このContextオブジェクトを親とするContextオブジェクトを生成します。

        新しいContextオブジェクトは、その親であるContextオブジェクトに連鎖されます。 つまり、一致するプロパティ名の検索で、一致するプロパティ名がこのコンテキストで見つからない場合、その親で検索が継続されます。 親でも一致するプロパティ名が見つからない場合は、さらにその親(存在する場合)へと、検索は次々に継続されます。

        パラメータ:
        child_ctx_name - 新しいContextオブジェクトの名前として設定されるStringオブジェクト
        戻り値:
        指定された名前で初期化された、新しく作成された子であるContextオブジェクト
      • set_one_value

        public abstract void set_one_value​(String propname,
                                           Any propvalue)
        NamedValueオブジェクトを生成し、そのオブジェクトをこのContextオブジェクトに追加します。 新しいNamedValueオブジェクトのnameフィールドは、指定された文字列に設定され、valueフィールドは、指定されたAnyオブジェクトに設定され、flagsフィールドは0に設定されます。
        パラメータ:
        propname - 設定するプロパティの名前
        propvalue - プロパティの値が設定されるAnyオブジェクト。 このAnyオブジェクトのvalueフィールドは、指定されたpropnameと関連する値を格納する。kindフィールドはTCKind.tk_stringに設定する必要がある。
      • set_values

        public abstract void set_values​(NVList values)
        このContextオブジェクトの1つ以上のプロパティ値を設定します。 このメソッドに指定されたNVListは、1つ以上のNamedValueオブジェクトを格納します。 NamedValueオブジェクトでは、nameフィールドはプロパティ名を持ち、flagsフィールドは0に設定されます。 NamedValueオブジェクトのvalueフィールドはAnyオブジェクトを格納し、そのAnyオブジェクトはプロパティの値を格納します。 値は常に文字列であるため、Anyオブジェクトでは、そのTypeCodekindフィールドをTCKind.tk_stringに設定する必要があります。
        パラメータ:
        values - プロパティ名、およびそれに関連する設定値を格納するNVList
        関連項目:
        get_values(java.lang.String, int, java.lang.String), NamedValue, Any
      • delete_values

        public abstract void delete_values​(String propname)
        nameフィールドが、指定されたプロパティ名と一致するNamedValueオブジェクトを、このContextオブジェクトから削除します。 propnameに指定されたStringオブジェクトの末尾にワイルドカード文字(*)がある場合、nameフィールドが一致するすべてのNamedValueオブジェクトが削除されます。 検索範囲は、常にこのContextオブジェクトに制限されます。

        一致するプロパティが見つからない場合は、例外が返されます。

        パラメータ:
        propname - 削除されるプロパティの名前
      • get_values

        public abstract NVList get_values​(String start_scope,
                                          int op_flags,
                                          String pattern)
        nameフィールドが、指定された名前、または指定された名前パターンと一致するNamedValueオブジェクトを取得します。 このメソッドでは、ワイルドカード検索が行えます。つまり、一致するプロパティが複数ある場合は、複数の値が返されます。 プロパティが指定されたレベルで見つからない場合、一致するプロパティが見つかるまで、あるいは連鎖内のすべてのContextオブジェクトが検索されるまで、コンテキスト・オブジェクト・ツリーの上方向に検索が続けられます。

        一致するプロパティが見つからない場合は、エラーが返され、プロパティ・リストは返されません。

        パラメータ:
        start_scope - 指定されたプロパティの検索を開始するコンテキスト・オブジェクト・レベルを示すStringオブジェクト(_USER、_GROUP、_SYSTEMなど)。 有効な範囲名は実装に固有。 範囲名が省略されると、検索は指定されたコンテキスト・オブジェクトで開始される。 指定された範囲名が見つからない場合は、例外が返される。
        op_flags - オペレーション・フラグ。 指定できる唯一のフラグはCTX_RESTRICT_SCOPE このフラグが指定されると、検索は指定されたstart_scope、すなわち、このContextオブジェクトに制限される。
        pattern - 値が取得されるプロパティ名。patternは名前、または末尾にワイルドカード文字("*")を含む名前。
        戻り値:
        対応するプロパティ名が、指定された名前、または指定された名前パターンと一致するすべてのプロパティ値(NamedValueオブジェクトの形式)を格納しているNVList
        関連項目:
        set_values(org.omg.CORBA.NVList), NamedValue