Java IDL:IDL と Java 言語のマッピング


今回のリリースの 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』の中には、次のような要約しにくいトピックがあります。


IDL と Java 言語のマッピングの概要

CORBA のオブジェクトは、OMG IDL (Object Management Group Interface Definition Language) で定義されています。OMG IDL の構文およびセマンティクスは、CORBA/IIOP 2.3.1 Specificationの第 3 章で定義されています。IDL-to-Java コンパイラの idlj は、IDL で定義されたインタフェースをOMG IDL to Java Language Mapping Specification, ptc, 00-01-08』の定義に従って Java クラスとインタフェースにマップします。それらは、『Official Specifications for CORBA support in J2SE 5.0』で説明されているこのバージョンの Java プラットフォームでサポートされています。

この概要では、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、配列

array

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 トップへ