org.omg.DynamicAny

接口
java.lang.Object
  继承者 org.omg.CORBA.portable.ObjectImpl
      继承者 org.omg.DynamicAny._DynValueStub
所有已实现的接口:
Serializable, Object, IDLEntity, DynAny, DynAnyOperations, DynValue, DynValueCommon, DynValueCommonOperations, DynValueOperations

public class _DynValueStub
     
extends ObjectImpl
implements DynValue

DynValue 对象支持 IDL non-boxed value 类型的操作。DynValue 接口可表示 null 和非 null 两种值类型。对于表示非 null 值类型的 DynValue,DynValue 的组件由该值类型的公共和专有成员组成,包括那些按照定义的顺序从具体基本值类型继承的成员。表示 null 值类型的 DynValue 没有组件,其当前位置为 -1。

警告:不加区别地更改专有值类型成员的内容将导致值类型实现因违反内部约束而破坏。提供对专有成员的访问是为了支持 ORB 桥接和调试之类的活动,不应使用该权限任意违反值类型的封装。


字段摘要
static Class _opsClass
           
 
构造方法摘要
_DynValueStub()
           
 
方法摘要
 String[] _ids()
          获得包含此 ObjectImpl 对象所支持的存储库标识符的字符串数组。
 void assign(DynAny dyn_any)
          使用与另一个 DynAny 对象有关联的值初始化与 DynAny 对象有关联的值。
 int component_count()
          返回 DynAny 的组件数。
 DynAny copy()
          创建一个新 DynAny 对象,其值为调用此方法的 DynAny 的深层复制。
 DynAny current_component()
          返回当前位置上的组件的 DynAny。
 TCKind current_member_kind()
          返回与当前位置的成员有关联的 TCKind。
 String current_member_name()
          返回当前位置上成员的名称。
 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 值。
 NameDynAnyPair[] get_members_as_dyn_any()
          返回一个 NameDynAnyPair 序列,这些 NameDynAnyPair 描述该值类型中每个成员的名称和值。
 NameValuePair[] get_members()
          返回一个 NameValuePair 序列,这些 NameValuePair 描述该值类型的每个成员的名称和值。
 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 is_null()
          如果 DynValueCommon 表示 null 值类型,则返回 true。
 boolean next()
          将当前位置推进到下一个组件。
 void rewind()
          等效于 seek(0)。
 boolean seek(int index)
          将当前位置设置为索引。
 void set_members_as_dyn_any(NameDynAnyPair[] value)
          根据 NameDynAnyPair 序列初始化该值类型的成员。
 void set_members(NameValuePair[] value)
          根据 NameValuePair 序列初始化该值类型的成员。
 void set_to_null()
          将 DynValueCommon 的表示形式更改为 null 值类型。
 void set_to_value()
          使用新构造的值取代 null 值类型。
 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
 

字段详细信息

_opsClass

public static final Class _opsClass
构造方法详细信息

_DynValueStub

public _DynValueStub()
方法详细信息

current_member_name

public String current_member_name()
                           throws TypeMismatch,
                                  InvalidValue
返回当前位置上成员的名称。此操作可能返回空字符串,因为所操作的值的 TypeCode 可能不包含成员名称。

指定者:
接口 DynValueOperations 中的 current_member_name
抛出:
TypeMismatch - 如果 DynValue 表示 null 值类型。
InvalidValue - 如果当前位置不指示成员

current_member_kind

public TCKind current_member_kind()
                           throws TypeMismatch,
                                  InvalidValue
返回与当前位置的成员有关联的 TCKind。

指定者:
接口 DynValueOperations 中的 current_member_kind
抛出:
TypeMismatch - 如果 DynValue 表示 null 值类型。
InvalidValue - 如果当前位置不指示成员

get_members

public NameValuePair[] get_members()
                            throws InvalidValue
返回一个 NameValuePair 序列,这些 NameValuePair 描述该值类型的每个成员的名称和值。该序列所含成员的顺序与成员的声明顺序(由 DynValue 的 TypeCode 指示)相同。当前位置不受影响。如果 DynValue 的 TypeCode 不包含成员名称,则返回序列中的成员名称将为空字符串。

