public class _DynAnyStub extends ObjectImpl implements DynAny
DynAny对象可以被视为组件DynAnys的有序集合。 对于代表基本类型(如long)或无组件类型(如空异常)的DynAnys,组件的有序集合为空。 每个DynAny对象将当前位置的概念维护到其组件DynAnys的集合中。 当前位置由从0到n-1运行的索引值来标识,其中n是组件的数量。 特殊索引值-1表示当前位置。 对于不能具有当前位置的值(如空异常),索引值固定为-1。 如果使用具有组件的值初始化DynAny,则索引将初始化为0.创建未初始化的DynAny(即,没有值但具有允许组件的TypeCode的DynAny)之后,当前位置取决于类型由DynAny代表的价值。 (当前位置设置为0或-1,具体取决于新的DynAny是否为其组件获取默认值。)
迭代操作倒退,查找和下一个可以用于更改当前位置,并且current_component操作返回当前位置的组件。 component_count操作返回DynAny的组件数。 总而言之,这些操作可以对DynAny的组件执行迭代,例如(递归)检查其内容。
构造的DynAny对象是与构造类型相关联的DynAny对象。 有一个不同的接口,从DynAny接口继承,与IDL(固定,枚举,结构,序列,联合,数组,异常和值类型)中的每种构造类型相关联。
构造的DynAny对象导出可以创建新的DynAny对象的操作,每个对象都与构造的数据值的组件相关联。 作为示例,DynStruct与一个结构体值相关联。 这意味着DynStruct可能被视为拥有一个有序的组件集合,每个结构成员一个。 DynStruct对象导出可以创建新的DynAny对象的操作,每个对象都与结构体的成员相关联。
如果已经从另一个(构造的)DynAny对象获取DynAny对象,例如DynAny表示从DynStruct创建的结构成员,则DynAny会在逻辑上包含DynStruct。 调用插入或获取操作使当前位置保持不变。 销毁顶层DynAny对象(未作为另一个DynAny的组件获取的对象)也会销毁从其获取的任何组件DynAny对象。 销毁非顶级DynAny对象什么都不做。 对已销毁的顶级DynAny或其任何后代调用操作会引发OBJECT_NOT_EXIST。 如果程序员想要销毁一个DynAny对象,但是仍然想要操作与它相关联的数据值的某个组件,那么他或她应该首先为该组件创建一个DynAny,然后创建一个创建的DynAny对象的副本。
已经定义了DynAny对象的行为,以便在分配的内存空间和访问速度方面实现高效的实现。 DynAny对象旨在用于遍历从anys提取的值或在运行时构建anys的值。 不建议将其用于其他目的。
处理基本的DynAny对象需要插入和获取操作,但也有助于处理构造的DynAny对象。 将基本数据类型值插入构造的DynAny对象意味着初始化与DynAny对象关联的构造数据值的当前组件。 例如,在DynStruct上调用insert_boolean意味着在关联的struct数据值的当前位置插入一个布尔数据值。 如果TypeCode等同于DynAny中包含的TypeCode,或者如果DynAny具有组件,则类型与当前位置的DynAny的TypeCode相当,则该类型与插入或提取值是一致的。
DynAny和DynAnyFactory对象旨在在其创建和使用的进程的本地。 这意味着对DynAny和DynAnyFactory对象的引用不能导出到其他进程,或者使用ORB.object_to_string()进行外部化。 如果尝试这样做,违规行为会引发MARSHAL系统异常。 由于它们的接口在IDL中指定,所以DynAny对象导出在标准org.omg.CORBA.Object接口中定义的操作。 但是,任何调用通过Object接口导出的操作的尝试可能会引发标准的NO_IMPLEMENT异常。 尝试在DII中使用DynAny对象可能会引发NO_IMPLEMENT异常。
Constructor and Description |
---|
_DynAnyStub() |
Modifier and Type | Method and Description |
---|---|
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)
使用任何值中包含的值初始化与DynAny对象关联的值。
|
Any |
get_any()
提取由DynAny表示的Any中包含的任何值。
|
boolean |
get_boolean()
从此DynAny中提取布尔值。
|
char |
get_char()
从此DynAny中提取字符值。
|
double |
get_double()
从此DynAny中提取双重值。
|
DynAny |
get_dyn_any()
提取由该DynAny表示的Any中包含的Any值,并将其返回包装到新的DynAny中。
|
float |
get_float()
从此DynAny中提取浮点值。
|
int |
get_long()
从此DynAny中提取整数值。
|
long |
get_longlong()
从DynAny中提取长的值。
|
byte |
get_octet()
从此DynAny中提取字节值。
|
Object |
get_reference()
从此DynAny中提取对CORBA对象的引用。
|
short |
get_short()
从此DynAny中提取短值。
|
String |
get_string()
从此DynAny中提取字符串值。
|
TypeCode |
get_typecode()
从此DynAny中提取TypeCode对象。
|
int |
get_ulong()
从此DynAny中提取整数值。
|
long |
get_ulonglong()
从DynAny中提取长的值。
|
short |
get_ushort()
从此DynAny中提取短值。
|
Serializable |
get_val()
从此DynAny中提取可序列化的对象。
|
char |
get_wchar()
从DynAny中提取长的值。
|
String |
get_wstring()
从此DynAny中提取字符串值。
|
void |
insert_any(Any value)
在此DynAny表示的Any中插入任何值。
|
void |
insert_boolean(boolean value)
在DynAny中插入一个布尔值。
|
void |
insert_char(char value)
在DynAny中插入一个char值。
|
void |
insert_double(double value)
在DynAny中插入一个双重值。
|
void |
insert_dyn_any(DynAny value)
将包含在参数DynAny中的Any值插入到此DynAny表示的Any中。
|
void |
insert_float(float value)
在DynAny中插入一个浮点值。
|
void |
insert_long(int value)
在DynAny中插入一个整数值。
|
void |
insert_longlong(long value)
在DynAny中插入一个长的值。
|
void |
insert_octet(byte value)
在DynAny中插入一个字节值。
|
void |
insert_reference(Object value)
将CORBA对象的引用插入到DynAny中。
|
void |
insert_short(short value)
在DynAny中插入一个简短的值。
|
void |
insert_string(String value)
在DynAny中插入一个字符串值。
|
void |
insert_typecode(TypeCode value)
将TypeCode对象插入到DynAny中。
|
void |
insert_ulong(int value)
在DynAny中插入一个整数值。
|
void |
insert_ulonglong(long value)
在DynAny中插入一个长的值。
|
void |
insert_ushort(short value)
在DynAny中插入一个简短的值。
|
void |
insert_val(Serializable value)
将可序列化对象的引用插入此DynAny。
|
void |
insert_wchar(char value)
在DynAny中插入一个char值。
|
void |
insert_wstring(String value)
在DynAny中插入一个字符串值。
|
boolean |
next()
将当前位置提前到下一个组件。
|
void |
rewind()
相当于seek(0)。
|
boolean |
seek(int index)
将当前位置设置为索引。
|
Any |
to_any()
从DynAny对象创建任何值。
|
TypeCode |
type()
返回与此DynAny对象关联的TypeCode。
|
_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
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
_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
public static final 类 _opsClass
public TypeCode type()
type
在接口
DynAnyOperations
public void assign(DynAny dyn_any) throws TypeMismatch
assign
在接口
DynAnyOperations
dyn_any
-
TypeMismatch
- 如果传递的DynAny的类型不等于目标的类型DynAny
public void from_any(Any value) throws TypeMismatch, InvalidValue
from_any
在接口
DynAnyOperations
TypeMismatch
- 如果传递的Any类型不等于目标DynAny的类型
InvalidValue
- 如果传递的Any不包含合法值(如空字符串)
public Any to_any()
to_any
在接口
DynAnyOperations
public boolean equal(DynAny dyn_any)
equal
在接口
DynAnyOperations
public void destroy()
destroy
在界面
DynAnyOperations
public DynAny copy()
copy
在接口
DynAnyOperations
public void insert_boolean(boolean value) throws TypeMismatch, InvalidValue
insert_boolean
在界面
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_octet(byte value) throws TypeMismatch, InvalidValue
insert_octet
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_char(char value) throws TypeMismatch, InvalidValue
insert_char
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_short(short value) throws TypeMismatch, InvalidValue
insert_short
在界面
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_ushort(short value) throws TypeMismatch, InvalidValue
insert_ushort
在界面
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_long(int value) throws TypeMismatch, InvalidValue
insert_long
在界面
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_ulong(int value) throws TypeMismatch, InvalidValue
insert_ulong
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_float(float value) throws TypeMismatch, InvalidValue
insert_float
在界面
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_double(double value) throws TypeMismatch, InvalidValue
insert_double
在界面
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_string(String value) throws TypeMismatch, InvalidValue
insert_string
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
InvalidValue
- 如果插入的字符串长于有界字符串的边界
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_reference(Object value) throws TypeMismatch, InvalidValue
insert_reference
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_typecode(TypeCode value) throws TypeMismatch, InvalidValue
insert_typecode
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_longlong(long value) throws TypeMismatch, InvalidValue
insert_longlong
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_ulonglong(long value) throws TypeMismatch, InvalidValue
insert_ulonglong
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_wchar(char value) throws TypeMismatch, InvalidValue
insert_wchar
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_wstring(String value) throws TypeMismatch, InvalidValue
insert_wstring
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
InvalidValue
- 如果插入的字符串长于有界字符串的边界
TypeMismatch
public void insert_any(Any value) throws TypeMismatch, InvalidValue
insert_any
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_dyn_any(DynAny value) throws TypeMismatch, InvalidValue
insert_dyn_any
在接口
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public void insert_val(Serializable value) throws TypeMismatch, InvalidValue
insert_val
在界面
DynAnyOperations
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
public boolean get_boolean() throws TypeMismatch, InvalidValue
get_boolean
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public byte get_octet() throws TypeMismatch, InvalidValue
get_octet
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public char get_char() throws TypeMismatch, InvalidValue
get_char
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public short get_short() throws TypeMismatch, InvalidValue
get_short
在界面
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public short get_ushort() throws TypeMismatch, InvalidValue
get_ushort
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于所请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public int get_long() throws TypeMismatch, InvalidValue
get_long
在界面
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public int get_ulong() throws TypeMismatch, InvalidValue
get_ulong
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public float get_float() throws TypeMismatch, InvalidValue
get_float
在界面
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于所请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public double get_double() throws TypeMismatch, InvalidValue
get_double
在界面
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于所请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public String get_string() throws TypeMismatch, InvalidValue
get_string
在界面
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public Object get_reference() throws TypeMismatch, InvalidValue
get_reference
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public TypeCode get_typecode() throws TypeMismatch, InvalidValue
get_typecode
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public long get_longlong() throws TypeMismatch, InvalidValue
get_longlong
在界面
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于所请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public long get_ulonglong() throws TypeMismatch, InvalidValue
get_ulonglong
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public char get_wchar() throws TypeMismatch, InvalidValue
get_wchar
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public String get_wstring() throws TypeMismatch, InvalidValue
get_wstring
在界面
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
public Any get_any() throws TypeMismatch, InvalidValue
get_any
在界面
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public DynAny get_dyn_any() throws TypeMismatch, InvalidValue
get_dyn_any
在界面
DynAnyOperations
TypeMismatch
- 如果DynAny中所访问的组件的类型不等同于所请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public Serializable get_val() throws TypeMismatch, InvalidValue
get_val
在接口
DynAnyOperations
TypeMismatch
- 如果DynAny中访问的组件的类型不等同于请求的类型。
TypeMismatch
- 如果在当前组件本身具有组件的DynAny上调用
InvalidValue
- 如果此DynAny具有组件但当前位置为-1
public boolean seek(int index)
seek
在接口
DynAnyOperations
public void rewind()
rewind
在界面
DynAnyOperations
public boolean next()
next
在接口
DynAnyOperations
public int component_count()
component_count
在接口
DynAnyOperations
public DynAny current_component() throws TypeMismatch
current_component
在界面
DynAnyOperations
TypeMismatch
- 如果在没有组件的DynAny上调用,例如DynEnum或空的异常
public String[] _ids()
ObjectImpl
ObjectImpl
对象支持的存储库标识符的字符串数组。
例如,对于stub,此方法返回有关stub支持的所有接口的信息。
_ids
在
ObjectImpl
ObjectImpl
实例支持的所有存储库标识符阵列