IDL と Java のマッピング


(IDL コンパイラの Web サイトからダウンロード可能な) ツール idltojava は、OMG IDL インタフェースを読み込み、それを Java インタフェースに変換つまりマッピングします。また、必要に応じて、スタブ、スケルトン、ヘルパー、ホルダーなどのファイルを作成します。これらの .java ファイルは、OMG のドキュメント『IDL/Java Language Mapping』で指定されているマッピングに従って、IDL ファイルから生成されます。簡単に参照できるように、このドキュメントの中の 4 つの章をここに転載します。完全なドキュメントについては、『IDL Java Mapping 1.0』を参照してください。 転載されている 4 つの章を読むことで、OMG IDL と Java のマッピングについての詳細がわかります。IDL と Java のマッピングの基本的な概要についてだけ必要な場合は、 次の「IDL と Java のマッピングの概要」を参照してください。

OMG の仕様『IDL/Java Language Mapping』から転載されている章は、次のとおりです。


注: 第 5 章から第 8 章のみ転載されているので、マッピング仕様のほかの章へのリンクは使用できません。

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

CORBA のオブジェクトは、OMG IDL (Object Management Group Interface Definition Language) で定義されています。Java の開発で CORBA オブジェクトを使う場合は、CORBA オブジェクトのインタフェースが、事前に、Java のクラスとインタフェースにマッピングされていなければなりません。Java IDL に付属しているツール idltojava を使うと、自動的にマッピングが行われます。

この概要では、OMG IDL の構造と Java の構造の対応を示します。OMG IDL は、その名前が示すように、インタフェースを定義しています。Java のインタフェースと同じように、IDL のインタフェースには、インタフェースのオペレーションの実装 (Java でのメソッド) は含まれていません。つまり、IDL のインタフェースでは、オペレーションのシグニチャー (オペレーションの名前、戻り値のデータ型、受け取るパラメータのデータ型、および発生する例外) だけが定義されています。これらのオペレーションを実装するには、Java 言語で記述された Java クラスが提供されていなければなりません。

次の表は、IDL の主要な構造とそれに対応する Java の構造の一覧です。

IDL の構造

Java の構造

module

package

interface

interface、helper class、holder class

constant

public static final

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

enum、struct、union

class

sequence、配列

配列

exception

class

readonly attribute

属性値を参照するメソッド

readwrite attribute

属性値を参照および設定するメソッド

operation

method


注: CORBA のオペレーションが Java のオブジェクト型 (たとえば String) に対応する型を受け取る場合、パラメータの値として Java の null を渡すことはできません。このような場合は、指定されたオブジェクト型の空の形式 (空の String や空の配列など) を渡すようにします。パラメータの型が CORBA のオブジェクト参照の場合にのみ、Java の null をパラメータとして渡すことができます。この場合、null は、CORBA でのオブジェクト参照 nil として解釈されます。

ホーム


Copyright © 1995-98 Sun Microsystems, Inc. All Rights Reserved.