説明
パブリックでないインスタンスメソッド(スタティックでないメソッド)は、COBOLのオブジェクトメソッドにマッピングします。
展開形式
METHOD-ID. 内部メソッド名 AS "外部メソッド名" [OVERRIDE]. … DATA DIVISION. LINKAGE SECTION. [パラメタ … ] [復帰値 … ] PROCEDURE DIVISION [USING パラメタ …] [RETURNING 復帰値] RAISING FJ-JAVA-ERROR [例外クラス名]. END METHOD 内部メソッド名.
生成規則
内部メソッド名は、Jアダプタクラスジェネレータが内部的に使う名前で、クラス利用者からは見えません。
外部メソッド名は、このメソッドを一意に識別するための名前です。クラス利用者は、外部メソッド名によりメソッドを識別します。
外部メソッド名は、以下の規則により生成します。
Javaメソッド名[-nn]
Javaのメソッド名をそのままCOBOLのメソッド名とする
すでに同名のメソッドが割り当てられている場合、名前の重なりを避けるために、2番目以降のメソッド名に対し、ハイフン(-)に続く2けたの番号(01~99)を振る(“5.8 名前の番号付け”参照)
160文字を超えた場合は、161文字目以降を切り捨てる
メソッドにパラメタが宣言されている場合、対応するパラメタを生成します。パラメタのデータ型の対応については、“5.5.1 データ型”を参照してください。
メソッドに復帰値が宣言されている場合、対応する復帰値を生成します。復帰値のデータ型の対応については、“5.5.1 データ型”を参照してください。
メソッドで宣言された例外およびFJ-JAVA-ERRORを指定したRAISING指定を生成します。
生成例
java.util.DateクラスのインスタンスメソッドgetTime()に対応するオブジェクトメソッドは、以下のように生成します。
METHOD-ID. JM-GETTIME AS "getTime". [1] … LINKAGE SECTION. 01 RTN-VALUE PIC S9(18) COMP-5. PROCEDURE DIVISION RETURNING RTN-VALUE RAISING FJ-JAVA-ERROR. … END METHOD JM-GETTIME.
“getTime”と言う名前のメソッドは1つだけなので、番号をつけずに“getTime”と言う名前のメソッドを生成します。
ポイント
Javaメソッド名からCOBOLメソッド名を生成する際に、名前の一意性を保つために番号を付加します。どのJavaメソッドがどのCOBOLメソッドに対応するかは、メソッド名対応表ファイルに出力されるJavaメソッドの引数の型から識別できます。