JavaTM 2 Platform
Standard Ed. 5.0

org.omg.CORBA.portable
类 Delegate

java.lang.Object
  继承者 org.omg.CORBA.portable.Delegate
直接已知子类:
Delegate

public abstract class Delegate
extends Object

为 org.omg.CORBA.Object 方法特定于供应商的 ORB 实现指定一个可移植的 API。 每个 stub(代理)包含一个 delegate 对象,所有的 org.omg.CORBA.Object 方法都将转发到该对象。这允许一个供应商的 ORB 所生成的 stub 能与另一个供应商 ORB 中的 delegate 一起工作。

另请参见:
Object

构造方法摘要
Delegate()
           
 
方法摘要
abstract  Request create_request(Object obj, Context ctx, String operation, NVList arg_list, NamedValue result)
          创建在动态调用接口中使用的 Request 实例。
abstract  Request create_request(Object obj, Context ctx, String operation, NVList arg_list, NamedValue result, ExceptionList exclist, ContextList ctxlist)
          创建在动态调用接口中使用的 Request 实例。
abstract  Object duplicate(Object obj)
          返回所提供对象引用的复本。
 boolean equals(Object self, Object obj)
          提供重写委托 CORBA 对象方法 equals(java.lang.Object obj) 的实现。
 DomainManager[] get_domain_managers(Object self)
          检索此对象的 DomainManager
abstract  Object get_interface_def(Object self)
          返回一个所提供对象引用的 InterfaceDef。
 Policy get_policy(Object self, int policy_type)
          返回应用于此对象的指定类型的 Policy 对象。
abstract  int hash(Object obj, int max)
          返回此对象引用的内部 ORB 标识符(哈希码)。
 int hashCode(Object self)
          提供重写委托 CORBA 对象的 hashCode() 方法的实现。
 InputStream invoke(Object self, OutputStream output)
          由 stub 调用,以调用一个操作。
abstract  boolean is_a(Object obj, String repository_id)
          检查对象引用是否是给定接口的实例。
abstract  boolean is_equivalent(Object obj, Object other)
          确定两个对象引用是否相等。
 boolean is_local(Object self)
          如果此对象由本地 servant 实现,则返回 true。
abstract  boolean non_existent(Object obj)
          确定对象引用的服务器对象是否已经被销毁。
 ORB orb(Object obj)
          提供对与其参数关联的 orb 的引用。
abstract  void release(Object obj)
          发布与所提供对象引用关联的资源。
 void releaseReply(Object self, InputStream input)
          releaseReply 可以由 stub 以可选方式调用,以在解组完成时将应答流释放回 ORB。
abstract  Request request(Object obj, String operation)
          创建在动态调用接口 (Dynamic Invocation Interface) 中使用的 Request 实例。
 OutputStream request(Object self, String operation, boolean responseExpected)
          request 由 stub 调用,以获取用于编组参数的 OutputStream。
 void servant_postinvoke(Object self, ServantObject servant)
          servant_postinvoke() 由本地 stub 在已经对本地 servant 调用该操作之后调用。
 ServantObject servant_preinvoke(Object self, String operation, Class expectedType)
          返回对应该用作此请求的 servant 的 Java 引用。
 Object set_policy_override(Object self, Policy[] policies, SetOverrideType set_add)
          将传入的策略与它返回的新创建对象引用关联。
 String toString(Object self)
          提供重写委托 CORBA 对象的 toString() 方法的实现。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Delegate

public Delegate()
方法详细信息

get_interface_def

public abstract Object get_interface_def(Object self)
返回一个所提供对象引用的 InterfaceDef。

参数:
self - 需要返回 InterfaceDef 的对象引用。
返回:
InterfaceDef

duplicate

public abstract Object duplicate(Object obj)
返回所提供对象引用的复本。

参数:
obj - 需要返回复本的对象引用
返回:
对象引用的复本

release

public abstract void release(Object obj)
发布与所提供对象引用关联的资源。

参数:
obj - 需要释放资源的对象引用

is_a

public abstract boolean is_a(Object obj,
                             String repository_id)
检查对象引用是否是给定接口的实例。

参数:
obj - 要检查的对象引用。
repository_id - 要检查的接口存储库标识符。
返回:
如果对象引用支持该接口,则返回 true

non_existent

public abstract boolean non_existent(Object obj)
确定对象引用的服务器对象是否已经被销毁。

参数:
obj - 委托给此 delegate 的对象引用。
返回:
如果 ORB 确信 server 对象不存在,则返回 true;否则返回 false