指定者:
接口 DynValueOperations 中的 get_members
抛出:
InvalidValue - 如果此对象表示 null 值类型

set_members

public void set_members(NameValuePair[] value)
                 throws TypeMismatch,
                        InvalidValue
根据 NameValuePair 序列初始化该值类型的成员。如果传递的序列长度不为 0,则操作将当前位置设置为 0。如果传递空序列,则将当前位置设置为 -1。使用此方法可以将 null 值类型初始化为非 null 值类型。

根据 DynValue 的 TypeCode 的指示,成员在 NameValuePair 中必须按它们在值类型的 IDL 规范中的显示顺序显示,除非它们为空字符串。该操作不尝试根据成员名称分配成员值。

指定者:
接口 DynValueOperations 中的 set_members
抛出:
TypeMismatch - 如果所传递序列中提供的成员名称与 DynValue 的 TypeCode 中相应成员名称不匹配,并且它们都不是空字符串
InvalidValue - 如果所传递序列的元素数与 DynValue 的 TypeCode 指示的成员数不一致

get_members_as_dyn_any

public NameDynAnyPair[] get_members_as_dyn_any()
                                        throws InvalidValue
返回一个 NameDynAnyPair 序列,这些 NameDynAnyPair 描述该值类型中每个成员的名称和值。该序列所含成员的顺序与成员的声明顺序(由 DynValue 的 TypeCode 指示)相同。当前位置不受影响。如果 DynValue 的 TypeCode 不包含成员名称,则返回序列中的成员名称将为空字符串。

指定者:
接口 DynValueOperations 中的 get_members_as_dyn_any
抛出:
InvalidValue - 如果此对象表示 null 值类型

set_members_as_dyn_any

public void set_members_as_dyn_any(NameDynAnyPair[] value)
                            throws TypeMismatch,
                                   InvalidValue
根据 NameDynAnyPair 序列初始化该值类型的成员。如果传递的序列长度不为 0,则操作将当前位置设置为 0。如果传递空序列,则将当前位置设置为 -1。使用此方法可以将 null 值类型初始化为非 null 值类型。

根据 DynValue 的 TypeCode 的指示,成员在 NameDynAnyPair 中必须按它们在值类型的 IDL 规范中的显示顺序显示,除非它们为空字符串。该操作不尝试根据成员名称分配成员值。

指定者:
接口 DynValueOperations 中的 set_members_as_dyn_any
抛出:
TypeMismatch - 如果所传递序列中提供的成员名称与 DynValue 的 TypeCode 中相应成员名称不匹配,并且它们都不是空字符串
InvalidValue - 如果所传递序列的元素数与 DynValue 的 TypeCode 指示的成员数不一致

is_null

public boolean is_null()
如果 DynValueCommon 表示 null 值类型,则返回 true。

指定者:
接口 DynValueCommonOperations 中的 is_null

set_to_null

public void set_to_null()
将 DynValueCommon 的表示形式更改为 null 值类型。

指定者:
接口 DynValueCommonOperations 中的 set_to_null

set_to_value

public void set_to_value()
使用新构造的值取代 null 值类型。将其组件初始化为默认值,该值与使用 DynAnyFactory.create_dyn_any_from_type_code 所得结果相同。如果 DynValueCommon 表示非 null 值类型,则此操作无效。

指定者:
接口 DynValueCommonOperations 中的 set_to_value

type

public TypeCode type()
返回与此 DynAny 对象有关联的 TypeCode。DynAny 对象是通过分配给它的 TypeCode 值创建的。此 TypeCode 值确定通过 DynAny 对象处理的值的类型。注意,与 DynAny 对象关联的 TypeCode 在创建 DynAny 时初始化,在 DynAny 对象的生存期间不能更改。

指定者:
接口 DynAnyOperations 中的 type
返回:
与 DynAny 对象关联的 TypeCode

assign

public void assign(DynAny dyn_any)
            throws TypeMismatch
