|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object org.omg.CORBA.portable.ObjectImpl org.omg.DynamicAny._DynAnyStub
public class _DynAnyStub
通過 DynAny 物件可以動態解釋(遍歷)和建構 Any 值。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 異常。
欄位摘要 | |
---|---|
static Class |
_opsClass
|
建構子摘要 | |
---|---|
_DynAnyStub()
|
方法摘要 | |
---|---|
String[] |
_ids()
獲得包含此 ObjectImpl 物件所支持的存儲資源庫標識符的字元串陣列。 |
void |
assign(DynAny dyn_any)
使用與另一個 DynAny 物件關聯的值初始化與 DynAny 物件關聯的值。 |
int |
component_count()
返回 DynAny 的元件數。 |
DynAny |
copy()
創建一個新 DynAny 物件,其值為調用此方法的 DynAny 的深層複製。 |
DynAny |
current_component()
返回當前位置上的元件的 DynAny。 |
void |
destroy()
銷毀 DynAny 物件。 |
boolean |
equal(DynAny dyn_any)
比較兩個 DynAny 值是否相等。 |
void |
from_any(Any value)
使用 any 中包含的值初始化與 DynAny 物件關聯的值。 |
Any |
get_any()
提取由此 DynAny 表示的 Any 中所包含的 Any 值。 |
boolean |
get_boolean()
從此 DynAny 析取 boolean 值。 |
char |
get_char()
從此 DynAny 析取 char 值。 |
double |
get_double()
從此 DynAny 析取 double 值。 |
DynAny |
get_dyn_any()
提取由此 DynAny 表示的 Any 中所包含的 Any 值,並將其包裹在新 DynAny 中返回。 |
float |
get_float()
從此 DynAny 中提取 float 值。 |
int |
get_long()
從此 DynAny 析取 integer 值。 |
long |
get_longlong()
從此 DynAny 中提取 long 值。 |
byte |
get_octet()
從此 DynAny 中提取 byte 值。 |
Object |
get_reference()
從此 DynAny 中提取對 CORBA 物件的參考。 |
short |
get_short()
從此 DynAny 中提取 short 值。 |
String |
get_string()
從此 DynAny 中提取 string 值。 |
TypeCode |
get_typecode()
從此 DynAny 中提取 TypeCode 物件。 |
int |
get_ulong()
從此 DynAny 中提取 integer 值。 |
long |
get_ulonglong()
從此 DynAny 中提取 long 值。 |
short |
get_ushort()
從此 DynAny 中提取 short 值。 |
Serializable |
get_val()
從此 DynAny 中提取 Serializable 物件。 |
char |
get_wchar()
從此 DynAny 中提取 long 值。 |
String |
get_wstring()
從此 DynAny 中提取 string 值。 |
void |
insert_any(Any value)
將 Any 值插入此 DynAny 表示的 Any 中。 |
void |
insert_boolean(boolean value)
將 boolean 值插入 DynAny 中。 |
void |
insert_char(char value)
將 char 值插入 DynAny 中。 |
void |
insert_double(double value)
將 double 值插入 DynAny 中。 |
void |
insert_dyn_any(DynAny value)
將參數 DynAny 中包含的 Any 值插入此 DynAny 表示的 Any 中。 |
void |
insert_float(float value)
將 float 值插入 DynAny 中。 |
void |
insert_long(int value)
將 integer 值插入 DynAny 中。 |
void |
insert_longlong(long value)
將 long 值插入 DynAny 中。 |
void |
insert_octet(byte value)
將 byte 值插入 DynAny 中。 |
void |
insert_reference(Object value)
將對 CORBA 物件的參考插入到 DynAny 中。 |
void |
insert_short(short value)
將 short 值插入 DynAny 中。 |
void |
insert_string(String value)
將 string 值插入 DynAny 中。 |
void |
insert_typecode(TypeCode value)
將 TypeCode 物件插入 DynAny 中。 |
void |
insert_ulong(int value)
將 integer 值插入 DynAny 中。 |
void |
insert_ulonglong(long value)
將 long 值插入 DynAny 中。 |
void |
insert_ushort(short value)
將 short 值插入 DynAny 中。 |
void |
insert_val(Serializable value)
將對 Serializable 物件的參考插入此 DynAny 中。 |
void |
insert_wchar(char value)
將 char 值插入 DynAny 中。 |
void |
insert_wstring(String value)
將 string 值插入 DynAny 中。 |
boolean |
next()
將當前位置推進到下一個元件。 |
void |
rewind()
等效於 seek(0)。 |
boolean |
seek(int index)
將當前位置設置為索引。 |
Any |
to_any()
從 DynAny 物件創建 any 值。 |
TypeCode |
type()
返回與此 DynAny 物件有關聯的 TypeCode。 |
從類別 org.omg.CORBA.portable.ObjectImpl 繼承的方法 |
---|
_create_request, _create_request, _duplicate, _get_delegate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _invoke, _is_a, _is_equivalent, _is_local, _non_existent, _orb, _release, _releaseReply, _request, _request, _servant_postinvoke, _servant_preinvoke, _set_delegate, _set_policy_override, equals, hashCode, toString |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
從介面 org.omg.CORBA.Object 繼承的方法 |
---|
_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _is_a, _is_equivalent, _non_existent, _release, _request, _set_policy_override |
欄位詳細資訊 |
---|
public static final Class _opsClass
建構子詳細資訊 |
---|
public _DynAnyStub()
方法詳細資訊 |
---|
public TypeCode type()
DynAnyOperations
中的 type
public void assign(DynAny dyn_any) throws TypeMismatch
DynAnyOperations
中的 assign
dyn_any
-
TypeMismatch
- 如果傳遞的 DynAny 的型別不等於目標 DynAny 的型別public void from_any(Any value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 from_any
TypeMismatch
- 如果所傳遞 Any 的型別不等於目標 DynAny 的型別
InvalidValue
- 如果所傳遞的 Any 不包含合法值(如 null 字元串)public Any to_any()
DynAnyOperations
中的 to_any
public boolean equal(DynAny dyn_any)
DynAnyOperations
中的 equal
public void destroy()
DynAnyOperations
中的 destroy
public DynAny copy()
DynAnyOperations
中的 copy
public void insert_boolean(boolean value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_boolean
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_octet(byte value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_octet
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_char(char value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_char
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_short(short value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_short
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_ushort(short value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_ushort
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_long(int value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_long
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_ulong(int value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_ulong
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_float(float value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_float
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_double(double value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_double
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_string(String value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_string
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
InvalidValue
- 如果插入的字元串的長度超出有界字元串的界限
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_reference(Object value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_reference
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_typecode(TypeCode value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_typecode
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_longlong(long value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_longlong
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_ulonglong(long value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_ulonglong
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_wchar(char value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_wchar
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_wstring(String value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_wstring
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
InvalidValue
- 如果插入的字元串的長度超出有界字元串的界限
TypeMismatch
public void insert_any(Any value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_any
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_dyn_any(DynAny value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_dyn_any
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public void insert_val(Serializable value) throws TypeMismatch, InvalidValue
DynAnyOperations
中的 insert_val
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法public boolean get_boolean() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_boolean
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public byte get_octet() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_octet
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public char get_char() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_char
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public short get_short() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_short
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public short get_ushort() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_ushort
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public int get_long() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_long
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public int get_ulong() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_ulong
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public float get_float() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_float
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public double get_double() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_double
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public String get_string() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_string
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public Object get_reference() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_reference
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public TypeCode get_typecode() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_typecode
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public long get_longlong() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_longlong
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public long get_ulonglong() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_ulonglong
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public char get_wchar() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_wchar
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public String get_wstring() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_wstring
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
public Any get_any() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_any
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public DynAny get_dyn_any() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_dyn_any
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public Serializable get_val() throws TypeMismatch, InvalidValue
DynAnyOperations
中的 get_val
TypeMismatch
- 如果在 DynAny 中存取的元件型別不等於所請求的型別。
TypeMismatch
- 如果在其當前元件本身也有元件的 DynAny 上調用此方法
InvalidValue
- 如果此 DynAny 具有元件,但當前位置為 -1public boolean seek(int index)
DynAnyOperations
中的 seek
public void rewind()
DynAnyOperations
中的 rewind
public boolean next()
DynAnyOperations
中的 next
public int component_count()
DynAnyOperations
中的 component_count
public DynAny current_component() throws TypeMismatch
DynAnyOperations
中的 current_component
TypeMismatch
- 如果在不能有元件的 DynAny(如 DynEnum 或空異常)上調用此方法public String[] _ids()
ObjectImpl
複製的描述ObjectImpl
物件所支持的存儲資源庫標識符的字元串陣列。例如,對於 sub,此方法返回所有關於該 stub 所支持的介面的資訊。
ObjectImpl
中的 _ids
ObjectImpl
實例支持的所有存儲資源庫標識符所組成的陣列
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。