JavaTM 2 Platform
Std. Ed. v1.3

org.omg.CORBA
クラス TypeCode

java.lang.Object
  |
  +--org.omg.CORBA.TypeCode
すべての実装インタフェース:
IDLEntity, Serializable

public abstract class TypeCode
extends Object
implements IDLEntity

特定の CORBA データ型についての情報を格納するコンテナです。

TypeCode オブジェクトの使用法:

TypeCode オブジェクトの表現は不透明ですが、抽象的には、TypeCode オブジェクトの構成要素は次のとおりです。

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 のすべての種類で呼び出すことができます。

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

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

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

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

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

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

ほかの CORBA 疑似オブジェクトと違って、TypeCode オブジェクトは一般的な IDL パラメータとして渡すことができます。

parameter メソッドおよび param_count メソッド (推奨されない) はマッピングされません。

Java IDL は CORBA 仕様を拡張し、struct TypeCode で許可されているすべてのオペレーションが exception TypeCode でも許可されるようにします。

関連項目:
直列化された形式

コンストラクタの概要
TypeCode()
           
 
メソッドの概要
 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 オブジェクトが等しいかどうかを比較します。
 boolean equivalent(TypeCode tc)
          この TypeCode オブジェクトと指定された TypeCode オブジェクトが等しいかどうかを判定します。
 short fixed_digits()
          この TypeCode オブジェクトで記述された fixed 型の桁数を返します。
 short fixed_scale()
          この TypeCode オブジェクトで記述された fixed 型のスケールを返します。
 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 オブジェクトを取得します。
 short member_visibility(int index)
          指定されたインデックスのメンバの可視性を示す定数を返します。
abstract  String name()
          囲みスコープ内で TypeCode オブジェクトを識別する単純名を取得します。
 short type_modifier()
          この TypeCode オブジェクトが記述する値型の修飾子を示す定数を返します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

TypeCode

public TypeCode()
メソッドの詳細

equal

public abstract boolean equal(TypeCode tc)
この TypeCode オブジェクトと指定された TypeCode オブジェクトが等しいかどうかを比較します。2 つの TypeCode オブジェクトは、それらが交換可能であり、TypeCode オペレーションが適用されたときに同じ結果になる場合に等価です。
パラメータ:
tc - 比較対象の TypeCode オブジェクト
戻り値:
2 つのタイプコードが等しい場合は true、そうでない場合は false

equivalent

public boolean equivalent(TypeCode tc)
この TypeCode オブジェクトと指定された TypeCode オブジェクトが等しいかどうかを判定します。

実装されていません。パッケージコメントを参照してください。

パラメータ:
tc - このタイプコードと比較するタイプコード
戻り値:
指定されたタイプコードがこのタイプコードと同じ場合は true、そうでない場合は false
関連項目:
CORBA パッケージに実装されていない機能についてのコメント

get_compact_typecode

public 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 short fixed_digits()
                   throws BadKind
この TypeCode オブジェクトで記述された fixed 型の桁数を返します。たとえば、数値 3000.275d のタイプコードは fixed<7,3> です。7 は精度、3 はスケールです。
戻り値:
桁の総数
例外:
BadKind - このメソッドが、不適切な種類の TypeCode オブジェクトで呼び出された場合
関連項目:
CORBA パッケージに実装されていない機能についてのコメント

fixed_scale

public short fixed_scale()
                  throws BadKind
この TypeCode オブジェクトで記述された fixed 型のスケールを返します。正の数値は、小数点の右側にある桁数を示します。たとえば、数値 3000d のタイプコードは fixed<4,0> です。最初の数値は精度で、2 番目の数値はスケールです。負の数値も可能です。その場合は、小数点の左側にゼロを付けます。この場合、fixed<1,-3> は数値 3000d のタイプコードになります。
戻り値:
この TypeCode オブジェクトで記述される fixed 型のスケール
例外:
BadKind - このメソッドが、不適切な種類の TypeCode オブジェクトで呼び出された場合
関連項目:
CORBA パッケージに実装されていない機能についてのコメント

member_visibility

public 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 short type_modifier()
                    throws BadKind
この TypeCode オブジェクトが記述する値型の修飾子を示す定数を返します。返される定数は、VM_NONE.valueVM_ABSTRACT.valueVM_CUSTOM.value、または VM_TRUNCATABLE.value のどれかである必要があります。
戻り値:
この TypeCode オブジェクトで記述される値型を記述する定数
例外:
BadKind - このメソッドが値型ではない TypeCode オブジェクトで呼び出された場合
関連項目:
CORBA パッケージに実装されていない機能についてのコメント

concrete_base_type

public TypeCode concrete_base_type()
                            throws BadKind
この TypeCode オブジェクトで記述される値型の具象基底型を記述する TypeCode オブジェクトを返します。具象基底型がない場合は、null を返します。
戻り値:
この TypeCode オブジェクトで記述される値型の具象基底型を記述する TypeCode オブジェクト
例外:
BadKind - このメソッドが非 boxed 値型の TypeCode オブジェクトで呼び出された場合
関連項目:
CORBA パッケージに実装されていない機能についてのコメント

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.