is_equivalent

public abstract boolean is_equivalent(Object obj,
                                      Object other)
确定两个对象引用是否相等。

参数:
obj - 委托给此 delegate 的对象引用。
other - 要检查相等性的对象引用。
返回:
如果两个对象是相等的 CORBA,则返回 true。

hash

public abstract int hash(Object obj,
                         int max)
返回此对象引用的内部 ORB 标识符(哈希码)。

参数:
obj - 委托给此 delegate 的对象引用。
max - 指示 ORB 返回的哈希值的上界。
返回:
对象引用的内部 ORB 哈希标识符

request

public abstract Request request(Object obj,
                                String operation)
创建在动态调用接口 (Dynamic Invocation Interface) 中使用的 Request 实例。

参数:
obj - 委托给此 delegate 的对象引用。
operation - 要使用 Request 实例调用的操作名称。
返回:
创建的 Request 实例

create_request

public abstract Request create_request(Object obj,
                                       Context ctx,
                                       String operation,
                                       NVList arg_list,
                                       NamedValue result)
创建在动态调用接口中使用的 Request 实例。

参数:
obj - 委托给此 delegate 的对象引用。
ctx - 要使用的上下文。
operation - 要调用的操作的名称。
arg_list - NVList 形式的操作参数
result - NamedValue 形式的结果容器。
返回:
创建的 Request 对象。

create_request

public abstract Request create_request(Object obj,
                                       Context ctx,
                                       String operation,
                                       NVList arg_list,
                                       NamedValue result,
                                       ExceptionList exclist,
                                       ContextList ctxlist)
创建在动态调用接口中使用的 Request 实例。

参数:
obj - 委托给此 delegate 的对象引用。
ctx - 要使用的上下文。
operation - 要调用的操作的名称。
arg_list - NVList 形式的操作参数
result - NamedValue 形式的结果容器。
exclist - 操作可以抛出的可能异常列表。
ctxlist - 需要解析并使用 Request 发送的上下文字符串列表。
返回:
创建的 Request 对象。

orb

public ORB orb(Object obj)
提供对与其参数关联的 orb 的引用。

参数:
obj - 委托给此 delegate 的对象引用。
返回:
关联的 ORB。
另请参见:
portable 包中有关未实现特性的注释

get_policy

public Policy get_policy(Object self,
                         int policy_type)
返回应用于此对象的指定类型的 Policy 对象。

参数:
self - 委托给此 delegate 的对象引用。
policy_type - 要获取的策略类型。
返回:
policy_type 参数指定的 Policy 对象类型。
抛出:
BAD_PARAM - 策略类型无效时引发,策略类型无效可能是由于此 ORB 不支持指定的类型,或者该类型的 policy 对象没有与此 Object 关联。
另请参见:
portable 包中有关未实现特性的注释

get_domain_managers

public DomainManager[] get_domain_managers(Object self)
检索此对象的 DomainManager。这允许管理服务(和应用程序)检索域管理程序,从而使得安全性和其他策略能应用于作为该域成员的各个对象。

参数:
self - 委托给此 delegate 的对象引用。
返回:
此类直接封装的域管理程序列表。至少有一个域管理程序总是返回在列表中,因为默认情况下,每个类在创建时至少关联一个域管理程序。
另请参见:
portable 包中有关未实现特性的注释

set_policy_override

public Object set_policy_override(Object self,
                                  Policy[] policies,
                                  SetOverrideType set_add)
将传入的策略与它返回的新创建对象引用关联。只有某些关于在客户终端调用操作的策略才可以使用此操作重写。试图重写任何其他策略将导致引发 CORBA::NO_PERMISSION 异常。

参数:
self - 委托给此 delegate 的对象引用。
policies - Policy 对象的引用序列。
set_add - 指示是否应该这些策略添加到已经存在于该对象引用中的其他所有重写操作上 (ADD_OVERRIDE),或者是否应该将它们添加到一个空的重写释放对象引用 (clean override free object reference)
返回:
带有关联新策略的新对象引用。
另请参见:
portable 包中有关未实现特性的注释

is_local

public boolean is_local(Object self)
如果此对象由本地 servant 实现,则返回 true。

参数:
self - 委托给此 delegate 的对象引用。
返回:
仅当实现此对象的 servant 位于此 Java VM 时返回 true。如果 servant 不是本地的或 ORB 不支持此特定 servant 的本地 stub,则返回 false。is_local() 的默认行为是返回 false。

