|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object org.omg.CORBA.TypeCode
public abstract class TypeCode
用於有關特定 CORBA 資料型別的資訊的容器。
TypeCode
物件的作用包括:
NamedValue
物件用於表示參數和返回值。其中有一個元件是 Any
物件,該 Any 物件又有一個 TypeCode
物件作為其元件之一。
TypeCode
物件的表示形式是不透明的,從理論上說,TypeCode
物件由以下內容組成:
kind
欄位,它被設置為 TCKind
類別的一個實例
1ong
的 TypeCode
物件所具有的種類別為 TCKind.tk_long
,沒有附加欄位。描述 OMG IDL 型別 sequence<boolean, 10>
的 TypeCode
具有一個值為 TCKind.tk_sequence
的 kind
欄位,以及值為 boolean
和 10
(用於序列元素的型別和序列的長度)的欄位。
TypeCode
物件:
Any.insert_X
方法,其中 X 為基本 IDL 型別。此方法為型別 X 創建 TypeCode
物件,並將其分派給 Any
物件的 type
欄位。
例如,以下程式碼為 string
(最長為 30 個字元)創建 TypeCode
:
org.omg.CORBA.TypeCode tcString = orb.create_string_tc(30);
以下程式碼為由五個 string
組成的 array
創建 TypeCode
物件:
org.omg.CORBA.TypeCode tcArray = orb.create_array_tc( 5, TCKind.tk_string);
以下程式碼為名為 "Account" 的介面創建 TypeCode
物件:
org.omg.CORBA.TypeCode tcInterface = orb.create_interface_tc( "thisId", "Account");
Holder
類別中 _type
方法的返回值。這些 Holder
類別由 idltojava
編譯器產生。
TypeCode
類別中的大多數方法都是存取方法,包含在 TypeCode
物件中的資訊是特定於特定型別的。所以,必須只在所應用型別程式碼的種類別上調用這些方法。如果存取方法試圖從不適當型別程式碼種類別中存取資訊,則將拋出異常 TypeCodePackage.BadKind
。例如,如果在 union
以外的其他種類別上調用 discriminator_type
方法,則將拋出 BadKind
異常,因為只有 union
具有鑒別符 (discriminator)。以下列表展示將哪些方法應用到哪些型別程式碼種類別:
以下方法可以在所有 TypeCode
種類別上調用:
equal
kind
以下方法可以在 objref
、struct
、union
、enum
、alias
、exception
、value
、value_box
、native
和 abstract_interface
上調用:
id
name
以下方法可以在 struct
、union
、enum
和 exception
上調用:
member_count
member_name
以下方法可以在 struct
、union
和 exception
上調用:
member_type(int index)
以下方法可以在 union
上調用:
member_label
discriminator_type
default_index
以下方法可以在 string
、sequence
和 array
上調用:
length
以下方法可以在 alias
、sequence
、array
和 value_box
上調用:
content_type
與其他 CORBA 偽物件不同,TypeCode
物件可以作為一般 IDL 參數傳遞。
不推薦使用 parameter
和 param_count
方法,所以未映射。
Java IDL 擴展了 CORBA 規範,以允許能在 struct
TypeCode
上執行的所有操作同樣能在 exception
TypeCode
上執行。
建構子摘要 | |
---|---|
TypeCode()
|
方法摘要 | |
---|---|
abstract TypeCode |
concrete_base_type()
返回一個 TypeCode 物件,它描述此 TypeCode 物件所描述 value 型別的具體基本型別。 |
abstract TypeCode |
content_type()
返回表示此 TypeCode 物件所描述成員 IDL 型別的 TypeCode 物件。 |
abstract int |
default_index()
返回預設成員的索引,如果沒有預設成員,則返回 -1。 |
abstract TypeCode |
discriminator_type()
返回描述所有非預設成員標籤的 TypeCode 物件。 |
abstract boolean |
equal(TypeCode tc)
將此 TypeCode 物件與給定物件比較,測試它們是否相等。 |
abstract boolean |
equivalent(TypeCode tc)
測試給定 TypeCode 物件是否等於此 TypeCode 物件。 |
abstract short |
fixed_digits()
返回此 TypeCode 物件所描述的 fixed 型別中數字的數量。 |
abstract short |
fixed_scale()
返回此 TypeCode 物件所描述的 fixed 型別的標度。 |
abstract TypeCode |
get_compact_typecode()
剔除所有可選名稱和成員名稱欄位,但使所有別名 typecode 保留原樣。 |
abstract String |
id()
檢索全體標識此 TypeCode 物件型別的 RepositoryId。 |
abstract TCKind |
kind()
檢索此 TypeCode 物件的種類別。 |
abstract int |
length()
返回此 TypeCode 物件所描述型別中的成員數。 |
abstract int |
member_count()
檢索此 TypeCode 物件所描述型別中的成員數。 |
abstract Any |
member_label(int index)
檢索給定索引標識的 union 成員的標籤。 |
abstract String |
member_name(int index)
檢索給定索引標識的成員的簡單名稱。 |
abstract TypeCode |
member_type(int index)
檢索一個 TypeCode 物件,它描述給定索引所標識成員的型別。 |
abstract short |
member_visibility(int index)
返回一個常數,它指示位於給定索引處的成員的可見性。 |
abstract String |
name()
在 TypeCode 物件的封閉作用域內檢索標識此物件的簡單名稱。 |
abstract short |
type_modifier()
返回一個常數,它指示此 TypeCode 物件所描述的 value 型別的修飾符。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public TypeCode()
方法詳細資訊 |
---|
public abstract boolean equal(TypeCode tc)
TypeCode
物件與給定物件比較,測試它們是否相等。如果兩個 TypeCode
物件可以互換並在對它們應用 TypeCode
操作時返回相同的結果,則這兩個物件相等。
tc
- 要與之比較的 TypeCode
物件
true
;否則返回 false
public abstract boolean equivalent(TypeCode tc)
TypeCode
物件是否等於此 TypeCode
物件。
tc
- 將與此 typecode 比較的 typecode
true
;否則返回 false
public abstract TypeCode get_compact_typecode()
TypeCode
物件,已剔除可選名稱和成員名稱欄位,但別名 typecode 保持不變CORBA
套件中有關未實作特性的註釋public abstract TCKind kind()
TypeCode
物件的種類別。程式碼型別的種類別可確定哪些 TypeCode
方法可以合法地在該種類別之上進行調用。
kind
方法可以在任何 TypeCode
物件上調用。
TypeCode
物件 kind
欄位值的 TCKind
實例public abstract String id() throws BadKind
TypeCode
物件型別的 RepositoryId。
id
方法可以在 object reference、structure、union、enumeration、alias、exception、valuetype、boxed valuetype、native 和 abstract interface 型別程式碼上調用。object reference、exception、valuetype、boxed valuetype、native 和 abstract interface TypeCode
物件總是有一個 RepositoryId。從介面存儲資源庫 (Interface Repository) 或方法 ORB.create_operation_list
中獲得的 structure、union、enumeration 和 alias TypeCode
物件也總是有一個 RepositoryId。如果沒有 RepositoryId,則該方法可以返回一個空字元串。
TypeCode
物件的 RepositoryId,如果沒有 RepositoryID,則返回一個空字元串
BadKind
- 如果在不適當的 TypeCode
物件種類別上調用該方法public abstract String name() throws BadKind
TypeCode
物件的封閉作用域內檢索標識此物件的簡單名稱。因為這些名稱對於 Repository 而言是本地的,所以從 TypeCode
物件返回的名稱可能與任何特定 Repository 中的型別名稱不比對,甚至可能是一個空字元串。
name
方法可以在 object reference、structure、union、enumeration、alias、exception、valuetype、boxed valuetype、native 和 abstract interface TypeCode
物件上調用。
TypeCode
物件的名稱或一個空字元串
BadKind
- 如果在不適當的 TypeCode
物件種類別上調用該方法public abstract int member_count() throws BadKind
TypeCode
物件所描述型別中的成員數。
member_count
方法可以在 structure、union 和 enumeration TypeCode
物件上調用。Java IDL 擴展了 CORBA 規範,允許此方法在異常上進行操作。
TypeCode
物件所描述型別的成員數
BadKind
- 如果在不適當的 TypeCode
物件種類別上調用該方法public abstract String member_name(int index) throws BadKind, Bounds
TypeCode
物件返回的名稱可能與任何特定 Repository 中的成員名稱不比對,甚至可能是一個空字元串。
可以在 structure、union 和 enumeration TypeCode
物件上調用 member_name
方法。Java IDL 擴展了 CORBA 規範,允許此方法在異常上進行操作。
index
- 請求名稱的成員的索引
Bounds
- 如果索引大於等於組成該型別的成員數
BadKind
- 如果在不適當的 TypeCode
物件種類別上調用該方法public abstract TypeCode member_type(int index) throws BadKind, Bounds
TypeCode
物件,它描述給定索引所標識成員的型別。
member_type
方法可以在 structure 和 union TypeCode
物件上調用。Java IDL 擴展了 CORBA 規範,允許此方法在異常上進行操作。
index
- 開始請求型別資訊的成員的索引
TypeCode
物件
Bounds
- 如果索引大於等於組成該型別的成員數
BadKind
- 如果在不適當的 TypeCode
物件種類別上調用該方法public abstract Any member_label(int index) throws BadKind, Bounds
member_label
方法可以在 union TypeCode
物件上調用。
index
- 請求標籤的 union 成員的索引
Any
物件;對於預設成員,返回 0 八位組
Bounds
- 如果索引大於等於組成 union 的成員數
BadKind
- 如果在非 union TypeCode
物件上調用該方法public abstract TypeCode discriminator_type() throws BadKind
TypeCode
物件。discriminator_type
方法只能在 union TypeCode
物件上調用。
TypeCode
物件
BadKind
- 如果在非 union TypeCode
物件上調用該方法public abstract int default_index() throws BadKind
default_index
方法只能在 union TypeCode
物件上調用。
BadKind
- 如果在非 union TypeCode
物件上調用該方法public abstract int length() throws BadKind
TypeCode
物件所描述型別中的成員數。對於 string 和 sequence,該方法返回一個範圍,0 指示無界的 string 或 sequence。對於 array,此方法返回其成員數。
length
方法可以在 string、sequence 和 array TypeCode
物件上調用。
BadKind
- 如果在不適當的 TypeCode
物件種類別上調用該方法public abstract TypeCode content_type() throws BadKind
TypeCode
物件所描述成員 IDL 型別的 TypeCode
物件。對於 sequence 和 array,該方法返回元素型別。對於 alias,該方法返回原始型別。注意,多維 array 用巢狀 TypeCode
物件表示,每個維度一個物件。對於 boxed valuetype,該方法返回 boxed 型別。
content_type
方法可以在 sequence、array、alias 和 boxed valuetype TypeCode
物件上調用。
TypeCode
物件,它對於 sequence 和 array 表示元素型別;對於 alias 表示原始型別;對於 boxed valuetype 表示 boxed 型別。
BadKind
- 如果在不適當的 TypeCode
物件種類別上調用該方法public abstract short fixed_digits() throws BadKind
TypeCode
物件所描述的 fixed 型別中數字的數量。例如,數字 3000.275d 的 typecode 是 fixed<7,3>
,其中 7 是精確度,3 是標度。
BadKind
- 如果在不適當的 TypeCode
物件種類別上調用該方法public abstract short fixed_scale() throws BadKind
TypeCode
物件所描述的 fixed 型別的標度。正數指示小數點右邊的數字個數。例如,數字 3000d 的 typecode 是 fixed<4,0>
,其中第一個數字是精度,第二個數字是標度。出現負數也是有可能的,在小數點的左邊添加 0 即可。在這種情況下,fixed<1,-3>
是數字 3000d 的 typecode。
TypeCode
物件所描述 fixed 型別的標度
BadKind
- 如果在不適當的 TypeCode
物件種類別上調用該方法public abstract short member_visibility(int index) throws BadKind, Bounds
TypeCode
物件上調用。
index
- 指示 value 中索引的 int
值
PRIVATE_MEMBER.value
或 PUBLIC_MEMBER.value
BadKind
- 如果在非 value 型別 TypeCode
物件上調用此方法
Bounds
- 如果給定索引超出範圍CORBA
套件中有關未實作特性的註釋public abstract short type_modifier() throws BadKind
TypeCode
物件所描述的 value 型別的修飾符。返回的常數必須是以下常數之一:VM_NONE.value
、VM_ABSTRACT.value
、VM_CUSTOM.value
或 VM_TRUNCATABLE.value
。
TypeCode
物件所描述 value 型別的常數
BadKind
- 如果在非 value 型別 TypeCode
物件上調用此方法CORBA
套件中有關未實作特性的註釋public abstract TypeCode concrete_base_type() throws BadKind
TypeCode
物件,它描述此 TypeCode
物件所描述 value 型別的具體基本型別。如果沒有具體基本型別,則返回 null。
TypeCode
物件,它描述此 TypeCode
物件所描述 value 型別的具體基本型別
BadKind
- 如果在非 boxed value 型別 TypeCode
物件上調用此方法CORBA
套件中有關未實作特性的註釋
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。