org.omg.CORBA.portable

接口
异常
java.lang.Object
  继承者 org.omg.CORBA.portable.ObjectImpl
所有已实现的接口:
Object
直接已知子类:
_BindingIteratorStub, _DynAnyFactoryStub, _DynAnyStub, _DynArrayStub, _DynEnumStub, _DynFixedStub, _DynSequenceStub, _DynStructStub, _DynUnionStub, _DynValueStub, _IDLTypeStub, _NamingContextExtStub, _NamingContextStub, _PolicyStub, _ServantActivatorStub, _ServantLocatorStub, DynamicImplementation, ObjectImpl

public abstract class ObjectImpl
     
extends Object
implements Object

所有 stub 类的公共基类;提供 org.omg.CORBA.Object 方法的默认实现。所有方法实现都被委托到 ObjectImpl 实例中存储的 Delegate 对象。ObjectImpl 允许可移植的 stub,因为 Delegate 可以由特定于不同供应商的 ORB 实现。


构造方法摘要
ObjectImpl()
           
 
方法摘要
 Request _create_request(Context ctx, String operation, NVList arg_list, NamedValue result)
          创建一个 Request 对象,使其包含给定上下文、方法、参数列表,以及用于结果的容器。
 Request _create_request(Context ctx, String operation, NVList arg_list, NamedValue result, ExceptionList exceptions, ContextList contexts)
          创建一个 Request 对象,使其包含给定的上下文、方法、参数列表、结果容器、异常,以及解析上下文字符串时将使用的属性名列表。
 Object _duplicate()
          返回此 ObjectImpl 对象的一个副本。
 Delegate _get_delegate()
          获得对特定于供应商的 Delegate 对象的引用,此 ObjectImpl 对象将对其调用的所有方法委托给该对象。
 DomainManager[] _get_domain_managers()
          获得此 ObjectImpl 对象的域管理程序所组成的列表。
 Object _get_interface_def()
          获得此 ObjectImpl 对象的接口定义。
 Policy _get_policy(int policy_type)
          获得此 ObjectImpl 对象具有给定策略类型的 Policy 对象。
 int _hash(int maximum)
          获得充当此 ObjectImpl 对象内部 ORB 标识符的哈希码。
abstract  String[] _ids()
          获得包含此 ObjectImpl 对象所支持的存储库标识符的字符串数组。
 InputStream _invoke(OutputStream output)
          调用某个操作并返回用来读取响应的 InputStream 对象。
 boolean _is_a(String repository_id)
          检查给定存储库标识符标识的对象是否是 ObjectImpl 对象。
 boolean _is_equivalent(Object that)
          检查给定的 ObjectImpl 对象是否等于此 ObjectImpl 对象。
 boolean _is_local()
          检查此 ObjectImpl 对象是否是由本地 servant 实现的。
 boolean _non_existent()
          检查此 ObjectImpl 对象的 server 对象是否已经被销毁。
 ORB _orb()
          返回对与此对象及其委托相关的 ORB 的引用。
 void _release()
          释放与此 ObjectImpl 对象关联的资源。
 void _releaseReply(InputStream input)
          调用 _invoke 方法并且解组完成后,将给定的应答流释放回 ORB。
 Request _request(String operation)
          创建一个 Request 对象,使其包含可用于动态调用接口 (Dynamic Invocation Interface) 的给定方法。
 OutputStream _request(String operation, boolean responseExpected)
          返回一个 OutputStream 对象,该对象用于编组给定方法的参数。
 void _servant_postinvoke(ServantObject servant)
          本地 stub 在发起了对本地 servant(通过对 _servant_preinvoke 方法的调用得到)的一次操作后,再调用此方法。
 ServantObject _servant_preinvoke(String operation, Class expectedType)
          返回对本地 servant 的 Java 引用,该引用应该被用来发送对指定方法的请求。
 void _set_delegate(Delegate delegate)
          将此 ObjectImpl 实例的 Delegate 设置为给定的 Delegate 对象。
 Object _set_policy_override(Policy[] policies, SetOverrideType set_add)
          将此 ObjectImpl 对象给定策略的重写类型设置为给定的 SetOverrideType 实例。
 boolean equals(Object obj)
          比较此 ObjectImpl 对象与给定对象是否相等。
 int hashCode()
          返回此 ObjectImpl 对象的哈希码。
 String toString()
          返回表示此 ObjectImpl 对象的 String 对象。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

