- java.lang.Object
-
- org.omg.CORBA.portable.ObjectImpl
-
- All Implemented Interfaces:
-
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
所有存根类的公共基类; 提供org.omg.CORBA.Object方法的默认实现。 所有方法实现都转发到ObjectImpl实例中存储的Delegate对象。ObjectImpl允许便携式存根,因为Delegate可以由不同的供应商特定的ORB来实现。
-
-
构造方法摘要
构造方法 Constructor 描述 ObjectImpl()
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 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()检索对这个ObjectImpl对象委托所有调用的方法的供应商特定的Delegate对象的引用。DomainManager[]_get_domain_managers()检索此ObjectImpl对象的域管理员列表。Object_get_interface_def()检索此ObjectImpl对象的接口定义。Policy_get_policy(int policy_type)检索具有给定策略类型的Policy对象的ObjectImpl对象。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对象是否由本地仆人实现。boolean_non_existent()检查此ObjectImpl对象的服务器对象是否已被销毁。ORB_orb()返回与该对象及其委托关联的ORB的引用。void_release()释放与此ObjectImpl对象相关联的资源。void_releaseReply(InputStream input)在调用方法_invoke后解组已完成时,将给定的回复流释放回ORB。Request_request(String operation)创建一个包含可以与动态调用接口一起使用的给定方法的Request对象。OutputStream_request(String operation, boolean responseExpected)返回一个用于编组给定方法的参数的OutputStream对象。void_servant_postinvoke(ServantObject servant)在本地存根调用了先前从方法_servant_preinvoke的调用中检索到的本地仆人的操作之后,本地存根调用。ServantObject_servant_preinvoke(String operation, Class expectedType)返回对本地servant的Java引用,该引用应用于发送请求方法。void_set_delegate(Delegate delegate)将此ObjectImpl实例的代理设置为给定的Delegate对象。Object_set_policy_override(Policy[] policies, SetOverrideType set_add)将此ObjectImpl对象的覆盖类型设置为给定的实例为SetOverrideType。booleanequals(Object obj)将此ObjectImpl对象与给定的对象进行比较以获得相等性。inthashCode()返回此ObjectImpl对象的哈希码。StringtoString()返回String对象,它表示此ObjectImpl对象。
-
-
-
方法详细信息
-
_get_delegate
public Delegate _get_delegate()
检索对ObjectImpl对象委托所有调用的方法的供应商特定的Delegate对象的引用。- 结果
- 该代理包含在此ObjectImpl实例中
- 异常
-
BAD_OPERATION- 如果BAD_OPERATION尚未设置 - 另请参见:
-
_set_delegate(org.omg.CORBA.portable.Delegate)
-
_set_delegate
public void _set_delegate(Delegate delegate)
将此ObjectImpl实例的代理设置为给定的Delegate对象。 此ObjectImpl对象上的所有方法调用将转发给此委托。- 参数
-
delegate- 将为此ObjectImpl对象所有方法调用的Delegate实例进行委派; 可能由第三方ORB实施 - 另请参见:
-
_get_delegate()
-
_ids
public abstract String[] _ids()
检索包含此ObjectImpl对象支持的存储库标识符的字符串数组。 例如,对于stub,此方法返回有关stub支持的所有接口的信息。- 结果
-
该
ObjectImpl实例支持的所有存储库标识符的数组
-
_duplicate
public Object _duplicate()
返回此ObjectImpl对象的副本。- Specified by:
-
_duplicate在接口Object - 结果
-
一个
orb.omg.CORBA.Object对象,该对象是该对象的副本
-
_is_a
public boolean _is_a(String repository_id)
检查由给定的存储库标识符标识的对象是否为ObjectImpl对象。
-
_is_equivalent
public boolean _is_equivalent(Object that)
检查给定的ObjectImpl对象是否等同于此ObjectImpl对象。- Specified by:
-
_is_equivalent在接口Object - 参数
-
that- 与该ObjectImpl对象进行比较的ObjectImpl一个实例 - 结果
-
true如果给定的对象相当于这个ObjectImpl对象; 否则为false
-
_non_existent
public boolean _non_existent()
检查此ObjectImpl对象的服务器对象是否已被销毁。- Specified by:
-
_non_existent在接口Object - 结果
-
true如果ORB权威地知道服务器对象不存在;false否则
-
_hash
public int _hash(int maximum)
检索用作此ObjectImpl对象的ORB内部标识符的哈希码。
-
_create_request
public Request _create_request(Context ctx, String operation, NVList arg_list, NamedValue result)
创建一个包含给定上下文,方法,参数列表和容器的Request对象。- Specified by:
-
_create_request在接口Object - 参数
-
ctx- 请求的上下文 -
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对象用于动态调用接口。- Specified by:
-
_create_request在接口Object - 参数
-
ctx-Context对象,其中包含在与请求一起发送之前必须解析的上下文字符串 -
operation- 新的Request对象将调用的方法 -
arg_list- 方法的参数; 一个NVList其中每个参数是一个NamedValue对象 -
result- 用于返回执行请求方法的结果的NamedValue对象 -
exceptions- 给定方法抛出的异常的列表 -
contexts- 解析ctx中上下文所需的属性列表; 上下文中的字符串用作方法Context.get_values参数,该方法返回与给定属性相关联的值 - 结果
-
一个新的
Request对象,使用给定的上下文字符串进行初始化,以解析,方法,参数列表,结果容器,异常以及用于解析上下文字符串的属性名称列表 - 另请参见:
-
Request,NVList,NamedValue,ExceptionList,ContextList
-
_get_interface_def
public Object _get_interface_def()
检索ObjectImpl对象的接口定义。- Specified by:
-
_get_interface_def在接口Object - 结果
-
org.omg.CORBA.Object实例是ObjectImpl对象的接口定义
-
_orb
public ORB _orb()
返回与该对象及其委托关联的ORB的引用。 这是创建ORB对象。- 结果
-
该
ORB创建实例Delegate包含在此对象ObjectImpl对象
-
_get_policy
public Policy _get_policy(int policy_type)
检索具有给定策略类型的此ObjectImpl对象的Policy对象。- Specified by:
-
_get_policy在接口Object - 参数
-
policy_type- 指示策略类型的int - 结果
-
Policy对象是指定的策略类型,适用于此ObjectImpl对象 - 另请参见:
-
PolicyOperations.policy_type()
-
_get_domain_managers
public DomainManager[] _get_domain_managers()
获取此ObjectImpl对象的域管理器列表。- Specified by:
-
_get_domain_managers在接口Object - 结果
-
一个包含
DomainManager对象的数组,用于此实例为ObjectImpl
-
_set_policy_override
public Object _set_policy_override(Policy[] policies, SetOverrideType set_add)
将此ObjectImpl对象的覆盖类型设置为给定的实例SetOverrideType。- Specified by:
-
_set_policy_override在接口Object - 参数
-
policies- 一系列Policy对象,其中将替换当前策略或添加到当前策略的策略 -
set_add-SetOverrideType.SET_OVERRIDE,表示给定的政策将取代任何现有的政策,或SetOverrideType.ADD_OVERRIDE,表示给定的政策应该添加到任何现有的 - 结果
-
一个
Object,其中给定的策略替换或添加到其以前的策略
-
_is_local
public boolean _is_local()
检查此ObjectImpl对象是否由本地仆人实现。 如果是这样,可以使用本地调用API。- 结果
-
true如果此对象由本地服务器实现; 否则为false
-
_servant_preinvoke
public ServantObject _servant_preinvoke(String operation, Class expectedType)
返回对本地servant的Java引用,该引用应用于发送请求方法。 如果这个ObjectImpl对象是本地存根,它将在发送请求之前调用_servant_preinvoke方法,以获得要使用的ServantObject实例。如果返回
ServantObject对象,其servant字段已设置为预期类型的对象(注意:对象可能是也可能不是实际的servant实例)。 本地存根可能会将servant字段转换为预期类型,然后直接调用该操作。ServantRequest对象仅对一个调用有效,不能用于多个调用。- 参数
-
operation- 一个String其中包含要调用的方法的名称。 该名称应与GIOP请求中编码的方法名称相对应。 -
expectedType- 一个Class对象,表示返回的servant的预期类型。 该预期类型是与存根接口的操作类相关联的Class对象。 例如,接口Foo的存根将通过Class对象的FooOperations接口。 - 结果
-
(1)一个
ServantObject对象,其可能是也可能不是实际的服务实例,或(2)null如果(a)仆人不是本地的,或(b)仆人因POA的ForwardRequest而不再是本地的ServantManager - 异常
-
BAD_PARAM- 如果仆人不是预期类型
-
_servant_postinvoke
public void _servant_postinvoke(ServantObject servant)
在本地存根调用了先前从方法_servant_preinvoke的调用中检索到的本地仆人的操作之后,本地存根调用。 该_servant_postinvoke必须调用方法,如果_servant_preinvoke方法返回一个非空值,即使一个异常被由仆人调用的方法抛出。 因此,对方法_servant_postinvoke的调用应放在Javafinally子句中。- 参数
-
servant-的实例ServantObject由返回_servant_preinvoke方法
-
_request
public OutputStream _request(String operation, boolean responseExpected)
返回一个用于编组给定方法的参数的OutputStream对象。 该方法由一个存根调用,它必须指示是否有预期的响应,即该调用是否是单向的。- 参数
-
operation- 一个给出方法名称的String。 -
responseExpected- 一个布尔 -true如果请求不是一种方式,也就是预期的响应 - 结果
-
一个用于调度请求的
OutputStream对象
-
_invoke
public InputStream _invoke(OutputStream output) throws ApplicationException, RemarshalException
调用一个操作并返回一个InputStream对象来读取响应。 存根提供OutputStream对象,以前通过调用_request方法返回的对象。 在以前调用时指定为_request的参数的方法是此方法调用的方法。如果发生异常,则
_invoke方法可能会抛出一个ApplicationException对象,该对象包含用户异常状态可能被取消组合的InputStream。- 参数
-
output- 用于调度请求的OutputStream对象 - 结果
-
一个
InputStream对象,包含调用方法的编组响应 - 异常
-
ApplicationException- 如果调用符合应用程序定义的异常 -
RemarshalException- 如果调用导致重新安排错误 - 另请参见:
-
_request(java.lang.String)
-
_releaseReply
public void _releaseReply(InputStream input)
在调用方法_invoke之后解组已经完成时,将给定的回复流释放回ORB。 调用此方法对于存根是可选的。- 参数
-
input- 由_invoke方法或ApplicationException.getInputStream方法返回的InputStream对象; 可能是null,在这种情况下,这种方法什么都不做 - 另请参见:
-
_invoke(org.omg.CORBA.portable.OutputStream)
-
toString
public String toString()
返回String对象,它表示此ObjectImpl对象。
-
hashCode
public int hashCode()
返回此ObjectImpl对象的哈希码。- 重写:
-
hashCode在Object - 结果
- 该对象的哈希码
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)
将此ObjectImpl对象与给定的对象进行比较以获得相等性。- 重写:
-
equals在Object - 参数
-
obj- 用于比较此对象的对象 - 结果
-
true如果两个对象相等; 否则为false - 另请参见:
-
Object.hashCode(),HashMap
-
-