モジュール java.corba
パッケージ 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_sequencekindフィールド、およびシーケンス要素の型およびシーケンスの長さのための、値booleanおよび10のフィールドを持つ。
    TypeCodeオブジェクトは、さまざまな方法で取得できます。
    1. Any.insert_Xメソッドの呼び出しから取得する。Xは基本的なIDL型。 このメソッドは、型XのTypeCodeオブジェクトを生成し、そのオブジェクトをAnyオブジェクトのtypeフィールドに割り当てる。
    2. ORBクラスのメソッドの呼び出しから取得する

      たとえば次のメソッドは、最大30文字のstringTypeCodeオブジェクトを生成します。

         org.omg.CORBA.TypeCode tcString = orb.create_string_tc(30);
       

      次では、5つのstringarrayについて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");
       
    3. ユーザー定義IDL型Holderクラスの_typeメソッドからの戻り値として取得する。 これらのHolderクラスは、idltojavaコンパイラによって生成される。
    4. CORBAインタフェース・リポジトリから取得する

    TypeCodeクラスのほとんどのメソッドはアクセス用メソッドであり、TypeCodeオブジェクトに格納されている情報は特定の型に固有です。 そのため、メソッドはメソッドが適用される種類の型コードでのみ呼び出される必要があります。 アクセス用メソッドが不適切な種類の型コードの情報にアクセスしようとすると、例外TypeCodePackage.BadKindがスローされます。 たとえば、discriminator_typeメソッドがunion以外で呼び出されると、BadKindがスローされます。これは、unionのみが識別子を持つためです。 次のリストは、どのメソッドがどの種類の型コードに適用されるかを示します。

    次のメソッドは、TypeCodeのすべての種類で呼び出すことができます。

    • equal
    • kind

    次のメソッドは、objrefstructunionenumaliasexceptionvaluevalue_boxnative、およびabstract_interfaceで呼び出すことができます。

    • id
    • name

    次のメソッドは、structunionenum、およびexceptionで呼び出すことができます。

    • member_count
    • member_name

    次のメソッドは、structunion、およびexceptionで呼び出すことができます。

    • member_type(int index)

    次のメソッドは、unionで呼び出すことができます。

    • member_label
    • discriminator_type
    • default_index

    次のメソッドは、stringsequence、およびarrayで呼び出すことができます。

    • length

    次のメソッドは、aliassequencearray、および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オブジェクトが記述する値型の修飾子を示す定数を返します。
    • コンストラクタの詳細

      • TypeCode

        public 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仕様を拡張し、このメソッドが例外も処理できるようにします。

        パラメータ:
        index - 名前がリクエストされるメンバーのインデックス
        戻り値:
        インデックスで識別されるメンバーの単純名または空の文字列
        例外:
        Bounds - インデックスが、型を構成するメンバーの数と等しいか、それよりも大きい場合
        BadKind - メソッドが、不適切な種類のTypeCodeオブジェクトで呼び出された場合
      • member_type

        public abstract TypeCode member_type​(int index)
                                      throws BadKind,
                                             Bounds
        指定されたインデックスで識別されるメンバーの型を記述するTypeCodeオブジェクトを取得します。

        member_typeメソッドは、構造体および共用体TypeCodeオブジェクトで呼び出すことができます。 Java IDLはCORBA仕様を拡張し、このメソッドが例外も処理できるようにします。

        パラメータ:
        index - 型情報がリクエストされるメンバーのインデックス
        戻り値:
        指定されたインデックスのメンバーを記述するTypeCodeオブジェクト
        例外:
        Bounds - インデックスが、型を構成するメンバーの数と等しいか、それよりも大きい場合
        BadKind - メソッドが、不適切な種類のTypeCodeオブジェクトで呼び出された場合
      • member_label

        public abstract Any member_label​(int index)
                                  throws BadKind,
                                         Bounds
        指定されたインデックスによって識別される共用体メンバーのラベルを取得します。 デフォルトのメンバーの場合、ラベルは0オクテットです。

        member_labelメソッドは、共用体TypeCodeオブジェクトだけで呼び出すことができます。

        パラメータ:
        index - ラベルがリクエストされる共用体メンバーのインデックス
        戻り値:
        リクエストされた共用体メンバーのラベルを記述するAnyオブジェクト、またはデフォルトのメンバーの0オクテット
        例外:
        Bounds - インデックスが、共用体を構成するメンバーの数と等しいか、それよりも大きい場合
        BadKind - メソッドが、共用体ではない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.valueVM_ABSTRACT.valueVM_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パッケージに実装されていない機能についてのコメント