- 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
のすべての種類で呼び出すことができます。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
オブジェクトを返します。abstract TypeCode
content_type()
このTypeCode
オブジェクトによって記述されるオブジェクトのメンバーのIDL型を表すTypeCode
オブジェクトを返します。abstract int
default_index()
デフォルト・メンバーのインデックス、またはデフォルトのメンバーがない場合は -1を返します。abstract TypeCode
discriminator_type()
デフォルトのメンバーではないすべてのラベルを記述するTypeCode
オブジェクトを返します。abstract boolean
equal(TypeCode tc)
このTypeCode
オブジェクトと指定された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()
すべてのオプション名およびメンバー名フィールドを削除しますが、別名型コードはすべてそのまま残します。abstract String
id()
このTypeCode
オブジェクトの型を大域的に識別するリポジトリIDを取得します。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
オブジェクトは、それらが交換可能であり、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
パッケージに実装されていない機能についてのコメント
-
-