今回のリリースの JavaTM 2 Platform Standard Edition 5.0 には、Object Management Group (OMG) のインタフェース定義言語 (IDL) を読み込んで Java インタフェースに変換 (つまりマッピング) するコンパイラ、idlj が含まれています。使用されるコマンド行オプションに従い、idlj コンパイラはスタブ、スケルトン、ヘルパー、ホルダーなどのファイルを必要に応じて作成します。これらの .java ファイルは、OMG ドキュメント (PDF 形式)『OMG IDL to Java Language Mapping Specification, ptc, 00-01-08』とその改訂版『ptc/00-11-03, The new IDL to Java Mapping Chapter』で指定されているマッピングに従って、IDL ファイルから生成されます。バージョン 00-01-08 の IDL から Java 言語へのマッピングは、CORBA バージョン 2.3.2 に準拠しています。IDL から Java へのマッピングの基本的な概要については、「IDL と Java 言語のマッピングの概要」を参照してください。
OMG の仕様『IDL to Java Language Mapping』の中には、次のような要約しにくいトピックがあります。
CORBA のオブジェクトは、OMG IDL (Object Management Group Interface Definition Language) で定義されています。OMG IDL の構文およびセマンティクスは、CORBA/IIOP 2.3.1 仕様の第 3 章で定義されています。IDL-to-Java コンパイラ idlj は、IDL で定義されたインタフェースを『OMG IDL to Java Language Mapping Specification, ptc, 00-01-08』の定義に従って Java のクラスとインタフェースにマップします。このバージョンの Java プラットフォームでのサポートについては、「J2SE 5.0 での CORBA サポートの公式仕様」に説明があります。
この概要では、OMG IDL のデータ型と Java のデータ型の対応を示します。OMG IDL は、その名前が示すように、インタフェースを定義しています。Java のインタフェースと同じように、IDL のインタフェースには、インタフェースの操作の実装 (Java でのメソッド) は含まれていません。つまり、IDL のインタフェースでは、操作のシグニチャー (操作の名前、戻り値のデータ型、受け取るパラメータのデータ型、および発生する例外) だけが定義されています。これらの操作を実装するには、Java 言語で記述された Java クラスが提供されていなければなりません。
次の表は、IDL の主要な構成要素とそれに対応する Java の構成要素の一覧です。
IDL のデータ型 |
Java のデータ型 |
---|---|
module |
package |
boolean |
boolean |
char、wchar |
char |
octet |
byte |
string、wstring |
java.lang.String |
short、unsigned short |
short |
long、unsigned long |
int |
long long、unsigned long long |
long |
float |
float |
double |
double |
fixed |
java.math.BigDecimal |
enum、struct、union |
class |
sequence、配列 |
配列 |
interface (非抽象) |
シグニチャーインタフェースと操作インタフェース、ヘルパークラス、ホルダークラス |
interface (抽象) |
シグニチャーインタフェース、ヘルパークラス、ホルダークラス |
constant (インタフェース内にない) |
public interface |
constant (インタフェース内) |
非抽象の Java シグニチャーインタフェースまたは抽象の単独 Java インタフェースにおけるフィールド |
exception |
class |
Any |
org.omg.CORBA.Any |
インタフェース内で入れ子の型宣言 |
"scoped" package |
typedef |
helper classes |
擬似オブジェクト |
擬似 interface |
readonly attribute |
アクセス用メソッド |
readwrite attribute |
アクセスおよび変更用メソッド |
operation |
method |
Java IDL トップへ |