JavaTM Platform
Standard Ed. 6

org.omg.DynamicAny
类 _DynAnyStub

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

public class _DynAnyStub
     
extends ObjectImpl
implements DynAny

通过 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
 

字段详细信息

_opsClass

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

_DynAnyStub

public _DynAnyStub()
方法详细信息

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 中的 insert_ushort
抛出:
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法

insert_long

public void insert_long(int value)
                 throws TypeMismatch,
                        InvalidValue
将 integer 值插入 DynAny 中。将 IDL long 数据类型映射为 Java int 数据类型。

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

insert_ulong

public void insert_ulong(int value)
                  throws TypeMismatch,
                         InvalidValue
将 integer 值插入 DynAny 中。将 IDL ulong 数据类型映射为 Java int 数据类型。

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

insert_float

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

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

insert_double

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

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

insert_string

public void insert_string(String value)
                   throws TypeMismatch,
                          InvalidValue
将 string 值插入 DynAny 中。有界的和无界的字符串都使用此方法插入。

指定者:
接口 DynAnyOperations 中的 insert_string
抛出:
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1
InvalidValue - 如果插入的字符串的长度超出有界字符串的界限
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法

insert_reference

public void insert_reference(Object value)
                      throws TypeMismatch,
                             InvalidValue
将对 CORBA 对象的引用插入到 DynAny 中。

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

insert_typecode

public void insert_typecode(TypeCode value)
                     throws TypeMismatch,
                            InvalidValue
将 TypeCode 对象插入 DynAny 中。

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

insert_longlong

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

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

insert_ulonglong

public void insert_ulonglong(long value)
                      throws TypeMismatch,
                             InvalidValue
将 long 值插入 DynAny 中。将 IDL 无符号 long 数据类型映射为 Java long 数据类型。

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

insert_wchar

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

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

insert_wstring

public void insert_wstring(String value)
                    throws TypeMismatch,
                           InvalidValue
将 string 值插入 DynAny 中。有界的和无界的字符串都使用此方法插入。

指定者:
接口 DynAnyOperations 中的 insert_wstring
抛出:
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1
InvalidValue - 如果插入的字符串的长度超出有界字符串的界限
TypeMismatch

insert_any

public void insert_any(Any value)
                throws TypeMismatch,
                       InvalidValue
将 Any 值插入此 DynAny 表示的 Any 中。

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

insert_dyn_any

public void insert_dyn_any(DynAny value)
                    throws TypeMismatch,
                           InvalidValue
将参数 DynAny 中包含的 Any 值插入此 DynAny 表示的 Any 中。

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

insert_val

public void insert_val(Serializable value)
                throws TypeMismatch,
                       InvalidValue
将对 Serializable 对象的引用插入此 DynAny 中。将 IDL ValueBase 类型映射为 Java Serializable 类型。

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

get_boolean

public boolean get_boolean()
                    throws TypeMismatch,
                           InvalidValue
从此 DynAny 析取 boolean 值。

指定者:
接口 DynAnyOperations 中的 get_boolean
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_octet

public byte get_octet()
               throws TypeMismatch,
                      InvalidValue
从此 DynAny 中提取 byte 值。将 IDL octet 数据类型映射为 Java byte 数据类型。

指定者:
接口 DynAnyOperations 中的 get_octet
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_char

public char get_char()
              throws TypeMismatch,
                     InvalidValue
从此 DynAny 析取 char 值。

指定者:
接口 DynAnyOperations 中的 get_char
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_short

public short get_short()
                throws TypeMismatch,
                       InvalidValue
从此 DynAny 中提取 short 值。

指定者:
接口 DynAnyOperations 中的 get_short
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_ushort

public short get_ushort()
                 throws TypeMismatch,
                        InvalidValue
从此 DynAny 中提取 short 值。将 IDL ushort 数据类型映射为 Java short 数据类型。

指定者:
接口 DynAnyOperations 中的 get_ushort
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_long

public int get_long()
             throws TypeMismatch,
                    InvalidValue
从此 DynAny 析取 integer 值。将 IDL long 数据类型映射为 Java int 数据类型。

指定者:
接口 DynAnyOperations 中的 get_long
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_ulong

public int get_ulong()
              throws TypeMismatch,
                     InvalidValue
从此 DynAny 中提取 integer 值。将 IDL ulong 数据类型映射为 Java int 数据类型。

指定者:
接口 DynAnyOperations 中的 get_ulong
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_float

public float get_float()
                throws TypeMismatch,
                       InvalidValue
从此 DynAny 中提取 float 值。

指定者:
接口 DynAnyOperations 中的 get_float
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_double

public double get_double()
                  throws TypeMismatch,
                         InvalidValue
从此 DynAny 析取 double 值。

指定者:
接口 DynAnyOperations 中的 get_double
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_string

public String get_string()
                  throws TypeMismatch,
                         InvalidValue
从此 DynAny 中提取 string 值。有界的和无界的字符串都使用此方法析取。

指定者:
接口 DynAnyOperations 中的 get_string
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_reference

public Object get_reference()
                     throws TypeMismatch,
                            InvalidValue
从此 DynAny 中提取对 CORBA 对象的引用。

