JavaTM 2 Platform
Standard Ed. 6

org.omg.CORBA.portable
類別 ObjectImpl

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

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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