Java ラッパーの別名の割り当て方法

EGL 生成プログラムは、Java™ ラッパーの名前に別名を割り当てる際に以下の規則を適用します。

  1. EGL の名前がすべて大文字の場合は、EGL 名を小文字に変換する。
  2. 名前がクラス名またはメソッド名の場合は、先頭の文字を大文字にする。(例えば、x の getter メソッドは getX() であって、getx() ではありません。)
  3. アンダースコアー (_) およびハイフン (-) をすべて削除する。(VisualAge® Generator との互換性モードを使用する場合は、EGL 名のハイフンは有効です。) アンダースコアーまたはハイフンの後に文字が続く場合は、その文字を大文字に変える。
  4. 名前が、区切り文字としてピリオド (.) を使用する修飾名である場合は、すべてのピリオドをアンダースコアーで置き換え、名前の先頭にアンダースコアーを追加する。
  5. 名前にドル記号 ($) が含まれる場合は、ドル記号を 2 つのアンダースコアーで置き換え、名前の先頭にアンダースコアーを追加する。
  6. 名前が Java キーワードである場合は、名前の先頭にアンダースコアーを追加する。
  7. 名前が * (アスタリスク。充てん文字項目を表す) である場合は、先頭のアスタリスクを Filler1、2 番目のアスタリスクを Filler2、(以下同様...) にリネームする。

また、プログラム・ラッパー、レコード・ラッパー、および副構造配列項目の Java ラッパー・クラス名には特別な規則が適用されます。 以降の項では、これらの規則について説明し、例を 1 つ示します。 一般に、生成されるラッパー・クラスのフィールドで名前が競合する場合は、クラス名と変数名を区別するために修飾名が使用されます。 それでも競合が解決されない場合は、生成時に例外がスローされます。

プログラム・ラッパー・クラス

レコード・パラメーター・ラッパーには、型定義名に適用される上記の規則を使用して 名前が付けられる。 レコード・ラッパー・クラス名がプログラム・クラス名またはプログラム・ラッパー・クラス名と競合する場合は、レコード・ラッパー・クラス名の最後に Record が追加される。

変数名の規則は以下のとおりです。
  1. レコード・パラメーター変数には、パラメーター名に適用される上記の規則を使用して 名前が付けられる。 したがって、get() メソッドと set() メソッドには、クラス名ではなくこれらの名前が組み込まれる。
  2. get メソッドおよび set メソッドの名前は、get または set の後に、上記の規則が適用されたパラメーター名を続けたものである。

レコードのラッパー・クラス

副構造配列項目クラス名の規則は以下のとおりです。
  1. 副構造配列項目は、レコードのラッパー・クラスのインナー・クラスになり、クラス名は項目名に対する上記の規則を適用することによって導き出される。 このクラス名が、組み込まれているレコードのクラス名と競合する場合は、項目クラス名に Structure が付加される。
  2. 項目クラス名が互いに競合する場合は、修飾項目名が使用される。
get メソッド名および set メソッド名の規則は以下のとおりです。
  1. メソッドの名前は、get または set の後に、上記の規則が適用された項目名を続けたものである。
  2. 項目名が互いに競合する場合は、修飾項目名が使用される。

副構造配列項目クラス

副構造配列項目クラス名の規則は以下のとおりです。
  1. 副構造配列項目は、組み込まれている副構造配列項目のために生成されるラッパー・クラスの インナー・クラスになり、クラス名は項目名に対する上記の規則を適用することによって導き出される。
  2. このクラス名が、組み込まれている副構造配列項目のクラス名と競合する場合は、項目クラス名に Structure が付加される。
get メソッド名および set メソッド名の規則は以下のとおりです。
  1. メソッドの名前は、get または set の後に、上記の規則が適用された項目名を続けたものである。
  2. 項目名が互いに競合する場合は、修飾項目名が使用される。

以下のサンプル・プログラムおよび生成される出力には、ラッパー生成中に予期されるものが示されています。

サンプル・プログラム

Program WrapperAlias(param1 RecordA)
  
end

Record RecordA type basicRecord
	10 itemA CHAR(10)[1];
	10 item_b CHAR(10)[1];
	10 item$C CHAR(10)[1];
	10 static CHAR(10)[1];
	10 itemC CHAR(20)[1];
		15 item CHAR(10)[1];
		15 itemD CHAR(10)[1];
	10 arrayItem CHAR(20)[5];
		15 innerItem1 CHAR(10)[1];
		15 innerItem2 CHAR(10)[1];
end

生成される出力

生成される出力の名前
出力 名前
プログラム・ラッパー・クラス WrapperaliasWrapper。 レコード・ラッパー・クラス RecordA のインスタンスである フィールド param1 が含まれています。
パラメーター・ラッパー・クラス RecordA。次のメソッドからアクセスできます。
  • getItemA (itemA から)
  • getItemB (先頭の item-b から)
  • get_Item__C (item$C から)
  • get_Static (static から)
  • get_ItemC_itemB (itemC 内の itemB から)
  • getItemD (itemD から)
  • getArrayItem (arrayItem から)
ArrayItem は、getInnerItem1 および getInnerItem2 を通じてアクセス可能なフィールドを含む RecordA のインナー・クラスです。
フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.