ObjectImpl

public ObjectImpl()
方法详细信息

_get_delegate

public Delegate _get_delegate()
获得对特定于供应商的 Delegate 对象的引用,此 ObjectImpl 对象将对其调用的所有方法委托给该对象。

返回:
包含在此 ObjectImpl 实例中的 Delegate
抛出:
BAD_OPERATION - 如果尚未设置委托
另请参见:
_set_delegate(org.omg.CORBA.portable.Delegate)

_set_delegate

public void _set_delegate(Delegate delegate)
将此 ObjectImpl 实例的 Delegate 设置为给定的 Delegate 对象。对此 ObjectImpl 对象调用的所有方法将被委托到此 Delegate。

参数:
delegate - Delegate 实例,对此 ObjectImpl 对象调用的所有方法都将被委托到该实例;可以由第三方 ORB 实现
另请参见:
_get_delegate()

_ids

public abstract String[] _ids()
获得包含此 ObjectImpl 对象所支持的存储库标识符的字符串数组。例如,对于 sub,此方法返回所有关于该 stub 所支持的接口的信息。

返回:
ObjectImpl 实例支持的所有存储库标识符所组成的数组

_duplicate

public Object _duplicate()
返回此 ObjectImpl 对象的一个副本。

指定者:
接口 Object 中的 _duplicate
返回:
作为此对象副本的 orb.omg.CORBA.Object 对象。

_release

public void _release()
释放与此 ObjectImpl 对象关联的资源。

指定者:
接口 Object 中的 _release

_is_a

public boolean _is_a(String repository_id)
检查给定存储库标识符标识的对象是否是 ObjectImpl 对象。

指定者:
接口 Object 中的 _is_a
参数:
repository_id - 带有要检查的存储库标识符的 String 对象
返回:
如果给定存储库 id 标识的对象是 ObjectImpl 的实例,则返回 true;否则返回 false

_is_equivalent

public boolean _is_equivalent(Object that)
检查给定的 ObjectImpl 对象是否等于此 ObjectImpl 对象。

指定者:
接口 Object 中的 _is_equivalent
参数:
that - 要与此 ObjectImpl 对象比较的 ObjectImpl 实例
返回:
如果给定对象等于此 ObjectImpl 对象,则返回 true;否则返回 false

_non_existent

public boolean _non_existent()
检查此 ObjectImpl 对象的 server 对象是否已经被销毁。

指定者:
接口 Object 中的 _non_existent
返回:
如果 ORB 确信 server 对象不存在,则返回 true;否则返回 false

_hash

public int _hash(int maximum)
获得充当此 ObjectImpl 对象内部 ORB 标识符的哈希码。

指定者:
接口 Object 中的 _hash
参数:
maximum - 一个 int,指示 ORB 返回的哈希码值上限
返回:
表示此 ObjectImpl 对象哈希码的 int

_request

public Request _request(String operation)
创建一个 Request 对象,使其包含可用于动态调用接口 (Dynamic Invocation Interface) 的给定方法。

指定者:
接口 Object 中的 _request
参数:
operation - 将由新 Request 对象调用的方法
返回:
使用给定方法初始化的新 Request 对象

_create_request

public Request _create_request(Context ctx,
                               String operation,
                               NVList arg_list,
                               NamedValue result)
创建一个 Request 对象,使其包含给定上下文、方法、参数列表,以及用于结果的容器。

