Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド |
目次 索引 |
第3部 EJB編 | > 第15章 EJBアプリケーションの呼出し方法 | > 15.10 IDL変換規則に関する補足資料 |
JavaからIDLに変換する際の変換規則を以下に示します。変換規則の詳細はhttp://java.sun.com/products/rmi-iiopを参照してください。
なお、【備考】に○がついているJavaの記述方法を使用する場合には注意してください。JavaクラスからIDLに変換する際に名前が重複し、配備時にエラーとなることがあります。
項 |
Java |
IDL |
備考 |
---|---|---|---|
1 |
パッケージ(package) |
モジュール(module) |
− |
2 |
IDLキーワード |
先頭に'_'を付加します。 |
○ |
3 |
先頭が'_' |
先頭に'J'を付加します。 |
○ |
4 |
'$'やユニコード文字などのIDLで定義できない文字 |
'U'とUnicode値を表す4桁の16進数(大文字)で置換します。 |
○ |
5 |
内部クラス |
外部クラス名と内部クラス名を2つの'_'で連結します。 |
○ |
6 |
オーバーロードされたメソッド |
以下の手順で変換します。
例)
|
○ |
7 |
大文字/小文字だけが異なる識別子 |
以下の手順で変換します。
例) jack_, Jack_0, jAcK_1_3 |
○ |
8 |
メソッド名が他の識別子(定数、フィールド)の名前と重複した場合 |
定数、フィールドの名前の末尾に'_'を付加し、メソッド名は変換しません。 |
○ |
9 |
変換後に名前の重なる場合 |
エラーとして扱います。 |
− |
10 |
void |
void |
− |
11 |
boolean |
boolean |
− |
12 |
char |
char |
− |
13 |
byte |
byte |
− |
14 |
short |
short |
− |
15 |
int |
long |
− |
16 |
long |
long long |
− |
17 |
float |
float |
− |
18 |
double |
double |
− |
19 |
リモートインタフェース
|
インタフェース(interface) |
− |
20 |
java.rmi.Remoteインタフェース |
::java::rmi::Remote |
− |
21 |
リモートインタフェースの継承関係 |
IDLの継承関係 |
− |
22 |
以下のいずれかの条件に当てはまるリモートインタフェースのメソッド
|
attribute
attribute名の取得手順を以下に示します。
|
○ |
23 |
リモートインタフェースの項目22以外のメソッド |
以下の手順で変換します。
|
− |
24 |
リモートインタフェースの定数(public final staticフィールド) |
Javaと同じ値を持ち、対応するIDL型の定数(const)に変換します。wstringとwcharの値はエスケープします。 |
− |
25 |
リモートインタフェースのバージョンチェック |
リポジトリID |
− |
26 |
直列化可能クラス
|
valuetype |
− |
27 |
直列化可能クラスで、org.omg.CORBA.portable.IDLEntityまたはorg.omg.CORBA.portable.ValueBaseを直接的または間接的に実装するクラス |
IDLにマッピングしません。 |
− |
28 |
直列化可能クラスの継承クラス関係 |
IDLの継承関係 |
− |
29 |
直列化可能クラスが実装するインタフェースとの関係(java.io.Serializableとjava.io.Externalizableは除く) |
|
− |
30 |
直列化可能クラスのメソッド |
IDLにマッピングしません。 |
− |
31 |
直列化可能クラスのコンストラクタ |
IDLにマッピングしません。 |
− |
32 |
直列化可能クラスの定数(public final staticフィールド) |
Javaと同じ値を持ち、対応するIDL型の定数に変換します。wstringとwcharの値はエスケープします。 |
− |
33 |
直列化可能クラスでjava.io.Externalizableを実装しているクラス |
custom valuetype |
− |
34 |
直列化可能クラスで以下の条件に当てはまる場合
|
custom valuetype |
− |
35 |
直列化可能クラスで以下の条件に当てはまる場合
|
左欄のフィールドserialPersistentFieldsに対応するフィールドだけIDLにマッピングします。 |
− |
36 |
直列化可能クラスのフィールド。
|
以下のように変換します。番号(1、2、...)は左欄の番号に対応します。
|
− |
37 |
直列化可能クラスのバージョンチェック |
リポジトリID |
− |
38 |
java.lang.Stringクラス
|
以下のように変換します。番号(1、2)は左欄の番号に対応します。
|
− |
39 |
java.lang.Classクラス |
::javax::rmi::CORBA::ClassDesc |
− |
40 |
配列 |
以下のようにorg.omg.CORBA..boxedRMIモジュールに展開します。
|
○ |
41 |
例外 |
exceptionとvaluetypeの両方に変換し、exceptionには対応するvaluetypeのフィールドを1つ定義します。
|
○ |
42 |
CORBAオブジェクト参照型 |
既存のinterfaceに変換される。新規にIDLは出力しません。 |
− |
43 |
org.omg.CORBA.Objectインタフェース |
Object |
− |
44 |
CORBAオブジェクト参照型以外のIDLエンティティ型インタフェース |
IDLエンティティを含む、"boxed"なvaluetypeに変換します。 |
− |
45 |
java.io.Serializableインタフェース |
::java::io::Serializable |
− |
46 |
java.io.Externalizableインタフェース |
::java::io::Externalizable |
− |
47 |
java.lang.Objectクラス |
::java::lang::_Object |
○ |
48 |
以下の条件に当てはまるインタフェース
|
abstract interface |
− |
49 |
項目48に当てはまるインタフェースの継承インタフェース |
継承abstract interface |
− |
50 |
項目48に当てはまるインタフェースのメソッド |
項目22、23と同様に変換します。 |
− |
51 |
項目48に当てはまるインタフェースの定数 |
項目24と同様に変換します。 |
− |
52 |
リモートインタフェースを実装するクラス
|
以下のように変換します。番号(1、2)は左欄の番号に対応します。
|
− |
53 |
項目19、20、42、43、44、45、46、48のどれにも当てはまらないインタフェース |
abstract value |
− |
54 |
項目26、27、33、34、38、39、47、52のどれにも当てはまらないクラス |
abstract value |
− |
*1) 非検査例外クラス:java.lang.RuntimeExceptionとそのサブクラス、およびjava.lang.Errorとそのサブクラス
*2) 検査例外クラス:非検査例外クラス以外の例外クラス
*3) RMI over IIOPの規約を完全に実装していません。動作には問題ありません。
*4) 本バージョンでは使用しないでください。
目次 索引 |