|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
any
有關聯的資料值,並提取資料值的基本成分。
請參見:
描述
介面摘要 | |
---|---|
DynAny | 通過 DynAny 物件可以動態解釋(遍歷)和建構 Any 值。 |
DynAnyFactory | DynAny 物件可以通過調用 DynAnyFactory 物件上的操作來創建。 |
DynAnyFactoryOperations | DynAny 物件可以通過調用 DynAnyFactory 物件上的操作來創建。 |
DynAnyOperations | 通過 DynAny 物件可以動態解釋(遍歷)和建構 Any 值。 |
DynArray | DynArray 物件支持對 IDL 陣列的操作。 |
DynArrayOperations | DynArray 物件支持對 IDL 陣列的操作。 |
DynEnum | DynEnum 物件支持對 IDL 列舉值的操作。 |
DynEnumOperations | DynEnum 物件支持對 IDL enumerated value 的操作。 |
DynFixed | DynFixed 物件支持對 IDL 定值 (fixed value) 的操作。 |
DynFixedOperations | DynFixed 物件支持對 IDL 定值的操作。 |
DynSequence | DynSequence 物件支持對 IDL 序列的操作。 |
DynSequenceOperations | DynSequence 物件支持對 IDL 序列的操作。 |
DynStruct | DynStruct 物件支持對 IDL 結構資料 (struct) 和異常值的操作。 |
DynStructOperations | DynStruct 物件支持對 IDL 結構資料 (struct) 和異常 (exception) 值的操作。 |
DynUnion | DynUnion 物件支持對 IDL 聯合 (union) 的操作。 |
DynUnionOperations | DynUnion 物件支持對 IDL 聯合資料 (union) 的操作。 |
DynValue | DynValue 物件支持對 IDL 非裝箱 (non-boxed) 值型別的操作。 |
DynValueBox | DynValueBox 物件支持對 IDL 裝箱 (boxed) 型別的操作。 |
DynValueBoxOperations | DynValueBox 物件支持對 IDL 裝箱 (boxed) 型別的操作。 |
DynValueCommon | DynValueCommon 提供 DynValue 和 DynValueBox 介面都支持的操作。 |
DynValueCommonOperations | DynValueCommon 提供 DynValue 和 DynValueBox 介面都支持的操作。 |
DynValueOperations | DynValue 物件支持對 IDL 非裝箱 (boxed) 值型別的支持。 |
類別摘要 | |
---|---|
_DynAnyFactoryStub | DynAny 物件可以通過調用 DynAnyFactory 物件上的操作來創建。 |
_DynAnyStub | 通過 DynAny 物件可以動態解釋(遍歷)和建構 Any 值。 |
_DynArrayStub | DynArray 物件支持對 IDL 陣列 (array) 的操作。 |
_DynEnumStub | DynEnum 物件支持對 IDL 列舉 (enumerated) 值的操作。 |
_DynFixedStub | DynEnum 物件支持對 IDL 定值 (fixed value) 的操作。 |
_DynSequenceStub | DynSequence 物件支持對 IDL 序列 (sequence) 的操作。 |
_DynStructStub | DynStruct 物件支持對 IDL 結構資料 (struct) 和異常值的操作。 |
_DynUnionStub | DynUnion 物件支持對 IDL 聯合資料 (union) 的操作。 |
_DynValueStub | DynValue 物件支持 IDL non-boxed value 型別的操作。 |
AnySeqHelper | org/omg/DynamicAny/AnySeqHelper.java。 |
DynAnyFactoryHelper | DynAny 物件可以通過調用 DynAnyFactory 物件上的操作來創建。 |
DynAnyHelper | 通過 DynAny 物件可以動態解釋(遍歷)和建構 Any 值。 |
DynAnySeqHelper | org/omg/DynamicAny/DynAnySeqHelper.java。 |
DynArrayHelper | DynArray 物件支持對 IDL 陣列的操作。 |
DynEnumHelper | DynEnum 物件支持對 IDL 列舉值的操作。 |
DynFixedHelper | DynFixed 物件支持對 IDL 定值 (fixed value) 的操作。 |
DynSequenceHelper | DynSequence 物件支持對 IDL 序列的操作。 |
DynStructHelper | DynStruct 物件支持對 IDL 結構資料 (struct) 和異常值的操作。 |
DynUnionHelper | DynUnion 物件支持對 IDL 聯合資料 (union) 的操作。 |
DynValueHelper | DynValue 物件支持對 IDL 非裝箱 (non-boxed) 值型別的操作。 |
FieldNameHelper | org/omg/DynamicAny/FieldNameHelper.java。 |
NameDynAnyPair | org/omg/DynamicAny/NameDynAnyPair.java。 |
NameDynAnyPairHelper | org/omg/DynamicAny/NameDynAnyPairHelper.java。 |
NameDynAnyPairSeqHelper | org/omg/DynamicAny/NameDynAnyPairSeqHelper.java。 |
NameValuePair | org/omg/DynamicAny/NameValuePair.java。 |
NameValuePairHelper | org/omg/DynamicAny/NameValuePairHelper.java。 |
NameValuePairSeqHelper | org/omg/DynamicAny/NameValuePairSeqHelper.java。 |
提供一些類別和介面使得在運行時能夠遍歷與 any
有關聯的資料值,並提取資料值的基本成分。
可以將 any
傳遞給不具有任何有關 any
型別的靜態資訊的程序(由 IDL 編譯器產生的該型別程式碼沒有經過物件實作的編譯)。結果,接收 any
的物件不具有使用它的可移植方法。
DynAny
允許在運行時遍歷與 any
有關聯的資料值,並提取資料值的基本成分。它在編寫功能強大的常規伺服器程序(支持過濾的橋樑、事件通道)時非常有用。類似地,此設施允許在運行時建構 any
,無需具備其型別的靜態知識。它在編寫常規客戶端程序(橋樑、瀏覽器、使用者介面工具)時非常有用。
Any
值可以通過 DynAny 物件進行動態解釋(遍歷)和建構。DynAny 物件與對應於插入 Any 的值的副本的資料值相關聯。DynAny 物件可視為 DynAny 元件的有序集合。對於表示基本型別(如 long
)或不具有元件的型別(如空異常)的 DynAny,元件的有序集合為空。
每個 DynAny 物件在其 DynAny 元件集合中都有一個當前位置。當前位置由 0 到 n-1(其中 n 為元件數)的索引值標識。特殊索引值 -1 指示不指向任何位置的當前位置。對於不能有當前位置的值(如空異常),索引值始終為 -1。如果使用具有元件的值初始化 DynAny
,則索引被初始化為 0。在創建未初始化的 DynAny
(即不具有值但具有允許元件的 TypeCode
的 DynAny
)之後,當前位置取決於由 DynAny
表示的值的型別。(將當前位置設置為 0 還是 -1 取決於新 DynAny
是否獲取了其元件的預設值。)
迭代操作 rewind
、seek
和 next
可用於更改當前位置,current_component
操作返回當前位置的元件。component_count
操作返回 DynAny
的元件數。總體上說,這些操作都能在 DynAny
的元件上進行迭代,從而能夠(例如)檢查其內容(遞歸式)。
已建構的 DynAny
物件是與建構型別關聯的 DynAny
物件。還有一種從 DynAny
介面繼承而來的介面,它與 IDL 中的每種建構型別(fixed、enum、struct、sequence、union、array、exception 和 value 型別)相關聯。已建構的 DynAny
物件導出支持創建新 DynAny
物件的操作,每個物件都與已建構資料值的元件相關聯。例如,DynStruct
與 struct
值相關聯。這意味著 DynStruct
可視為擁有一個有序的元件集合,每個結構成員一個。DynStruct
物件導出支持創建新 DynAny
物件的操作,其中每個物件都與 struct
的成員有關聯。
如果 DynAny
物件是從另一個(已建構)DynAny
物件獲取的(如表示從 DynStruct
創建的結構成員的 DynAny
),則成員 DynAny
在邏輯上包含在 DynStruct
中。調用 insert
或 get
操作不更改當前位置。銷毀頂級 DynAny
物件(不是作為另一個 DynAny
的元件獲取的)將同時銷毀從其獲取的所有 DynAny
物件元件。銷毀非頂級 DynAny
物件的操作沒有任何效果。在已銷毀的頂級 DynAny
或其任何子代上調用操作將引發 OBJECT_NOT_EXIST。如果開發人員要銷毀 DynAny
物件,但還需要操作與其關聯的資料值的某個元件,則應該首先為該元件創建一個 DynAny
,然後產生所創建的 DynAny
物件的副本。
為了支持高效實作,根據分派的記憶體空間和存取速度定義 DynAny
物件的行為。DynAny
物件旨在用於遍歷從 any
提取的值,或用於在運行時建構 any
的值。不建議將其用於其他目的。
Insert
和 get
操作是處理基本 DynAny
物件所必需的,但是也可以使用它們來處理已建構的 DynAny
物件。將基本資料型別值插入已建構的 DynAny
物件意味著初始化與 DynAny
物件關聯的已建構資料值的當前元件。例如,對 DynStruct
調用 insert_boolean
意味著在關聯的 struct
資料值的當前位置插入 boolean
資料值。如果某個型別的 TypeCode
等效於 DynAny
中包含的 TypeCode
,或者等效於處於當前位置的 DynAny
的 TypeCode
(如果 DynAny
有元件),則該型別與插入值或提取值一致。
基本操作包括:
DynAny
和 DynAnyFactory
物件對於創建和使用它們的進程而言是本地的。這意味著,不能將對 DynAny
和 DynAnyFactory
物件的參考導出到其他進程,也不能通過 ORB.object_to_string()
使其具體化。如果進行這樣的嘗試,則該違反規則的操作將引發 MARSHAL 系統異常。由於它們的介面是在 IDL 中指定的,所以 DynAny
物件導出在標準 org.omg.CORBA.Object
介面中定義的操作。但是,任何嘗試調用通過 Object
介面導出的操作都會引發標準 NO_IMPLEMENT 異常。嘗試使用帶有 DII 的 DynAny
物件將引發 NO_IMPLEMENT 異常。
有關 Java[tm] Platform, Standard Edition 6 ORB 遵守的官方規範的受支持部分的明確列表,請參閱 Official Specifications for CORBA support in Java[tm] SE 6。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個軟體套件 下一個軟體套件 | 框架 無框架 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。