Java ラッパー生成の出力
Java™ ラッパー生成の出力は以下のとおりです。
- ビルド計画 (ビルド記述子オプション genProject が省略されている場合)
- Java サーバー・プログラムへの呼び出しのラッピングの JavaBeans (『Java ラッパー)』を参照)
- 特定の状況での EJB セッション Bean (詳しくは、『リンケージ・オプション・パーツ』にある CallLink エレメントの説明を参照)
- genProject が省略されている場合は、結果ファイル
- サーバーの Bean
- レコード・パラメーターの Bean
- レコード配列行の Bean
下の表に、生成される Java ラッパー・パーツのさまざまな型の名前を示します。
| パーツ型と名前 | 生成されるもの |
|---|---|
| P という名前のプログラム | PWrapper.java 内の PWrapper という名前のクラス |
| パラメーターまたは入力レコードとして使用される R という名前のレコード | R.java 内の R というクラス |
| パラメーターとして使用されるレコード R 内の副構造領域 S | R.java 内の R.S という名前のクラス |
| L という名前のリンケージ・オプション・パーツ | L.properties という名前のリンケージ・プロパティー・ファイル |
- 示されたパーツ型では、複数のパーツが同じ名前で存在する可能性があります。 そのような場合、2 番目のパーツの名前には追加の接尾部 $v2 が付加されます。 3 番目のパーツ名には $v3 の接尾部が付加され、4 番目以降も $v4 と続きます。
プログラム・パーツを Java ラッパーとして生成するように要求すると、EGL では以下の実行可能プログラムのそれぞれに対して Java クラスを生成します。
- プログラム・パーツ
- プログラム・パラメーターとして宣言される各レコード
- セッション Bean (リンケージ・オプション・パーツを指定し、生成されたプログラムの callLink エレメントに ejbCall のリンク・タイプがある場合)
- それらのレコードのいずれかの内部構造内にある
- 少なくとも 1 つの従属構造化フィールド (すなわち、副構造化) がある
- 配列である (この場合は副構造配列)
- 名前は小文字に変換されます。
- ハイフン、マイナス (-)、または下線 (_) はそれぞれ削除されます。 ハイフンまたは下線に続く文字は大文字に変更されます。
- 名前がクラス名として、またはメソッド名内で使用される場合は、先頭文字が大文字に変換されます。
プログラムへのパラメーターのいずれかがレコードである場合、EGL ではその変数に対するラッパー・クラスも生成します。 プログラム Prog に名前が Rec で型定義されたレコード・パラメーターがある場合、そのパラメーターのラッパー・クラスの名前は Rec になります。 パラメーターの型定義がプログラムと同じ名前である場合、そのパラメーターのラッパー・クラスには接尾部「Record」が付加されます。
レコード・パラメーターに配列フィールドがあり、そのフィールドの下に別のフィールドがある場合、生成プログラムはラッパーも生成します。 この副構造配列ラッパーは、レコード・ラッパーの内部クラスになります。 ほとんどの場合、Rec 内の副構造配列フィールド AField は、Rec.AField というクラスによってラップされます。 レコードに同じ名前の 2 つの副構造配列フィールドが含まれていることがあり、その場合のフィールド・ラッパーの名前は各フィールドの修飾名を使用して付けられます。 最初のフィールド AField の修飾名が Top1.AField であり、2 番目のフィールドの修飾名が Top2.Middle2.AField である場合、クラスの名前は Rec.Top1$_aField および Rec.Top2$_middle2$_aField になります。 副構造配列の名前がプログラムの名前と同じ場合、副構造配列のラッパー・クラスには接尾部 Structure が付加されます。
低レベルフィールドの値を設定および取得するメソッドは、各レコード・ラッパーおよび副構造配列ラッパーに生成されます。 レコードまたは副構造配列内の 2 つの低レベル・フィールドが同じ名前である場合、生成プログラムでは上記の段落で説明されている修飾名の方式を使用します。
追加のメソッドは、SQL レコードのラッパー内に生成されます。 そのレコードの各フィールドに対して、生成プログラムでは、そのヌル標識を取得および設定するメソッド、およびその SQL 長さ標識を取得および設定するメソッドを作成します。
クラスのコンパイルが完了すると、Javadoc ツールを使用して classname.html ファイルをビルドできます。その HTML ファイルには、クラスに対するパブリック・インターフェースが記述されます。 Javadoc によって作成された HTML ファイルを使用する場合は、それが EGL Java ラッパーであることを確認してください。VisualAge® Generator の Java ラッパーから生成される HTML ファイルは、EGL Java ラッパーから生成される HTML ファイルと異なります。
例
副構造配列があるレコード・パーツの例を以下に示します。
Record myRecord type basicRecord
10 MyTopStructure[3];
15 MyStructureField01 CHAR(3);
15 MyStructureField02 CHAR(3);
end
aliasWrapper.java
説明- alias
- プログラム・パーツで指定される別名です (存在する場合)。 外部名が指定されていない場合は、プログラム・パーツの名前が使用されます。
recordName.java
説明- recordName
- レコード・パーツの名前です。
- 配列名がレコード内で固有である場合、内部クラスはレコード・クラス内にあり、以下のような名前になります。
説明recordName.siName- recordName
- レコード・パーツの名前です。
- siName
- 配列の名前です。
- 配列名がレコード内で固有ではない場合、内部クラスの名前は配列の完全修飾名に基づいて、ドル記号 ($) および下線 (_) の組み合わせによって区別する修飾子が付けられます。
例えば、配列がレコードの第 3 レベルにある場合、生成されるクラスはレコード・クラスの内部クラスであり、次のような名前になります。
説明Topname$_Secondname$_Siname- Topname
- トップレベルの構造化フィールドの名前です。
- Secondname
- 第 2 レベルの構造化フィールドの名前です。
- Siname
- 副構造配列フィールドの名前です。
同じ名前の別の配列がレコードの最上位レベルに直接従属する場合は、内部クラスもレコード・クラス内にあり、以下のような名前になります。
説明Topname$_Siname- Topname
- 最上位レベルの構造化フィールドの名前です。
- Siname
- 副構造配列フィールドの名前です。
最後に、副構造配列の名前がレコード内で固有ではなく、その配列がレコード内で固有ではない名前の別の副構造配列に従属している場合について考えてみます。 従属する配列のクラスは、内部クラスの内部クラスとして生成されます。
Java ラッパーの生成時には、リンケージ・オプションがランタイムに設定されるように要求した場合、Java プロパティー・ファイルおよびリンケージ・プロパティー・ファイルも生成されます。