JavaTM 2 Platform
Standard Ed. 6

org.omg.CORBA
類別 Context

java.lang.Object
  繼承者 org.omg.CORBA.Context

public abstract class Context
extends Object

用於在 Request 操作中指定上下文物件的物件,上下文字元串在與請求調用一起被發送之前,必須在該指定的上下文物件中進行解析。Context 物件包含 NamedValue 物件形式的屬性列表。這些屬性表示關於客戶端、環境或請求情形的資訊,它們通常是一些可能不方便作為參數傳遞的屬性。

Context 物件是通過先調用 ORB 方法 get_default_context,然後在預設上下文上調用 create_child 來創建的。

Context 物件中的每個屬性都由一個 NamedValue 物件表示。屬性名稱包含在 NamedValue 物件的 name 欄位中,與該名稱關聯的值包含在 Any 物件中,該 Any 已分派給 NamedValue 物件的 value 欄位。

Context 屬性可以表示要傳播到伺服器環境(並使其成為其隱含部分)的部分客戶端環境或應用程序環境。(範例有視窗標識符或使用者首選項資訊)。一旦已經調用伺服器(即傳播屬性之後),伺服器可以使用 get_values 方法查詢其 Context 物件來獲得這些屬性。

當操作宣告中包括上下文子句時,stub 和 skeleton 將有一個為該上下文添加的額外參數。在進行操作調用時,ORB 將在已調用方法的 Context 物件參數中提供使用 IDL 在操作定義中指定的屬性以及客戶端的 Context 物件中存在的屬性。

多個 Context 屬性名稱(字元串)通常是以 OMG IDL 標識符(或一系列以句點分隔的 OMG IDL 標識符)的形式出現的。單個 Context 屬性名稱網要可以是屬性名稱或後跟單個 "*" 的屬性名稱。沒有結尾 "*" 的屬性名稱網要被認為只與它自己比對。"<名稱>*"形式的屬性名稱網要與任何以<名稱>開頭,且後跟零個或多個附加字元的屬性名稱比對。

屬性名稱網要用在操作定義的 Context 子句中,作為 Context.get_values 方法的參數。

Context 物件可能被“連接”在一起,以完成特定預設行為。使用 create_child 方法創建的 Context 物件將與其父物件(創建該物件的 Context 物件)連接在一起,這意味著在搜尋屬性名稱時,搜尋子物件之後將搜尋父物件。

在特定 Context 物件中定義的屬性會在下一個較高層級別有效地覆寫這些屬性。通過指定起始範圍並在調用 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)
          從此 Context 物件中刪除 name 欄位與給定屬性名稱比對的 NamedValue 物件。
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 物件中設置一個或多個屬性值。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

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 物件中設置一個或多個屬性值。提供給此方法的 NVList 套件含一個或多個 NamedValue 物件。在每個 NamedValue 物件中,name 欄位用於保存屬性名稱,同時必須將 flags 欄位設置為 0。NamedValue 物件的 value 欄位包含一個 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)
從此 Context 物件中刪除 name 欄位與給定屬性名稱比對的 NamedValue 物件。如果為 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 可以是名稱或結尾帶通配符 ("*") 的名稱。
返回:
一個 NVList,它包含所有關聯屬性名稱與給定名稱或名稱網要比對的屬性值(以 NamedValue 物件的形式存在)
另請參見:
set_values(org.omg.CORBA.NVList), NamedValue

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only