使用与另一个 DynAny 对象有关联的值初始化与 DynAny 对象有关联的值。对具有组件的值,将目标 DynAny 的当前位置设置为 0,对不具有组件的值,将该位置设置为 -1。

指定者:
接口 DynAnyOperations 中的 assign
参数:
dyn_any -
抛出:
TypeMismatch - 如果传递的 DynAny 的类型不等于目标 DynAny 的类型

from_any

public void from_any(Any value)
              throws TypeMismatch,
                     InvalidValue
使用 any 中包含的值初始化与 DynAny 对象有关联的值。对具有组件的值,将目标 DynAny 的当前位置设置为 0,对不具有组件的值,将该位置设置为 -1。

指定者:
接口 DynAnyOperations 中的 from_any
抛出:
TypeMismatch - 如果所传递 Any 的类型不等于目标 DynAny 的类型
InvalidValue - 如果所传递的 Any 不包含合法值(如 null 字符串)

to_any

public Any to_any()
从 DynAny 对象创建 any 值。将与 DynAny 对象关联的 TypeCode 的副本分配给所得 any。将与 DynAny 对象关联的值复制到 any 中。

指定者:
接口 DynAnyOperations 中的 to_any
返回:
具有相同值和 TypeCode 的新 Any 对象

equal

public boolean equal(DynAny dyn_any)
比较两个 DynAny 值是否相等。如果两个 DynAny 值的 TypeCode 相等,则它们的值相等;以此类推,所有组件 DynAny 都具有相等的值。将比较的两个 DynAny 的当前位置不影响比较结果。

指定者:
接口 DynAnyOperations 中的 equal
返回:
如果 DynAny 相等,则返回 true;否则返回 false

destroy

public void destroy()
销毁 DynAny 对象。此操作释放所有用来表示与 DynAny 对象关联的数据值的资源。为了避免资源泄漏,此操作必须在从 ORB 接口的创建操作之一获取的引用或者 DynAny.copy() 返回的引用上调用。在组件 DynAny 对象(例如,current_component 操作返回的对象)上调用 destroy 没有任何效果。销毁 DynAny 对象意味着销毁从其获取的所有 DynAny 对象。即对已销毁 DynAny 组件的引用将变得无效。调用这种引用将引发 OBJECT_NOT_EXIST。如果在销毁可从中获取组件的 DynAny 前使用 copy 操作生成了组件的复本,则可以在该 DynAny 的生存期后操作其组件。

指定者:
接口 DynAnyOperations 中的 destroy

copy

public DynAny copy()
创建一个新 DynAny 对象,其值为调用此方法的 DynAny 的深层复制。该操作是多态的,即对派生自 DynAny 的类型之一(如 DynStruct)调用该操作时,将创建派生的类型,但以 DynAny 基本类型的形式返回其引用。

指定者:
接口 DynAnyOperations 中的 copy
返回:
DynAny 对象的深层复制

insert_boolean

public void insert_boolean(boolean value)
                    throws TypeMismatch,
                           InvalidValue
将 boolean 值插入 DynAny 中。

指定者:
接口 DynAnyOperations 中的 insert_boolean
抛出:
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法

insert_octet

public void insert_octet(byte value)
                  throws TypeMismatch,
                         InvalidValue
将 byte 值插入 DynAny 中。将 IDL octet 数据类型映射为 Java byte 数据类型。

指定者:
接口 DynAnyOperations 中的 insert_octet
抛出:
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法

insert_char

public void insert_char(char value)
                 throws TypeMismatch,
                        InvalidValue
将 char 值插入 DynAny 中。

指定者:
接口 DynAnyOperations 中的 insert_char
抛出:
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法

insert_short

public void insert_short(short value)
                  throws TypeMismatch,
                         InvalidValue
将 short 值插入 DynAny 中。

指定者:
接口 DynAnyOperations 中的 insert_short
抛出:
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法

insert_ushort

public void insert_ushort(short value)
                   throws TypeMismatch,
                          InvalidValue
将 short 值插入 DynAny 中。将 IDL ushort 数据类型映射为 Java short 数据类型。

指定者:
接口 DynAnyOperations 中的

JDK 1.6 中文手册