-
- All Superinterfaces:
-
DynAnyOperations
- All Known Subinterfaces:
-
DynUnion
- 所有已知实现类:
-
_DynUnionStub
public interface DynUnionOperations extends DynAnyOperations
DynUnion对象支持IDL联盟的操纵。 联盟只能有两个有效的当前职位:- 零,表示鉴别器
- 一个表示活动成员
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 TCKind
discriminator_kind()
返回识别器TypeCode的TCKind值。DynAny
get_discriminator()
返回当前的鉴别器值。boolean
has_no_active_member()
如果联合没有活动成员,则返回true,即,联合值仅由其标识符组成,因为鉴别符具有未列为明确案例标签的值。DynAny
member()
返回当前活动的成员。TCKind
member_kind()
返回当前活动成员TypeCode的TCKind值。String
member_name()
返回当前活动成员的名称。void
set_discriminator(DynAny d)
将DynUnion的鉴别器设置为指定的值。void
set_to_default_member()
将标识符设置为与联合的默认大小写的值一致的值。void
set_to_no_active_member()
将鉴别器设置为不与任何联合案例标签对应的值。-
Methods inherited from interface 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的鉴别器设置为指定的值。 将鉴别器设置为与当前活动的联合成员一致的值不会影响当前活动的成员。 将标识符设置为与当前活动成员不一致的值会将该成员初始化为其默认值,将激活该成员并激活与新标识符值一致的成员(如果该值为该成员)。 如果鉴别器值指示不存在的联合成员(在这种情况下为has_no_active_member返回true),则设置联合的标识符将当前位置设置为0。 否则,如果鉴别器值指示一个命名的联合成员,则当前位置被设置为1(在这种情况下,has_no_active_member返回false并且component_count返回2)。- 异常
-
TypeMismatch
- 如果参数的TypeCode不等同于联盟鉴别器的TypeCode
-
set_to_default_member
void set_to_default_member() throws TypeMismatch
将标识符设置为与联合的默认大小写的值一致的值。 它将当前位置设置为零,并导致component_count返回2。- 异常
-
TypeMismatch
- 如果联合没有明确的默认情况
-
set_to_no_active_member
void set_to_no_active_member() throws TypeMismatch
将鉴别器设置为不与任何联合案例标签对应的值。 它将当前位置设置为零,并导致component_count返回1。- 异常
-
TypeMismatch
- 如果联合有明确的默认情况,或者如果它使用明确的案例标签的全部范围的鉴别器值
-
has_no_active_member
boolean has_no_active_member()
如果联合没有活动成员,则返回true,即,联合值仅由其标识符组成,因为鉴别符具有未列为明确案例标签的值。 在具有默认情况的联合中调用此操作将返回false。 在使用整个范围的标识符值的显式案例标签的联合上调用此操作将返回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
- 如果联合没有活动成员
-
-