public abstract class TypeCode extends Object implements IDLEntity
TypeCode对象被使用:
NamedValue对象用于表示参数和返回值。 他们的一个部件的是Any对象,这反过来又具有作为其成分之一的TypeCode对象。 TypeCode对象的表示是不透明的,但抽象地说,一个TypeCode对象包括:
kind字段,它被设置为类的一个实例TCKind TypeCode 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字段。 例如,下面创建一个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"); Holder类中的_type方法的返回值。 这些Holder类由idltojava编译器生成。 TypeCode类中的大多数方法都是访问器, TypeCode对象中包含的信息特定于特定类型。 因此,方法必须仅适用于它们所适用的类型代码。 如果访问器方法尝试从不适当类型的代码访问信息,则会抛出异常TypeCodePackage.BadKind 。 例如,如果方法discriminator_type在除union之外的任何东西上被调用,那么它会抛出BadKind ,因为只有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 and Description |
|---|
TypeCode() |
| Modifier and Type | Method and Description |
|---|---|
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对象描述的固定类型中的位数。
|
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对象描述的值类型的修饰符。
|
public abstract boolean equal(TypeCode tc)
TypeCode对象与给定对象进行比较,测试相等。
TypeCode对象是相等的,如果它们是可互换的,并且当应用TypeCode操作时给出相同的结果。
tc -
TypeCode对象进行比较
true如果类型代码相等;
false否则
public abstract boolean equivalent(TypeCode tc)
TypeCode对象是否等同于这个
TypeCode对象。
tc - 与此类型代码进行比较的类型代码
true如果给定的类型代码相当于此类型代码;
false否则
public abstract TypeCode get_compact_typecode()
TypeCode对象被删除,除了别名类型代码,这些对象保持不变
CORBA package comments for unimplemented features
public abstract TCKind kind()
TypeCode对象的种类。
类型代码的种类决定了哪些TypeCode方法可以合法地被调用。
可以在任何TypeCode对象上调用方法kind 。
TypeCode对象的
kind字段的值的
TCKind实例
public abstract String id() throws BadKind
TypeCode对象的类型。
方法id可以在对象引用,结构,联合,枚举,别名,异常,值类型,盒装价值类型,本机和抽象接口类型代码中被调用。 对象引用,异常,价值类型,盒装价值类型,本机和抽象接口TypeCode对象始终具有RepositoryId。 从Interface Repository或TypeCode获取的结构,联合,枚举和别名ORB.create_operation_list也始终具有RepositoryId。 如果没有RepositoryId,该方法可以返回一个空字符串。
TypeCode对象的
TypeCode或没有RepositoryID的空字符串
BadKind - 如果方法在不适当的类型
TypeCode对象上被调用
public abstract String name() throws BadKind
TypeCode对象的简单名称。
由于名称对于存储库是本地的,所以从TypeCode对象返回的名称可能与任何特定存储库中的类型名称可能不匹配,甚至可能是空字符串。
方法name可以被调用对象引用,结构,联合,枚举,别名,异常,值类型,盒式价值类型,本机和抽象接口TypeCode对象。
TypeCode对象的名称或空字符串
BadKind - 如果方法是调用不适当的
TypeCode对象
public abstract int member_count()
throws BadKind
TypeCode对象描述的类型的成员数。
可以在结构,联合和枚举TypeCode对象上调用方法member_count 。 Java IDL扩展了CORBA规范,以允许此方法对异常进行操作。
TypeCode对象描述的类型的成员数
BadKind - 如果方法在不适当的类型
TypeCode对象上被调用
public abstract String member_name(int index) throws BadKind, Bounds
TypeCode对象返回的名称可能与任何特定存储库中的成员名称可能不匹配,甚至可能是空字符串。
可以在结构,联合和枚举TypeCode对象上调用方法member_name 。 Java IDL扩展了CORBA规范,以允许此方法对异常进行操作。
public abstract TypeCode member_type(int index) throws BadKind, Bounds
TypeCode对象。
可以在结构和联合TypeCode对象上调用方法member_type 。 Java IDL扩展了CORBA规范,以允许此方法对异常进行操作。
public abstract Any member_label(int index) throws BadKind, Bounds
方法member_label只能在union TypeCode对象上调用。
public abstract TypeCode discriminator_type() throws BadKind
TypeCode对象。
方法discriminator_type只能在union TypeCode对象上调用。
TypeCode非默认成员标签的
TypeCode对象
BadKind - 如果在非联合
TypeCode对象上调用该方法
public abstract int default_index()
throws BadKind
方法default_index只能在union TypeCode对象上调用。
BadKind - 如果在非联合
TypeCode对象上调用该方法
public abstract int length()
throws BadKind
TypeCode对象描述的类型中的元素数。
对于字符串和序列,它返回绑定,零表示无界的字符串或序列。
对于数组,它返回数组中的元素数。
可以对字符串,序列和数组TypeCode对象调用方法length 。
BadKind - 如果方法在不适当的类型的
TypeCode对象上被调用
public abstract TypeCode content_type() throws BadKind
TypeCode对象描述的对象的成员的IDL类型的TypeCode对象。
对于序列和数组,它返回元素类型。
对于别名,它返回原始类型。
请注意,多维数组通过嵌套TypeCode对象(每个维度一个)来表示。
对于盒装的贵重类型,它返回盒装类型。
方法content_type可以对序列,数组,别名和盒装的价值TypeCode对象进行调用。
TypeCode序列和数组的元素类型的
TypeCode对象,别名的原始类型或盒装值类型的boxed类型。
BadKind - 如果方法在不适当的类型的
TypeCode对象上被调用
public abstract short fixed_digits()
throws BadKind
TypeCode对象描述的固定类型中的位数。
例如,3000.275d的类型代码可以是fixed<7,3> ,其中7是精度,3是scale。
BadKind - 如果在不适当的类型的
TypeCode对象上调用此方法
public abstract short fixed_scale()
throws BadKind
TypeCode对象描述的固定类型的比例。
正数表示小数点右侧的位数。
例如,数字3000d可以具有类型代码fixed<4,0> ,其中第一个数字是精度,第二个数字是比例。
负数也是可以的,并在小数点左边增加零。
在这种情况下, fixed<1,-3> ,可能是3000d的类型码。
TypeCode对象描述的固定类型的比例
BadKind - 如果在不适当的类型的
TypeCode对象上调用此方法
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
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
public abstract TypeCode concrete_base_type() throws BadKind
TypeCode对象描述的值类型的具体基本类型的TypeCode对象。
如果没有具体的基本类型,则返回null。
TypeCode对象描述的值类型的具体基类型的
TypeCode对象
BadKind - 如果在非盒装值类型
TypeCode对象上调用此方法
CORBA package comments for unimplemented features
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.