JavaTM 2 Platform
Standard Ed. 6

org.omg.DynamicAny
介面 DynUnionOperations

所有父級介面:
DynAnyOperations
所有已知子介面:
DynUnion
所有已知實作類別:
_DynUnionStub

public interface DynUnionOperations
extends DynAnyOperations

DynUnion 物件支持對 IDL 聯合資料 (union) 的操作。聯合資料只能有兩個有效的當前位置:

聯合資料的 component_count 值依賴於當前鑒別符:其鑒別符指示一個指定成員的聯合資料的 component_count 值為 2,其他情況為 1。


方法摘要
 TCKind discriminator_kind()
          返回鑒別符 TypeCode 的 TCKind 值。
 DynAny get_discriminator()
          返回當前鑒別符值。
 boolean has_no_active_member()
          如果聯合資料沒有活動成員,即這些聯合資料值僅由其鑒別符組成(因為鑒別符的值不作為顯式 case 標籤列出),則返回 true。
 TCKind member_kind()
          返回當前活動成員 TypeCode 的 TCKind 值。
 String member_name()
          返回當前活動成員的名稱。
 DynAny member()
          返回當前活動成員。
 void set_discriminator(DynAny d)
          將 DynUnion 的鑒別符值設置為指定值。
 void set_to_default_member()
          將鑒別符設置為聯合資料的預設 case 的值。
 void set_to_no_active_member()
          將鑒別符設置為與任何聯合資料 case 標籤都不相應的值。
 
從介面 org.omg.DynamicAny.DynAnyOperations 繼承的方法
assign, component_count, copy, current_component, destroy, equal, from_any, get_any, get_boolean, get_char, get_double, get_dyn_any, get_float, get_long, get_longlong, get_octet, get_reference, get_short, get_string, get_typecode, get_ulong, get_ulonglong, get_ushort, get_val, get_wchar, get_wstring, insert_any, insert_boolean, insert_char, insert_double, insert_dyn_any, insert_float, insert_long, insert_longlong, insert_octet, insert_reference, insert_short, insert_string, insert_typecode, insert_ulong, insert_ulonglong, insert_ushort, insert_val, insert_wchar, insert_wstring, next, rewind, seek, to_any, type
 

方法詳細資訊

get_discriminator

DynAny get_discriminator()
返回當前鑒別符值。


set_discriminator

void set_discriminator(DynAny d)
                       throws TypeMismatch
將 DynUnion 的鑒別符值設置為指定值。將鑒別符設置為與當前活動聯合資料成員一致的值對當前活動成員沒有影響。將鑒別符設置為與當前活動成員不一致的值將停用該成員,並將與新鑒別符值一致的成員(如果存在與該值對應的成員)初始化為其預設值,從而啟動該成員。如果鑒別符值指示一個不存在的聯合資料成員,則設置聯合資料鑒別符會將當前位置設置為 0(在此情況下,has_no_active_member 返回 true)。否則,如果鑒別符值指示指定的聯合資料成員,則將當前位置設置為 1(在此情況下,has_no_active_member 返回 false,component_count 返回 2)。

拋出:
TypeMismatch - 如果參數的 TypeCode 不等於聯合資料鑒別符的 TypeCode

set_to_default_member

void set_to_default_member()
                           throws TypeMismatch
將鑒別符設置為聯合資料的預設 case 的值。它將當前位置設置為 0,並導致 component_count 返回 2。

拋出:
TypeMismatch - 如果聯合資料沒有顯式的預設 case

set_to_no_active_member

void set_to_no_active_member()
                             throws TypeMismatch
將鑒別符設置為與任何聯合資料 case 標籤都不相應的值。它將當前位置設置為 0,並導致 component_count 返回 1。

拋出:
TypeMismatch - 如果聯合資料具有顯式的預設 case,或者其顯式 case 標籤使用了整個鑒別符值範圍

has_no_active_member

boolean has_no_active_member()
如果聯合資料沒有活動成員,即這些聯合資料值僅由其鑒別符組成(因為鑒別符的值不作為顯式 case 標籤列出),則返回 true。對具有預設 case 的聯合資料調用此操作將返回 false。對顯式 case 標籤使用了整個鑒別符值範圍的聯合資料調用此操作將返回 false。


discriminator_kind

TCKind discriminator_kind()
返回鑒別符 TypeCode 的 TCKind 值。


member_kind

TCKind member_kind()
                   throws InvalidValue
返回當前活動成員 TypeCode 的 TCKind 值。

拋出:
InvalidValue - 如果聯合資料不具有當前活動成員

member

DynAny member()
              throws InvalidValue
返回當前活動成員。注意,當且僅當當前活動成員沒有更改時返回的參考才仍然有效。使用超出當前活動成員生存時間的返回參考將引發 OBJECT_NOT_EXIST。

拋出:
InvalidValue - 如果聯合資料沒有活動成員

member_name

String member_name()
                   throws InvalidValue
返回當前活動成員的名稱。如果聯合資料 TypeCode 不包含當前活動成員的成員名稱,則操作將返回空字元串。

拋出:
InvalidValue - 如果聯合資料沒有活動成員

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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