指定者:
接口 DynAnyOperations 中的 get_reference
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_typecode

public TypeCode get_typecode()
                      throws TypeMismatch,
                             InvalidValue
从此 DynAny 中提取 TypeCode 对象。

指定者:
接口 DynAnyOperations 中的 get_typecode
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_longlong

public long get_longlong()
                  throws TypeMismatch,
                         InvalidValue
从此 DynAny 中提取 long 值。将 IDL long 数据类型映射为 Java long 数据类型。

指定者:
接口 DynAnyOperations 中的 get_longlong
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_ulonglong

public long get_ulonglong()
                   throws TypeMismatch,
                          InvalidValue
从此 DynAny 中提取 long 值。将 IDL 无符号 long 数据类型映射为 Java long 数据类型。

指定者:
接口 DynAnyOperations 中的 get_ulonglong
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_wchar

public char get_wchar()
               throws TypeMismatch,
                      InvalidValue
从此 DynAny 中提取 long 值。将 IDL wchar 数据类型映射为 Java char 数据类型。

指定者:
接口 DynAnyOperations 中的 get_wchar
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_wstring

public String get_wstring()
                   throws TypeMismatch,
                          InvalidValue
从此 DynAny 中提取 string 值。有界的和无界的字符串都使用此方法析取。

指定者:
接口 DynAnyOperations 中的 get_wstring
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue

get_any

public Any get_any()
            throws TypeMismatch,
                   InvalidValue
提取由此 DynAny 表示的 Any 中所包含的 Any 值。

指定者:
接口 DynAnyOperations 中的 get_any
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_dyn_any

public DynAny get_dyn_any()
                   throws TypeMismatch,
                          InvalidValue
提取由此 DynAny 表示的 Any 中所包含的 Any 值,并将其包装在新 DynAny 中返回。

指定者:
接口 DynAnyOperations 中的 get_dyn_any
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

get_val

public Serializable get_val()
                     throws TypeMismatch,
                            InvalidValue
从此 DynAny 中提取 Serializable 对象。将 IDL ValueBase 类型映射为 Java Serializable 类型。

指定者:
接口 DynAnyOperations 中的 get_val
抛出:
TypeMismatch - 如果在 DynAny 中访问的组件类型不等于所请求的类型。
TypeMismatch - 如果在其当前组件本身也有组件的 DynAny 上调用此方法
InvalidValue - 如果此 DynAny 具有组件,但当前位置为 -1

seek

public boolean seek(int index)
将当前位置设置为索引。当前位置为索引 0 到 n-1,即索引 0 对应于第一个组件。如果所得当前位置指示 DynAny 的组件,则操作返回 true;如果索引指示的位置不与组件对应,则返回 false。使用负索引调用 seek 是合法的。它将当前位置设置为 -1,指示不存在组件,并返回 false。如果传递相应位置上没有组件的 DynAny 的非负索引值,则会将当前位置设置为 -1 并返回 false。

指定者:
接口 DynAnyOperations 中的 seek

rewind

public void rewind()
等效于 seek(0)。

指定者:
接口 DynAnyOperations 中的 rewind

next

public boolean next()
将当前位置推进到下一个组件。如果所得当前位置指示一个组件,则该操作返回 true;否则返回 false。返回值为 false 时当前位置仍为 -1。如果在没有组件的 DynAny 上调用 next,则当前位置仍为 -1 并返回 false。

指定者:
接口 DynAnyOperations 中的 next

component_count

public int component_count()
返回 DynAny 的组件数。对于没有组件的 DynAny,它返回 0。该操作仅计算位于顶层的组件。例如,如果在具有单个成员的 DynStruct 上调用 component_count,则返回值为 1,与成员的类型无关。

指定者:
接口 DynAnyOperations 中的 component_count

current_component

public DynAny current_component()
                         throws TypeMismatch
返回当前位置上的组件的 DynAny。它不推进当前位置,所以反复调用 current_component 且不插入对 rewind、next 或 seek 的调用将返回相同的组件。返回的 DynAny 对象引用可用于获取/设置当前组件的值。如果当前组件表示复合类型,则可基于 TypeCode 缩小返回引用的范围以获取对应于复合类型的接口。在不能有组件的 DynAny(如 DynEnum 或空异常)上调用 current_component 将引发 TypeMismatch。在其当前位置为 -1 的 DynAny 上调用 current_component 将返回 nil 引用。迭代操作和 current_component 都可用于动态组成 any 值。创建动态 any(如 DynStruct)后,current_component 和 next 可用于初始化值的所有组件。一旦完成初始化动态值,to_any 将创建相应的 any 值。

指定者:
接口 DynAnyOperations 中的 current_component
抛出:
TypeMismatch - 如果在不能有组件的 DynAny(如 DynEnum 或空异常)上调用此方法

_ids

public String[] _ids()
从类 ObjectImpl 复制的描述
获得包含此 ObjectImpl 对象所支持的存储库标识符的字符串数组。例如,对于 sub,此方法返回所有关于该 stub 所支持的接口的信息。

指定者:
ObjectImpl 中的 _ids
返回:
ObjectImpl 实例支持的所有存储库标识符所组成的数组

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策