Java ラッパー生成の出力

Java™ ラッパー生成の出力は、以下のとおりです。

生成された Bean を使用して、サーブレット、EJB、または Java アプリケーションなどの非 EGL Java クラスからサーバー・プログラムへの呼び出しを折り返すことができます。以下のクラスの型が生成されます。

次の表に、生成される Java ラッパー・パーツのさまざまな型の名前を示します。

生成される Java ラッパー・パーツ名
パーツ型と名前 生成されるもの
P という名前のプログラム PWrapper.java 内の PWrapper というクラス
パラメーターとして使用される R という名前のレコード R.java 内の R というクラス
パラメーターとして使用されるレコード R 内の副構造領域 S R.java 内の R.S というクラス
L という名前のリンケージ・オプション・パーツ L.properties という名前のリンケージ・プロパティー・ファイル
  1. 指示されたパーツ型の場合は、複数のパーツが同じ名前で存在することも可能です。その場合、2 番目のパーツ名には追加の接尾部 $v2 が付けられます。3 番目のパーツ名には $v3 という接尾部、4 番目のパーツ名には $v4 という接尾部が付けられます。

プログラム・パーツを Java ラッパーとして生成するよう要求すると、EGL では、以下の実行可能プログラムについてそれぞれ Java クラスが作成されます。

また、レコードごとに生成されるクラスには、以下の特性を持つ各構造体項目の インナー・クラス (またはインナー・クラス内のクラス) が組み込まれます。
生成される各クラスはファイルに格納されます。 EGL 生成プログラムは、Java ラッパーで使用する名前を以下のように作成します。

プログラムのパラメーターの 1 つがレコードである場合、EGL では、その変数のラッパー・クラスも生成されます。プログラム Prog に Rec という型定義のレコード・パラメーターが ある場合、そのパラメーターのラッパー・クラスは Rec と呼ばれます。パラメーターの型定義の名前がプログラムと同じ場合は、そのパラメーターのラッパー・クラスに、「Record」という接尾部が付けられます。

レコードのパラメーターに配列項目がありその項目の下に他の項目がある場合は、生成プログラムによってラッパーも生成されます。この副構造配列ラッパーは、レコード・ラッパーのインナー・クラスになります。ほとんどの場合、AItem in Rec という副構造配列項目は、Rec.AItem というクラスによってラップされます。同じ名前を持つ 2 つの副構造配列項目をレコードに含めることもできますが、その場合は、項目の修飾名を使用して項目ラッパーに名前が付けられます。最初の AItem の修飾名が Top1.AItem で 2 番目の修飾名が Top2.Middle2.AItem である場合、それらのクラスの名前は Rec.Top1$_aItem および Rec.Top2$_middle2$_aItem になります。副構造配列の名前がプログラムの名前と同じである場合は、副構造配列のラッパー・クラスに Structure という接尾部が付けられます。

低レベル項目の値を設定および取得するメソッドは、各レコード・ラッパーおよび副構造配列ラッパーに生成されます。レコードまたは副構造配列内に同じ名前の低レベル項目が 2 つある場合は、生成プログラムにより、前の段落で説明した修飾名方式が使用されます。

その他のメソッドは、SQL レコード変数のラッパーに生成されます。レコード変数内の各項目に対して、生成プログラムは、NULL 標識値を取得および設定するメソッドとその SQL 長さ標識を取得および設定するメソッドを作成します。

クラスのコンパイルが済んだら、Javadoc ツールを使用して classname.html ファイル をビルドすることができます。HTML ファイルで、クラスのパブリック・インターフェースが説明されます。 Javadoc によって作成された HTML ファイルを使用する場合は、それが EGL Java ラッパーであることを確認してください。 VisualAge® Generator Java ラッパーから生成される HTML ファイルは、Java ラッパーから生成される HTML ファイルとは異なります。

副構造配列を持つレコード・パーツの例を次に示します。

   Record myRecord type basicRecord
     10 MyTopStructure[3];
       15 MyStructureItem01 CHAR(3);
       15 MyStructureItem02 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 プロパティー・ファイルとリンケージ・プロパティー・ファイルも生成します。

関連するタスク
Java ラッパーの生成

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005.