パッケージには、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は、OMG IDLからJava言語へのマッピング仕様ptc, 00-01-08の定義に従って、IDLで定義されたインタフェースをJavaクラスとインタフェースにマップします。それらは、「J2SE 5.0でのCORBAサポートの公式仕様」で説明されているこのバージョンのJavaプラットフォームでサポートされています。
この概要では、OMG IDLのデータ型とJavaのデータ型の対応を示します。OMG IDLは、その名前が示すように、インタフェースを定義しています。Javaのインタフェースと同じように、IDLのインタフェースには、インタフェースのオペレーションの実装(Javaでのメソッド)は含まれていません。つまり、IDLのインタフェースでは、オペレーションのシグニチャ(オペレーションの名前、戻り値のデータ型、受け取るパラメータのデータ型、および発生する例外)だけが定義されています。これらのオペレーションを実装するには、Java言語で記述されたJavaクラスが提供されていなければなりません。
次の表は、IDLの主要な構成要素とそれに対応するJavaの構成要素の一覧です。
IDLのデータ型 |
Java型 |
---|---|
module |
パッケージ |
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 |
クラス |
sequence、array |
array |
interface (非抽象) |
シグニチャ・インタフェースとオペレーション・インタフェース、ヘルパー・クラス、ホルダー・クラス |
interface (抽象) |
シグニチャ・インタフェース、ヘルパー・クラス、ホルダー・クラス |
constant (インタフェース内にない) |
public interface |
constant (インタフェース内) |
非抽象のJavaシグニチャ・インタフェースまたは抽象の単独Javaインタフェースにおけるフィールド |
exception |
クラス |
Any |
org.omg.CORBA.Any |
インタフェース内で入れ子の型宣言 |
「スコープ指定された」パッケージ |
typedef |
ヘルパー・クラス |
擬似オブジェクト |
擬似インタフェース |
読取り専用属性 |
アクセス用メソッド |
読書き属性 |
アクセスおよび変更用メソッド |
operation |
メソッド |