- java.lang.Object
-
- org.omg.CORBA.Context
-
public abstract class Context extends Object
在Request
操作中使用的对象,用于指定在发送请求调用之前必须解析上下文字符串的上下文对象。 甲Context
对象包含的形式属性的列表NamedValue
对象。 这些属性表示有关客户端,环境或请求的情况的信息,通常是可能不方便作为参数传递的属性。通过首先调用
ORB
方法get_default_context
然后在默认上下文中调用方法create_child
创建一个Context
对象。Context
对象中的每个属性由一个NamedValue
对象表示。 属性名称包含在NamedValue
对象name
场,并与名称关联的值包含在Any
这是分配给对象NamedValue
对象value
场。Context
属性可以表示客户端或应用程序的环境的一部分,该部分意图传播到服务器的环境(并使其成为隐含的部分)。 (示例可能是窗口标识符或用户偏好信息)。 一旦调用了服务器(即在传播属性之后),服务器可以使用方法get_values
查询其Context
对象的这些属性。当操作声明包含一个上下文子句时,存根和骨架将为上下文添加一个附加参数。 当操作调用发生时,ORB会导致在IDL中的操作定义中命名的属性,并且客户端的
Context
对象中存在的属性将在调用方法的Context
对象参数中提供。Context
属性名称(它们是字符串)通常具有以句点分隔的OMG IDL标识符或一系列OMG IDL标识符的形式。 上下文属性名称模式是属性名称或属性名称,后跟单个“*”。 没有尾随“*”的属性名称模式称为仅匹配本身。 表单“<name> *”的属性名称模式匹配以<name>开头的任何属性名称,并继续添加零个或多个其他字符。属性名称模式在操作定义的上下文子句中用作方法
Context.get_values
的参数。Context
对象可以“链接在一起”以实现特定的默认行为。 使用方法create_child
创建的一个Context
对象将被链接到其父(创建它的Context
对象),这意味着在搜索属性名称后,该子Context
将被搜索。在特定的
Context
对象中定义的属性有效地覆盖了下一个更高级别的属性。 在搜索属性时使用的范围可能会通过指定起始范围并在调用方法get_values
时使用标志CTX_RESTRICT_SCOPE
来限制。为了指定起始搜索范围,可以命名
Context
对象。- 从以下版本开始:
- JDK1.2
-
-
构造方法摘要
构造方法 Constructor 描述 Context()
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract String
context_name()
检索此Context
对象的名称。abstract Context
create_child(String child_ctx_name)
创建一个Context
对象,其中给定的字符串作为其名称,并将此Context
对象设置为其父对象。abstract void
delete_values(String propname)
从此Context
删除对象,其NamedValue
对象的name
字段与给定的属性名称匹配。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
对象中设置一个或多个属性值。
-
-
-
方法详细信息
-
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
- 将String
对象设置为新的Context
对象的名称 - 结果
-
新创建的子对象
Context
用指定的名称初始化
-
set_one_value
public abstract void set_one_value(String propname, Any propvalue)
创建一个NamedValue
对象,并将其添加到此Context
对象。 新的NamedValue
对象的name
字段设置为给定的字符串,将value
字段设置为给定的Any
对象,并将flags
字段设置为零。- 参数
-
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
字段必须设置为零。NamedValue
对象的value
字段包含一个Any
对象,而该对象又包含该属性的值。 由于该值始终是一个字符串,则Any
对象必须具有kind
的领域TypeCode
设置为TCKind.tk_string
。- 参数
-
values
- 包含要设置的属性名称和关联值的values
- 另请参见:
-
get_values(java.lang.String, int, java.lang.String)
,NamedValue
,Any
-
delete_values
public abstract void delete_values(String propname)
从此Context
删除对象,其NamedValue
对象的name
字段与给定的属性名称匹配。 如果String
为供给对象propname
具有后通配符(“*”),则所有NamedValue
对象,它们的name
字段匹配将被删除。 搜索范围始终限于此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
-
-