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

パッケージには、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は、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

メソッド


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