servant_preinvoke

public ServantObject servant_preinvoke(Object self,
                                       String operation,
                                       Class expectedType)
返回对应该用作此请求的 servant 的 Java 引用。servant_preinvoke() 由本地 stub 调用。如果返回 ServantObject 对象,则其 servant 字段已经被设置为预期类型的对象(注:该对象可以是也可以不是实际的 servant 实例)。本地 stub 可以将 servant 字段强制转换为所需类型,然后直接调用操作。ServantRequest 对象只对一次调用有效,不能用于多次调用。

参数:
self - 委托给此 delegate 的对象引用。
operation - 包含操作名称的字符串。该操作名称对应于将被编码入 GIOP 请求的操作名称。
expectedType - 表示 servant 所需类型的 Class 对象。所需类型是与 stub 接口的操作类关联的 Class 对象(例如,对应接口 Foo 的 stub 将传递对应于 FooOperation 接口的 Class 对象)。
返回:
一个 ServantObject 对象。如果该方法不希望支持此优化(例如,由于安全性、事务处理等原因),则返回 null 值。如果 servant 不是预期类型,则该方法必须返回 null。

servant_postinvoke

public void servant_postinvoke(Object self,
                               ServantObject servant)
servant_postinvoke() 由本地 stub 在已经对本地 servant 调用该操作之后调用。如果 servant_preinvoke() 返回非 null 值,则必须调用此方法,即使 servant 的方法抛出异常。因此,调用 servant_postinvoke() 应该置于 Java finally 子句中。

参数:
self - 委托给此 delegate 的对象引用。
servant - 从 servant_preinvoke() 方法返回的 ServantObject 实例。

request

public OutputStream request(Object self,
                            String operation,
                            boolean responseExpected)
request 由 stub 调用,以获取用于编组参数的 OutputStream。stub 必须提供操作名称,并指示是否希望响应(即是否为单向调用)。

参数:
self - 委托给此 delegate 的对象引用。
operation - 包含操作名称的字符串。该操作名称对应于将被编码入 GIOP 请求的操作名称。
responseExpected - 如果该操作是单向操作,则该值为 false;否则为 true。
返回:
OutputStream OutputStream,其中可以编组 request 的参数。
另请参见:
portable 包中有关未实现特性的注释

invoke

public InputStream invoke(Object self,
                          OutputStream output)
                   throws ApplicationException,
                          RemarshalException
由 stub 调用,以调用一个操作。stub 提供一个之前通过 request() 调用返回的 OutputStream。invoke 返回包含已编组应答的 InputStream。如果发生异常,则 invoke 可以抛出 ApplicationException 对象,该对象包含可从中解组用户异常状态的 InputStream。

参数:
self - 委托给此 delegate 的对象引用。
output - 包含编组变量的 OutputStream。
返回:
从中可解组应答参数的 InputStream。
抛出:
ApplicationException - 如果实现(对调用)抛出一个异常,而该异常作为其远程方法定义的一部分而定义,则抛出此异常
RemarshalException - 重新编组失败时抛出。
另请参见:
portable 包中有关未实现特性的注释

releaseReply

public void releaseReply(Object self,
                         InputStream input)
releaseReply 可以由 stub 以可选方式调用,以在解组完成时将应答流释放回 ORB。stub 传递 invoke() 或 ApplicationException.getInputStream() 返回的 InputStream。也可以将 null 值传递给 releaseReply,在这种情况下该方法是无操作 (noop)。

参数:
self - 委托给此 delegate 的对象引用。
input - invoke() 返回的 InputStream。
另请参见:
portable 包中有关未实现特性的注释

toString

public String toString(Object self)
提供重写委托 CORBA 对象的 toString() 方法的实现。

参数:
self - 委托给此 delegate 的对象引用
返回:
一个 String 对象,表示委托给此 Delegate 对象的对象引用

hashCode

public int hashCode(Object self)
提供重写委托 CORBA 对象的 hashCode() 方法的实现。

参数:
self - 委托给此 delegate 的对象引用
返回:
一个 int,表示委托给此 Delegate 对象的对象引用哈希码

equals

public boolean equals(Object self,
                      Object obj)
提供重写委托 CORBA 对象方法 equals(java.lang.Object obj) 的实现。

参数:
self - 委托给此 delegate 的对象引用
obj - 要与之比较的 Object
返回:
如果 obj 等于 self,则返回 true;否则返回 false

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策