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

今回のリリースの Java™ 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 仕様の第 3 章で定義されています。IDL-to-Java コンパイラの idlj は、IDL で定義されたインタフェースを『OMG IDL to Java Language Mapping Specification, ptc, 00-01-08』の定義に従って 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

メソッド


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.