指定者:
接口 Object 中的 _create_request
参数:
ctx - 请求的 Context
operation - 新 Request 对象将调用的方法
arg_list - 方法的参数;一个 NVList,其中每个参数都是 NamedValue 对象
result - 一个 NamedValue 对象,用于返回执行请求的方法后所得的结果
返回:
一个新的 Request 对象,使用给定的上下文、方法、参数列表,以及返回值的容器初始化。
另请参见:
Request, NVList, NamedValue

_create_request

public Request _create_request(Context ctx,
                               String operation,
                               NVList arg_list,
                               NamedValue result,
                               ExceptionList exceptions,
                               ContextList contexts)
创建一个 Request 对象,使其包含给定的上下文、方法、参数列表、结果容器、异常,以及解析上下文字符串时将使用的属性名列表。此 Request 对象用于动态调用接口。

指定者:
接口 Object 中的 _create_request
参数:
ctx - 含有上下文字符串的 Context 对象,所包含的字符串必须在随同请求一起被发送前进行解析
operation - 新 Request 对象将调用的方法
arg_list - 方法的参数;一个 NVList,其中每个参数都是 NamedValue 对象
result - 一个 NamedValue 对象,用来返回执行请求的方法所得的结果
exceptions - 给定方法抛出的异常所组成的列表
contexts - 在解析 ctx 中上下文时所需要的属性列表; contexts 中的字符串被用作 Context.get_values 方法的参数,该方法返回与给定属性关联的值
返回:
一个新的 Request 对象,使用给定的要解析上下文字符串、方法、参数列表、结果容器、异常,以及解析上下文字符串时将使用的属性名列表进行初始化
另请参见:
Request, NVList, NamedValue, ExceptionList, ContextList

_get_interface_def

public Object _get_interface_def()
获得此 ObjectImpl 对象的接口定义。

指定者:
接口 Object 中的 _get_interface_def
返回:
org.omg.CORBA.Object 实例,它是此 ObjectImpl 对象的接口定义

_orb

public ORB _orb()
返回对与此对象及其委托相关的 ORB 的引用。返回值是创建委托的 ORB 对象。

返回:
ORB 实例,它创建了包含在此 ObjectImpl 对象中的 Delegate 对象

_get_policy

public Policy _get_policy(int policy_type)
获得此 ObjectImpl 对象具有给定策略类型的 Policy 对象。

指定者:
接口 Object 中的 _get_policy
参数:
policy_type - 指示策略类型的 int
返回:
应用于此 ObjectImpl 对象并具有指定策略类型的 Policy 对象
另请参见:
PolicyOperations.policy_type()

_get_domain_managers

public DomainManager[] _get_domain_managers()
获得此 ObjectImpl 对象的域管理程序所组成的列表。

指定者:
接口 Object 中的 _get_domain_managers
返回:
一个数组,包含此 ObjectImpl 实例的 DomainManager 对象

_set_policy_override

public Object _set_policy_override(Policy[] policies,
                                   SetOverrideType set_add)
将此 ObjectImpl 对象给定策略的重写类型设置为给定的 SetOverrideType 实例。

指定者:
接口 Object 中的 _set_policy_override
参数:
policies - 一个 Policy 对象数组,具有取代当前策略或被添加到当前策略的策略
set_add - 可能为 SetOverrideType.SET_OVERRIDE,指示给定策略将取代任何现存策略;也可能为 SetOverrideType.ADD_OVERRIDE,指示给定策略将被添加到任何现有策略
返回:
一个 Object,给定策略取代或被添加到该对象以前的策略

_is_local

public boolean _is_local()
检查此 ObjectImpl 对象是否是由本地 servant 实现的。如果是,则可以使用本地调用 API 的 ObjectImpl 对象。

返回:
如果此对象由本地 servant 实现,则返回 true;否则返回 false

_servant_preinvoke

public ServantObject _servant_preinvoke(String operation,
                                        Class expectedType)
