項 |
Java |
IDL |
1 |
IDLキーワード
詳細は、Interstage Application Server リファレンスマニュアルの"識別子"を参照してください。
(例) oneway |
先頭に「_」を付加します。
(例) _oneway |
2 |
先頭が「_」
(例) _fred |
先頭に「J」を付加します。
(例) J_fred |
3 |
「$」やユニコード文字などのIDLで定義できない文字
(例)
a$b
x\u03bCy |
「U」とUnicode値を表す4桁の16進数(大文字)で置換します。
(例)
aU0024b
xU03BCy |
4 |
内部クラス
(例)
クラスBertの内部クラスFred |
外部クラス名と内部クラス名を「__」で連結します。
(例)
Bert__Fred |
5 |
オーバロードされたメソッド
(例)
void hello();
void hello(
int x,
a.b.c y,
int z); |
以下の手順で変換します。
- メソッド名に2つの「_」を付加
- IDL変換後の型を2つの「_」で連結
- スペースを「_」で置換
(例)
void hello__();
void hello__long_a_b_c__long(
in long x,
in ::a::b::c y,
in long z);
継承元と継承先で同名のメソッドが存在した場合(オーバライドを含む)は継承先のメソッド名を変換します。 |
6 |
大文字/小文字だけ異なる識別子
(例)
jack
Jack
jAcK |
以下の手順で変換します。
- 「_」を付加
- 大文字の位置を示す10進インデックスのリストを「_」で連結(0から始まるインデックス)
(例)
jack_
Jack_0
jAcK_1_3
大文字/小文字の区別だけで識別されるパッケージ名、クラス名、インタフェース名はサポートしません。 |
7 |
メソッド名が他の識別子(定数、フィールド)の名前と重複した場合
(例)
定数「foo」とメソッド「foo」 |
定数、フィールドの名前の末尾に「_」を付加し、メソッド名は変換しません。
(例)
定数「foo_」とメソッド「foo」 |
8 |
リモートインタフェースの以下の条件に当てはまるメソッド
1. get<name>メソッドとset<name>メソッドのペアがあり次の条件に当てはまる場合。
- get<name>メソッドの引数がない。
- set<name>メソッドの引数が1つで、戻り値がvoid
- get<name>メソッドの復帰値の型がset<name>メソッドの引数の型と同じ
- get<name>とset<name>がjava.rmi.RemoteExceptionとそのサブクラス以外の検査例外クラス(*1)を生成しない。
2. get<name>メソッドが次の条件に当てはまる場合。
- 引数がない
- 復帰値の型がvoidでない
- java.rmi.RemoteExceptionとそのサブクラス以外の検査例外クラス(*1)を生成しない。
3. is<name>メソッドとset<name>メソッドのペアがあり次の条件に当てはまる場合。
- is<name>メソッドの引数がない。
- set<name>メソッドの引数が1つで、戻り値がvoid
- is<name>メソッドの復帰値の型とset<name>メソッドの引数の型がboolean
- is<name>とset<name>がjava.rmi.RemoteExceptionとそのサブクラス以外の検査例外クラス(*1)を生成しない。
4. is<name>メソッドが次の条件に当てはまる場合。
- 引数がない
- 復帰値の型がboolean
- java.rmi.RemoteExceptionとそのサブクラス以外の検査例外クラス(*1)を生成しない。
|
attribute
以下のように変換します。番号(1、2、...)は左欄の番号に対応します。
- set<name>メソッドの引数の型に対応する読取り書込み可能attribute
- get<name>メソッドの復帰値の型に対応する読取り専用attribute
- set<name>メソッドの引数の型に対応する読取り書込み可能attribute
- is<name>メソッドの復帰値の型に対応する読取り専用attribute
attribute名の取得手順を以下に示します。
- メソッド名先頭の「get」、「is」、または「set」に続く文字を展開する。
- 最初の文字を小文字に変換する。ただし、1文字目と2文字目の両方が大文字の場合は変換しない。
- 他の識別子名と名前が重複した場合は語尾に「__」を付加する。
|
9 |
配列
(例1)
boolean[]
(例2)
long[]
(例3)
a.b.C[]
(例4)
x.Y[][] |
以下のようにorg.omg.CORBA.boxedRMIモジュールに展開します。
(例1)
モジュール::org::omg::boxedRMIを定義し、以下のvaluetypeを展開する。
valuetype seq1_boolean sequence<boolean>
(例2)
モジュール::org::omg::boxedRMIを定義し、以下のvaluetypeを展開する。
valuetype seq1_long_long sequence<long long>;
(例3)
モジュール::org::omg::boxedRMI::a::bを定義し、以下のvaluetypeを展開する。
valuetype seq1_C sequence<::a::b::C>;
(例4)
モジュール ::org::omg::boxedRMI::xを定義し、以下のvaluetypeを展開する。
valuetype seq1_Y sequence<::x::Y>;
valuetype seq2_Y sequence<seq1_Y>; |
10 |
例外 |
exceptionとvaluetypeの両方に変換し、exceptionには対応するvaluetypeのフィールドを1つ定義します。
・Exception
以下の手順で変換し、メソッド名のraises節に定義する。
- 末尾部分が「Exception」の場合は削除
- 名前の末尾に「Ex」を付加
- 他の変換規則を適用
・valuetype
対応するexceptionに名前が「value」の単一のデータメンバで定義される。 |
11 |
java.lang.Objectクラス |
::java::lang::_Object
//IDL
module java {
module lang {
typedef any _Object;
};
}; |