- java.lang.Object
-
- org.omg.CORBA.TypeCode
-
- All Implemented Interfaces:
-
Serializable
,IDLEntity
public abstract class TypeCode extends Object implements IDLEntity
有关特定CORBA数据类型的信息的容器。TypeCode
对象:- 在动态调用接口中 - 指示实际参数的类型或返回值的类型。
NamedValue
对象用于表示参数和返回值。 他们的一个组件是一个Any
对象,它反过来又作为一个组件的一个TypeCode
对象。 - 通过Interface Repository来表示作为许多OMG IDL声明的一部分的类型规范
TypeCode
对象的表示是不透明的,但抽象地,一个TypeCode
对象包括:- 一个
kind
字段,它被设置为类TCKind
一个实例 - 零个或多个适合于特定种类的附加字段。 例如,描述OMG IDL类型
1ong
的TypeCode
对象具有TCKind.tk_long
并且没有其他字段。 所述TypeCode
描述OMG IDL类型sequence<boolean, 10>
具有kind
具有值字段TCKind.tk_sequence
并且还与值的字段boolean
和10
用于序列元素的类型和序列的长度。
TypeCode
可以通过各种方式获得对象:- 从调用方法
Any.insert_X
,其中X是基本的IDL类型。 此方法为类型X创建一个TypeCode
对象,并将其分配给Any
对象的type
字段。 - 从ORB类中的方法调用
例如,下面创建一个
TypeCode
用于对象string
每次最多30个字符:org.omg.CORBA.TypeCode tcString = orb.create_string_tc(30);
下面创建一个
TypeCode
的对象array
五个string
S:org.omg.CORBA.TypeCode tcArray = orb.create_array_tc( 5, TCKind.tk_string);
以下为名为“帐户”的接口创建一个
TypeCode
对象:org.omg.CORBA.TypeCode tcInterface = orb.create_interface_tc( "thisId", "Account");
- 作为用于自定义IDL类型的
Holder
类中的_type
方法的返回值。 这些Holder
类由idltojava
编译器生成。 - 从CORBA接口存储库
TypeCode
类中的大多数方法都是访问器,TypeCode
对象中包含的信息特定于特定类型。 因此,方法必须仅适用于它们所适用的类型代码。 如果访问器方法尝试从不适当类型的代码访问信息,它将抛出异常TypeCodePackage.BadKind
。 例如,如果方法discriminator_type
在union
之外的任何东西被调用,它将抛出BadKind
因为只有union
具有鉴别union
。 以下列表显示哪些类型的代码适用于哪些方法:这些方法可以在所有
TypeCode
种上被调用:-
equal
-
kind
这些方法可以在调用
objref
,struct
,union
,枚举
,alias
,exception
,value
,value_box
,native
,并abstract_interface
:-
id
-
name
这些方法可以在调用
struct
,union
,枚举
,并exception
:-
member_count
-
member_name
这些方法可以在调用
struct
,union
,并exception
:-
member_type(int index)
这些方法可以在
union
上调用:-
member_label
-
discriminator_type
-
default_index
这些方法可以在调用
string
,sequence
,并array
:-
length
这些方法可以在调用
alias
,sequence
,array
,并value_box
:-
content_type
与其他CORBA伪对象不同,
TypeCode
对象可以作为一般IDL参数传递。不被映射的方法
parameter
和param_count
已被弃用。的Java IDL扩展了CORBA规范,以允许在允许的所有操作
struct
TypeCode
要在一个允许exception
TypeCode
为好。
-
-
构造方法摘要
构造方法 Constructor 描述 TypeCode()
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract TypeCode
concrete_base_type()
返回描述TypeCode
对象描述的值类型的具体基类型的TypeCode
对象。abstract TypeCode
content_type()
返回TypeCode
表示IDL类型用于通过此所描述的对象的成员对象TypeCode
对象。abstract int
default_index()
返回默认成员的索引,如果没有默认成员则返回-1。abstract TypeCode
discriminator_type()
返回描述所有非默认成员标签的TypeCode
对象。abstract boolean
equal(TypeCode tc)
将此TypeCode
对象与给定对象进行比较,测试相等性。abstract boolean
equivalent(TypeCode tc)
测试看看给定的TypeCode
对象是否等同于这个TypeCode
对象。abstract short
fixed_digits()
返回此TypeCode
对象描述的固定类型中的TypeCode
。abstract short
fixed_scale()
返回此TypeCode
对象描述的固定类型的比例。abstract TypeCode
get_compact_typecode()
删除所有可选的名称和成员名称字段,但保留所有别名类型代码。abstract String
id()
检索RepositoryId全局标识此TypeCode
对象的类型。abstract TCKind
kind()
检索这个TypeCode
对象的种类。abstract int
length()
返回此TypeCode
对象描述的类型中的元素数。abstract int
member_count()
检索由该TypeCode
对象描述的类型的成员数。abstract Any
member_label(int index)
检索由给定索引识别的联盟成员的标签。abstract String
member_name(int index)
检索由给定索引识别的成员的简单名称。abstract TypeCode
member_type(int index)
检索描述由给定索引识别的成员的类型的TypeCode
对象。abstract short
member_visibility(int index)
返回指示给定索引处成员的可见性的常量。abstract String
name()
检索在其封闭范围内识别此TypeCode
对象的简单名称。abstract short
type_modifier()
返回一个常量,表示此TypeCode
对象描述的值类型的修饰符。
-
-
-
方法详细信息
-
equal
public abstract boolean equal(TypeCode tc)
将此TypeCode
对象与给定对象进行比较,测试相等性。TypeCode
如果它们是可互换的,并且当得到相同的结果对象相等TypeCode
操作应用到它们。- 参数
-
tc
- 与对比的TypeCode
对象 - 结果
-
true
如果类型代码相等;false
否则
-
equivalent
public abstract boolean equivalent(TypeCode tc)
测试看看给定的TypeCode
对象是否等同于这个TypeCode
对象。- 参数
-
tc
- 与此类型代码进行比较的类型代码 - 结果
-
true
如果给定的类型代码相当于此类型代码; 否则为false
-
get_compact_typecode
public abstract TypeCode get_compact_typecode()
删除所有可选的名称和成员名称字段,但保留所有别名类型代码。- 结果
-
一个具有可选名称和成员名称字段的
TypeCode
对象被删除,除了别名类型代码,这些对象保持不变 - 另请参见:
-
CORBA
package comments for unimplemented features
-
kind
public abstract TCKind kind()
检索这种TypeCode
对象的种类。 类型代码的种类决定了哪些TypeCode
方法可以在其上被法律援引。可以在任何
TypeCode
对象上调用方法kind
。- 结果
-
该
TCKind
实例指示该TypeCode
对象的kind
字段的值
-
id
public abstract String id() throws BadKind
检索RepositoryId全局标识此TypeCode
对象的类型。方法
id
可以在对象引用,结构,联合,枚举,别名,异常,价值类型,盒装价值类型,本地和抽象接口类型代码中被调用。 对象引用,异常,价值类型,TypeCode
,本机和抽象接口TypeCode
对象始终具有RepositoryId。 从Interface Repository或TypeCode
获取的结构,联合,枚举和别名ORB.create_operation_list
也始终具有RepositoryId。 如果没有RepositoryId,该方法可以返回一个空字符串。- 结果
-
这个
TypeCode
对象的RepositoryId或没有RepositoryID的空字符串 - 异常
-
BadKind
- 如果方法在不适当的类型的TypeCode
对象上被调用
-
name
public abstract String name() throws BadKind
检索在其封闭范围内识别此TypeCode
对象的简单名称。 由于名称对于存储库是本地的,因此从TypeCode
对象返回的名称可能与任何特定存储库中的类型名称可能不匹配,甚至可能是空字符串。方法
name
可以在对象引用,结构,联合,枚举,别名,异常,值类型,TypeCode
,本机和抽象接口TypeCode
对象中被调用。- 结果
-
标识此
TypeCode
对象的名称或空字符串 - 异常
-
BadKind
- 如果方法是在不适当的类型的TypeCode
对象上调用的
-
member_count
public abstract int member_count() throws BadKind
检索此TypeCode
对象描述的类型的成员数。可以在结构,联合和枚举
TypeCode
对象上调用方法member_count
。 Java IDL扩展了CORBA规范,以允许此方法对异常进行操作。- 结果
-
构成该
TypeCode
对象描述的类型的成员数 - 异常
-
BadKind
- 如果方法是在不适当的类型的TypeCode
对象上被调用的
-
member_name
public abstract String member_name(int index) throws BadKind, Bounds
检索由给定索引识别的成员的简单名称。 由于名称对于存储库是本地的,所以从TypeCode
对象返回的名称可能与任何特定存储库中的成员名称可能不匹配,甚至可能是空字符串。可以在结构,联合和枚举
TypeCode
对象上调用方法member_name
。 Java IDL扩展了CORBA规范,以允许此方法对异常进行操作。
-
member_type
public abstract TypeCode member_type(int index) throws BadKind, Bounds
检索描述由给定索引识别的成员的类型的TypeCode
对象。可以在结构和联合
TypeCode
对象上调用方法member_type
。 Java IDL扩展了CORBA规范,以允许此方法对异常进行操作。
-
member_label
public abstract Any member_label(int index) throws BadKind, Bounds
检索由给定索引识别的联盟成员的标签。 对于默认成员,标签是零字节。方法
member_label
只能在联合TypeCode
对象上调用。
-
discriminator_type
public abstract TypeCode discriminator_type() throws BadKind
返回描述所有非默认成员标签的TypeCode
对象。 方法discriminator_type
只能在联合TypeCode
对象上调用。- 结果
-
描述非默认成员标签的
TypeCode
对象 - 异常
-
BadKind
- 如果方法在非联合TypeCode
对象上被调用
-
default_index
public abstract int default_index() throws BadKind
返回默认成员的索引,如果没有默认成员则返回-1。方法
default_index
只能在联合TypeCode
对象上调用。- 结果
- 默认成员的索引,如果没有默认成员则为-1
- 异常
-
BadKind
- 如果在非联合TypeCode
对象上调用该方法
-
length
public abstract int length() throws BadKind
返回此TypeCode
对象描述的类型的元素数。 对于字符串和序列,它返回绑定,零表示无界的字符串或序列。 对于数组,它返回数组中的元素数。可以对字符串,序列和数组
TypeCode
对象调用方法length
。- 结果
- 字符串和序列的绑定,或数组元素的数量
- 异常
-
BadKind
- 如果方法是在不适当类型的TypeCode
对象上调用的
-
content_type
public abstract TypeCode content_type() throws BadKind
返回TypeCode
表示IDL类型用于通过此所描述的对象的成员对象TypeCode
对象。 对于序列和数组,它返回元素类型。 对于别名,它返回原始类型。 请注意,多维数组通过嵌套TypeCode
对象(每个维度一个)来表示。 对于盒装的贵重类型,它返回盒装类型。方法
content_type
可以在序列,数组,别名和boxed值类型TypeCode
对象上调用。- 结果
-
一个
TypeCode
对象,表示序列和数组的元素类型,别名的原始类型或者盒装值类型的boxed类型。 - 异常
-
BadKind
- 如果方法是在不适当的类型的TypeCode
对象上被调用的
-
fixed_digits
public abstract short fixed_digits() throws BadKind
返回此TypeCode
对象描述的固定类型的位数。 例如,3000.275d的类型代码可以是fixed<7,3>
,其中7是精度,3是scale。- 结果
- 总数位数
- 异常
-
BadKind
- 如果在不适当的类型的TypeCode
对象上调用此方法
-
fixed_scale
public abstract short fixed_scale() throws BadKind
返回此TypeCode
对象描述的固定类型的比例。 正数表示小数点右侧的位数。 例如,数字3000d可能具有类型fixed<4,0>
,其中第一个数字是精度,第二个数字是比例。 负数也是可以的,并在小数点左边增加零。 在这种情况下,fixed<1,-3>
,可能是fixed<1,-3>
的类型码。- 结果
-
这个
TypeCode
对象描述的固定类型的比例 - 异常
-
BadKind
- 如果在不适当的类型的TypeCode
对象上调用此方法
-
member_visibility
public abstract short member_visibility(int index) throws BadKind, Bounds
返回指示给定索引处成员的可见性的常量。 此操作只能在非盒装值TypeCode
对象上调用。- 参数
-
index
- 一个int
表示索引值 - 结果
-
PRIVATE_MEMBER.value
或PUBLIC_MEMBER.value
- 异常
-
BadKind
- 如果在非值类型TypeCode
对象上调用此方法 -
Bounds
- 如果给定的索引超出范围 - 另请参见:
-
CORBA
package comments for unimplemented features
-
type_modifier
public abstract short type_modifier() throws BadKind
返回一个常量,指示TypeCode
对象描述的值类型的修饰符。 返回的必须是以下中的一个常数:VM_NONE.value
,VM_ABSTRACT.value
,VM_CUSTOM.value
,或VM_TRUNCATABLE.value
,- 结果
-
一个描述这个
TypeCode
对象描述的值类型的常量 - 异常
-
BadKind
- 如果在非值类型TypeCode
对象上调用此方法 - 另请参见:
-
CORBA
package comments for unimplemented features
-
concrete_base_type
public abstract TypeCode concrete_base_type() throws BadKind
返回描述TypeCode
对象描述的值类型的具体基类型的TypeCode
对象。 如果没有具体的基本类型,则返回null。- 结果
-
描述
TypeCode
对象描述的具体基础类型的TypeCode
对象 - 异常
-
BadKind
- 如果在非盒装值类型TypeCode
对象上调用此方法 - 另请参见:
-
CORBA
package comments for unimplemented features
-
-