|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectorg.omg.CORBA.TypeCode
public abstract class TypeCode
用于有关特定 CORBA 数据类型的信息的容器。
TypeCode 对象的作用包括:
NamedValue 对象用于表示参数和返回值。其中有一个组件是 Any 对象,该 Any 对象又有一个 TypeCode 对象作为其组件之一。
TypeCode 对象的表示形式是不透明的,从理论上说,TypeCode 对象由以下内容组成:
kind 字段,它被设置为 TCKind 类的一个实例
1ong 的 TypeCode 对象所具有的种类为 TCKind.tk_long,没有附加字段。描述 OMG IDL 类型 sequence<boolean, 10> 的 TypeCode 具有一个值为 TCKind.tk_sequence 的 kind 字段,以及值为 boolean 和 10(用于序列元素的类型和序列的长度)的字段。
TypeCode 对象:
Any.insert_X 方法,其中 X 为基本 IDL 类型。此方法为类型 X 创建 TypeCode 对象,并将其分配给 Any 对象的 type 字段。
例如,以下代码为 string(最长为 30 个字符)创建 TypeCode:
org.omg.CORBA.TypeCode tcString = orb.create_string_tc(30);
以下代码为由五个 string 组成的 array 创建 TypeCode 对象:
org.omg.CORBA.TypeCode tcArray = orb.create_array_tc(
5, TCKind.tk_string);
以下代码为名为 "Account" 的接口创建 TypeCode 对象:
org.omg.CORBA.TypeCode tcInterface = orb.create_interface_tc(
"thisId", "Account");
Holder 类中 _type 方法的返回值。这些 Holder 类由 idltojava 编译器生成。
TypeCode 类中的大多数方法都是访问方法,包含在 TypeCode 对象中的信息是特定于特定类型的。所以,必须只在所应用类型代码的种类上调用这些方法。如果访问方法试图从不适当类型代码种类中访问信息,则将抛出异常 TypeCodePackage.BadKind。例如,如果在 union 以外的其他种类上调用 discriminator_type 方法,则将抛出 BadKind 异常,因为只有 union 具有鉴别符 (discriminator)。以下列表展示将哪些方法应用到哪些类型代码种类:
以下方法可以在所有 TypeCode 种类上调用:
equal
kind
以下方法可以在 objref、struct、union、enum、alias、exception、value、value_box、native 和 abstract_interface 上调用:
id
name
以下方法可以在 struct、union、enum 和 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 上执行。
| 构造方法摘要 | |
|---|---|
TypeCode()
|
|
| 方法摘要 | |
|---|---|
abstract TypeCode |
concrete_base_type()
返回一个 TypeCode 对象,它描述此 TypeCode 对象所描述 value 类型的具体基本类型。 |
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 对象所描述的 fixed 类型中数字的数量。 |
abstract short |
fixed_scale()
返回此 TypeCode 对象所描述的 fixed 类型的标度。 |
abstract TypeCode |
get_compact_typecode()
剔除所有可选名称和成员名称字段,但使所有别名 typecode 保留原样。 |
abstract String |
id()
检索全局标识此 TypeCode 对象类型的 RepositoryId。 |
abstract TCKind |
kind()
检索此 TypeCode 对象的种类。 |
abstract int |
length()
返回此 TypeCode 对象所描述类型中的成员数。 |
abstract int |
member_count()
检索此 TypeCode 对象所描述类型中的成员数。 |
abstract Any |
member_label(int index)
检索给定索引标识的 union 成员的标签。 |
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 对象所描述的 value 类型的修饰符。 |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public TypeCode()
| 方法详细信息 |
|---|
public abstract boolean equal(TypeCode tc)
TypeCode 对象与给定对象比较,测试它们是否相等。如果两个 TypeCode 对象可以互换并在对它们应用 TypeCode 操作时返回相同的结果,则这两个对象相等。
tc - 要与之比较的 TypeCode 对象
true;否则返回 falsepublic abstract boolean equivalent(TypeCode tc)
TypeCode 对象是否等于此 TypeCode 对象。
tc - 将与此 typecode 比较的 typecode
true;否则返回 falsepublic abstract TypeCode get_compact_typecode()
TypeCode 对象,已剔除可选名称和成员名称字段,但别名 typecode 保持不变CORBA 包中有关未实现特性的注释public abstract TCKind kind()
TypeCode 对象的种类。代码类型的种类可确定哪些 TypeCode 方法可以合法地在该种类之上进行调用。
kind 方法可以在任何 TypeCode 对象上调用。
TypeCode 对象 kind 字段值的 TCKind 实例
public abstract String id()
throws BadKind
TypeCode 对象类型的 RepositoryId。
id 方法可以在 object reference、structure、union、enumeration、alias、exception、valuetype、boxed valuetype、native 和 abstract interface 类型代码上调用。object reference、exception、valuetype、boxed valuetype、native 和 abstract interface TypeCode 对象总是有一个 RepositoryId。从接口存储库 (Interface Repository) 或方法 ORB.create_operation_list 中获得的 structure、union、enumeration 和 alias TypeCode 对象也总是有一个 RepositoryId。如果没有 RepositoryId,则该方法可以返回一个空字符串。
TypeCode 对象的 RepositoryId,如果没有 RepositoryID,则返回一个空字符串
BadKind - 如果在不适当的 TypeCode 对象种类上调用该方法
public abstract String name()
throws BadKind
TypeCode 对象的封闭作用域内检索标识此对象的简单名称。因为这些名称对于 Repository 而言是本地的,所以从 TypeCode 对象返回的名称可能与任何特定 Repository 中的类型名称不匹配,甚至可能是一个空字符串。
name 方法可以在 object reference、structure、union、enumeration、alias、exception、valuetype、boxed valuetype、native 和 abstract interface TypeCode 对象上调用。
TypeCode 对象的名称或一个空字符串
BadKind - 如果在不适当的 TypeCode 对象种类上调用该方法
public abstract int member_count()
throws BadKind
TypeCode 对象所描述类型中的成员数。
member_count 方法可以在 structure、union 和 enumeration TypeCode 对象上调用。Java IDL 扩展了 CORBA 规范,允许此方法在异常上进行操作。
TypeCode 对象所描述类型的成员数
BadKind - 如果在不适当的 TypeCode 对象种类上调用该方法
public abstract String member_name(int index)
throws BadKind,
Bounds
TypeCode 对象返回的名称可能与任何特定 Repository 中的成员名称不匹配,甚至可能是一个空字符串。
可以在 structure、union 和 enumeration TypeCode 对象上调用 member_name 方法。Java IDL 扩展了 CORBA 规范,允许此方法在异常上进行操作。
index - 请求名称的成员的索引
Bounds - 如果索引大于等于组成该类型的成员数
BadKind - 如果在不适当的 TypeCode 对象种类上调用该方法
public abstract TypeCode member_type(int index)
throws BadKind,
Bounds
TypeCode 对象,它描述给定索引所标识成员的类型。
member_type 方法可以在 structure 和 union TypeCode 对象上调用。Java IDL 扩展了 CORBA 规范,允许此方法在异常上进行操作。
index - 开始请求类型信息的成员的索引
TypeCode 对象
Bounds - 如果索引大于等于组成该类型的成员数
BadKind - 如果在不适当的 TypeCode 对象种类上调用该方法
public abstract Any member_label(int index)
throws BadKind,
Bounds
member_label 方法可以在 union TypeCode 对象上调用。
index - 请求标签的 union 成员的索引
Any 对象;对于默认成员,返回 0 八位组
Bounds - 如果索引大于等于组成 union 的成员数
BadKind - 如果在非 union TypeCode 对象上调用该方法
public abstract TypeCode discriminator_type()
throws BadKind
TypeCode 对象。discriminator_type 方法只能在 union TypeCode 对象上调用。
TypeCode 对象
BadKind - 如果在非 union TypeCode 对象上调用该方法
public abstract int default_index()
throws BadKind
default_index 方法只能在 union TypeCode 对象上调用。
BadKind - 如果在非 union TypeCode 对象上调用该方法
public abstract int length()
throws BadKind
TypeCode 对象所描述类型中的成员数。对于 string 和 sequence,该方法返回一个范围,0 指示无界的 string 或 sequence。对于 array,此方法返回其成员数。
length 方法可以在 string、sequence 和 array TypeCode 对象上调用。
BadKind - 如果在不适当的 TypeCode 对象种类上调用该方法
public abstract TypeCode content_type()
throws BadKind
TypeCode 对象所描述成员 IDL 类型的 TypeCode 对象。对于 sequence 和 array,该方法返回元素类型。对于 alias,该方法返回原始类型。注意,多维 array 用嵌套 TypeCode 对象表示,每个维度一个对象。对于 boxed valuetype,该方法返回 boxed 类型。
content_type 方法可以在 sequence、array、alias 和 boxed valuetype TypeCode 对象上调用。
TypeCode 对象,它对于 sequence 和 array 表示元素类型;对于 alias 表示原始类型;对于 boxed valuetype 表示 boxed 类型。
BadKind - 如果在不适当的 TypeCode 对象种类上调用该方法
public abstract short fixed_digits()
throws BadKind
TypeCode 对象所描述的 fixed 类型中数字的数量。例如,数字 3000.275d 的 typecode 是 fixed<7,3>,其中 7 是精确度,3 是标度。
BadKind - 如果在不适当的 TypeCode 对象种类上调用该方法
public abstract short fixed_scale()
throws BadKind
TypeCode 对象所描述的 fixed 类型的标度。正数指示小数点右边的数字个数。例如,数字 3000d 的 typecode 是 fixed<4,0>,其中第一个数字是精度,第二个数字是标度。出现负数也是有可能的,在小数点的左边添加 0 即可。在这种情况下,fixed<1,-3> 是数字 3000d 的 typecode。
TypeCode 对象所描述 fixed 类型的标度
BadKind - 如果在不适当的 TypeCode 对象种类上调用该方法
public abstract short member_visibility(int index)
throws BadKind,
Bounds
TypeCode 对象上调用。
index - 指示 value 中索引的 int 值
PRIVATE_MEMBER.value 或 PUBLIC_MEMBER.value
BadKind - 如果在非 value 类型 TypeCode 对象上调用此方法
Bounds - 如果给定索引超出范围CORBA 包中有关未实现特性的注释
public abstract short type_modifier()
throws BadKind
TypeCode 对象所描述的 value 类型的修饰符。返回的常量必须是以下常量之一:VM_NONE.value、VM_ABSTRACT.value、VM_CUSTOM.value 或 VM_TRUNCATABLE.value。
TypeCode 对象所描述 value 类型的常量
BadKind - 如果在非 value 类型 TypeCode 对象上调用此方法CORBA 包中有关未实现特性的注释
public abstract TypeCode concrete_base_type()
throws BadKind
TypeCode 对象,它描述此 TypeCode 对象所描述 value 类型的具体基本类型。如果没有具体基本类型,则返回 null。
TypeCode 对象,它描述此 TypeCode 对象所描述 value 类型的具体基本类型
BadKind - 如果在非 boxed value 类型 TypeCode 对象上调用此方法CORBA 包中有关未实现特性的注释
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。