- java.lang.Object
-
- org.omg.CORBA.TypeCode
-
- すべての実装されたインタフェース:
Serializable,IDLEntity
public abstract class TypeCode extends Object implements IDLEntity
特定のCORBAデータ型についての情報を格納するコンテナです。TypeCodeオブジェクトの使用法:- Dynamic Invocation Interfaceで使用される -- 実際の引数の型または戻り値の型を示す。
NamedValueオブジェクトは、引数および戻り値を表すために使用される。 それらのコンポーネントの1つはAnyオブジェクトであり、AnyオブジェクトはTypeCodeオブジェクトをそのコンポーネントの1つとして持つ。 - 多くのOMG IDL宣言の一部である型指定を表すインタフェース・リポジトリによって使用される
TypeCodeオブジェクトの表現は不透明ですが、抽象的には、TypeCodeオブジェクトの構成要素は次のとおりです。TCKindクラスのインスタンスに設定されるkindフィールド- 特定の種類に適応する0以上の追加フィールド。 たとえば、OMG IDL型
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フィールドに割り当てる。- ORBクラスのメソッドの呼び出しから取得する
たとえば次のメソッドは、最大30文字の
stringのTypeCodeオブジェクトを生成します。org.omg.CORBA.TypeCode tcString = orb.create_string_tc(30);
次では、5つの
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"); - ユーザー定義IDL型
Holderクラスの_typeメソッドからの戻り値として取得する。 これらのHolderクラスは、idltojavaコンパイラによって生成される。 - CORBAインタフェース・リポジトリから取得する
TypeCodeクラスのほとんどのメソッドはアクセス用メソッドであり、TypeCodeオブジェクトに格納されている情報は特定の型に固有です。 そのため、メソッドはメソッドが適用される種類の型コードでのみ呼び出される必要があります。 アクセス用メソッドが不適切な種類の型コードの情報にアクセスしようとすると、例外TypeCodePackage.BadKindがスローされます。 たとえば、discriminator_typeメソッドがunion以外で呼び出されると、BadKindがスローされます。これは、unionのみが識別子を持つためです。 次のリストは、どのメソッドがどの種類の型コードに適用されるかを示します。次のメソッドは、
TypeCodeのすべての種類で呼び出すことができます。equalkind
次のメソッドは、
objref、struct、union、enum、alias、exception、value、value_box、native、およびabstract_interfaceで呼び出すことができます。idname
次のメソッドは、
struct、union、enum、およびexceptionで呼び出すことができます。member_countmember_name
次のメソッドは、
struct、union、およびexceptionで呼び出すことができます。member_type(int index)
次のメソッドは、
unionで呼び出すことができます。member_labeldiscriminator_typedefault_index
次のメソッドは、
string、sequence、およびarrayで呼び出すことができます。length
次のメソッドは、
alias、sequence、array、およびvalue_boxで呼び出すことができます。content_type
ほかのCORBA擬似オブジェクトと違って、
TypeCodeオブジェクトは一般的なIDLパラメータとして渡すことができます。parameterメソッドおよびparam_countメソッド(非推奨)はマッピングされません。Java IDLはCORBA仕様を拡張し、
structTypeCodeで許可されているすべてのオペレーションがexceptionTypeCodeでも許可されるようにします。
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 TypeCode()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 abstract TypeCodeconcrete_base_type()このTypeCodeオブジェクトで記述される値型の具象基底型を記述するTypeCodeオブジェクトを返します。abstract TypeCodecontent_type()このTypeCodeオブジェクトによって記述されるオブジェクトのメンバーのIDL型を表すTypeCodeオブジェクトを返します。abstract intdefault_index()デフォルト・メンバーのインデックス、またはデフォルトのメンバーがない場合は -1を返します。abstract TypeCodediscriminator_type()デフォルトのメンバーではないすべてのラベルを記述するTypeCodeオブジェクトを返します。abstract booleanequal(TypeCode tc)このTypeCodeオブジェクトと指定されたTypeCodeオブジェクトが等しいかどうかを比較します。abstract booleanequivalent(TypeCode tc)このTypeCodeオブジェクトと指定されたTypeCodeオブジェクトが等しいかどうかを判定します。abstract shortfixed_digits()このTypeCodeオブジェクトで記述されたfixed型の桁数を返します。abstract shortfixed_scale()このTypeCodeオブジェクトで記述されたfixed型のスケールを返します。abstract TypeCodeget_compact_typecode()すべてのオプション名およびメンバー名フィールドを削除しますが、別名型コードはすべてそのまま残します。abstract Stringid()このTypeCodeオブジェクトの型を大域的に識別するリポジトリIDを取得します。abstract TCKindkind()このTypeCodeオブジェクトの種類を取得します。abstract intlength()このTypeCodeオブジェクトによって記述される型の要素数を返します。abstract intmember_count()このTypeCodeオブジェクトで記述される型のメンバー数を取得します。abstract Anymember_label(int index)指定されたインデックスによって識別される共用体メンバーのラベルを取得します。abstract Stringmember_name(int index)指定されたインデックスで識別されるメンバーの単純名を取得します。abstract TypeCodemember_type(int index)指定されたインデックスで識別されるメンバーの型を記述するTypeCodeオブジェクトを取得します。abstract shortmember_visibility(int index)指定されたインデックスのメンバーの可視性を示す定数を返します。abstract Stringname()囲みスコープ内でTypeCodeオブジェクトを識別する単純名を取得します。abstract shorttype_modifier()このTypeCodeオブジェクトが記述する値型の修飾子を示す定数を返します。
-
-
-
メソッドの詳細
-
equal
public abstract boolean equal(TypeCode tc)
このTypeCodeオブジェクトと指定された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パッケージに実装されていない機能についてのコメント
-
kind
public abstract TCKind kind()
このTypeCodeオブジェクトの種類を取得します。 型コードの種類は、どのTypeCodeメソッドが正常に呼び出すことができるかを示します。kindメソッドは、どのTypeCodeオブジェクトでも呼び出すことができます。- 戻り値:
- この
TypeCodeオブジェクトのkindフィールドの値を示すTCKindのインスタンス
-
id
public abstract String id() throws BadKind
このTypeCodeオブジェクトの型を大域的に識別するリポジトリIDを取得します。idメソッドは、オブジェクト参照、構造体、共用体、列挙、エイリアス、例外、value型、boxed value型、ネイティブ、および抽象インタフェースの型コードで呼び出すことができます。 オブジェクト参照、例外、value型、boxed value型、ネイティブ、抽象インタフェースTypeCodeオブジェクトは、常にリポジトリIDを持ちます。 インタフェース・リポジトリまたはORB.create_operation_listメソッドから取得される構造体、共用体、列挙、およびエイリアスTypeCodeオブジェクトも常にリポジトリIDを持ちます。 リポジトリIDがない場合、メソッドは空の文字列を返します。- 戻り値:
- この
TypeCodeオブジェクトのリポジトリID。リポジトリIDがない場合は空の文字列 - 例外:
BadKind- メソッドが、不適切な種類のTypeCodeオブジェクトで呼び出された場合
-
name
public abstract String name() throws BadKind
囲みスコープ内でTypeCodeオブジェクトを識別する単純名を取得します。 名前はリポジトリにローカルなので、TypeCodeオブジェクトから返された名前は、特定のリポジトリ内部の型の名前とは一致しない場合があり、空の文字列の場合もあります。nameメソッドは、オブジェクト参照、構造体、共用体、列挙、エイリアス、例外、value型、boxed value型、ネイティブ、および抽象インタフェースTypeCodeオブジェクトで呼び出すことができます。- 戻り値:
- この
TypeCodeオブジェクトを識別する名前、または空の文字列 - 例外:
BadKind- メソッドが、不適切な種類のTypeCodeオブジェクトで呼び出された場合
-
member_count
public abstract int member_count() throws BadKindこのTypeCodeオブジェクトで記述される型のメンバー数を取得します。member_countメソッドは、構造体、共用体、列挙TypeCodeオブジェクトで呼び出すことができます。 Java IDLはCORBA仕様を拡張し、このメソッドが例外も処理できるようにします。- 戻り値:
- この
TypeCodeオブジェクトによって記述される型を構成するメンバーの数 - 例外:
BadKind- メソッドが、不適切な種類のTypeCodeオブジェクトで呼び出された場合
-
member_name
public abstract String member_name(int index) throws BadKind, Bounds
指定されたインデックスで識別されるメンバーの単純名を取得します。 名前はリポジトリにローカルであるため、TypeCodeオブジェクトから返される名前は、特定のリポジトリのメンバー名と一致しない場合があり、空の文字列である場合もあります。member_nameメソッドは、構造体、共用体、列挙TypeCodeオブジェクトで呼び出すことができます。 Java IDLはCORBA仕様を拡張し、このメソッドが例外も処理できるようにします。
-
member_type
public abstract TypeCode member_type(int index) throws BadKind, Bounds
指定されたインデックスで識別されるメンバーの型を記述するTypeCodeオブジェクトを取得します。member_typeメソッドは、構造体および共用体TypeCodeオブジェクトで呼び出すことができます。 Java IDLはCORBA仕様を拡張し、このメソッドが例外も処理できるようにします。
-
member_label
public abstract Any member_label(int index) throws BadKind, Bounds
指定されたインデックスによって識別される共用体メンバーのラベルを取得します。 デフォルトのメンバーの場合、ラベルは0オクテットです。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オブジェクトによって記述される型の要素数を返します。 文字列およびシーケンスの場合はバウンドが返され、0はアンバウンドの文字列またはシーケンスを示します。 配列の場合、配列の要素数が返されます。lengthメソッドは、文字列、シーケンス、および配列TypeCodeオブジェクトで呼び出すことができます。- 戻り値:
- 文字列およびシーケンスのバウンド、または配列の要素数
- 例外:
BadKind- メソッドが、不適切な種類のTypeCodeオブジェクトで呼び出された場合
-
content_type
public abstract TypeCode content_type() throws BadKind
このTypeCodeオブジェクトによって記述されるオブジェクトのメンバーのIDL型を表すTypeCodeオブジェクトを返します。 シーケンスおよび配列の場合は、要素の型が返されます。 エイリアスの場合は、元の型が返されます。 多次元配列は、次元ごとに1つのTypeCodeオブジェクトを入れ子にすることにより表されます。 boxed value型の場合はboxed型が返されます。content_typeメソッドは、シーケンス、配列、エイリアス、およびboxed value型TypeCodeオブジェクトで呼び出すことができます。- 戻り値:
- シーケンスおよび配列の要素の型、エイリアスの元の型、またはboxed value型のboxed型を表す
TypeCodeオブジェクト。 - 例外:
BadKind- メソッドが、不適切な種類のTypeCodeオブジェクトで呼び出された場合
-
fixed_digits
public abstract short fixed_digits() throws BadKindこのTypeCodeオブジェクトで記述されたfixed型の桁数を返します。 たとえば、番号3000.275dの型コードはfixed<7,3>です。ここで7は精度、3はスケールです。- 戻り値:
- 桁の総数
- 例外:
BadKind- このメソッドが、不適切な種類のTypeCodeオブジェクトで呼び出された場合
-
fixed_scale
public abstract short fixed_scale() throws BadKindこのTypeCodeオブジェクトで記述されたfixed型のスケールを返します。 正の数値は、小数点の右側にある桁数を示します。 たとえば、番号3000dは、型コードfixed<4,0>を持つことができます。最初の数字は精度で、2番目の数字は位取りです。 負の数値も可能です。その場合は、小数点の左側にゼロを付けます。 この場合、fixed<1,-3>は、番号3000dの型コードになります。- 戻り値:
- この
TypeCodeオブジェクトで記述されるfixed型のスケール - 例外:
BadKind- このメソッドが、不適切な種類のTypeCodeオブジェクトで呼び出された場合
-
member_visibility
public abstract short member_visibility(int index) throws BadKind, Bounds指定されたインデックスのメンバーの可視性を示す定数を返します。 このオペレーションは、非boxed値TypeCodeオブジェクトだけで呼び出すことができます。- パラメータ:
index- 値へのインデックスを示すint- 戻り値:
PRIVATE_MEMBER.valueまたはPUBLIC_MEMBER.value- 例外:
BadKind- このメソッドが、値型ではないTypeCodeオブジェクトで呼び出された場合Bounds- 指定したインデックスが範囲外にある場合- 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
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パッケージに実装されていない機能についてのコメント
-
concrete_base_type
public abstract TypeCode concrete_base_type() throws BadKind
このTypeCodeオブジェクトで記述される値型の具象基底型を記述するTypeCodeオブジェクトを返します。 具象基底型がない場合は、nullを返します。- 戻り値:
- この
TypeCodeオブジェクトで記述される値型の具象基底型を記述するTypeCodeオブジェクト - 例外:
BadKind- このメソッドが、boxed値型ではないTypeCodeオブジェクトで呼び出された場合- 関連項目:
CORBAパッケージに実装されていない機能についてのコメント
-
-