JavaTM Platform
Standard Ed. 6

org.omg.CORBA
クラス TypeCode

java.lang.Object
  上位を拡張 org.omg.CORBA.TypeCode
すべての実装されたインタフェース:
Serializable, IDLEntity

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()
           
 
メソッドの概要
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 オブジェクトが記述する値型の修飾子を示す定数を返します。
 
クラス 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 オブジェクト
戻り値:
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 パッケージに実装されていない機能についてのコメント

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。