返回对本地 servant 的 Java 引用,该引用应该被用来发送对指定方法的请求。如果此 ObjectImpl 对象是本地 stub,则在发送请求前它将调用 _servant_preinvoke 方法,以获取要使用的 ServantObject 实例。

如果返回 ServantObject 对象,则其 servant 字段已经被设置为所期望类型的对象(注意:该对象可以是也可以不是实际的 servant 实例)。本地 stub 可以将 servant 字段强制转换为所需类型,然后直接调用操作。ServantRequest 对象只对一次调用有效,不能用于多次调用。

参数:
operation - 一个包含要调用的方法名称的 String。此名称应该对应于将被编码入 GIOP 请求的方法名称。
expectedType - 一个 Class 对象,表示返回的 servant 的预期类型。此预期类型是与 stub 接口的操作类有关的 Class 对象。例如,接口 Foo 的 stub 将传递用于 FooOperations 接口的 Class 对象。
返回:
(1) 一个 ServantObject 对象,可能是也可能不是实际 servant 实例,或者返回 (2) null,如果 (a) servant 不是本地的或 (b)由于 POA ServantManager 发出 ForwardRequest 使 servant 不再是本地的
抛出:
BAD_PARAM - 如果 servant 不是预期类型

_servant_postinvoke

public void _servant_postinvoke(ServantObject servant)
本地 stub 在发起了对本地 servant(通过对 _servant_preinvoke 方法的调用得到)的一次操作后,再调用此方法。如果 _servant_preinvoke 方法返回非 null 值,则必须调用 _servant_postinvoke 方法,即使 servant 调用的方法抛出异常。因此,对 _servant_postinvoke 方法的调用应该置于 Java finally 子句中。

参数:
servant - _servant_preinvoke 方法返回的 ServantObject 实例

_request

public OutputStream _request(String operation,
                             boolean responseExpected)
返回一个 OutputStream 对象,该对象用于编组给定方法的参数。此方法由 stub 调用,必须指示是否希望响应,即调用是否是单向的。

参数:
operation - 给出方法名称的 String。
responseExpected - 一个 boolean 值,如果请求不是单向的(即希望获得响应),则该参数为 true
返回:
用来分派请求的 OutputStream 对象

_invoke

public InputStream _invoke(OutputStream output)
                    throws ApplicationException,
                           RemarshalException
调用某个操作并返回用来读取响应的 InputStream 对象。stub 提供以前调用 _request 方法所返回的 OutputStream 对象。以前调用时被指定为 _request 参数的方法就是此方法要调用的方法。

如果发生异常,则 _invoke 方法将抛出 ApplicationException 对象,该对象包含一个 InputStream,可从中解组用户异常状态。

参数:
output - 用来分派请求的 OutputStream 对象
返回:
一个 InputStream 对象,包含已调用方法的编组响应
抛出:
ApplicationException - 如果该调用遇到应用程序定义的异常
RemarshalException - 如果该调用导致重新编组错误
另请参见:
_request(java.lang.String)

_releaseReply

public void _releaseReply(InputStream input)
调用 _invoke 方法并且解组完成后,将给定的应答流释放回 ORB。对于 stub,调用此方法是可选的。

参数:
input - _invoke 方法或 ApplicationException.getInputStream 方法返回的 InputStream 对象;可以为 null,在这种情况下此方法不执行任何操作
另请参见:
_invoke(org.omg.CORBA.portable.OutputStream)

toString

public String toString()
返回表示此 ObjectImpl 对象的 String 对象。

覆盖:
Object 中的 toString
返回:
此对象的 String 表示形式

hashCode

public int hashCode()
返回此 ObjectImpl 对象的哈希码。

覆盖:
Object 中的 hashCode
返回:
此对象的哈希代码。
另请参见:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
比较此 ObjectImpl 对象与给定对象是否相等。

覆盖:
Object 中的 equals
参数:
obj - 要与此对象进行比较的对象
返回:
如果两个对象相等,则返回 true;否则返回 false
另请参见:
Object.hashCode(), Hashtable