ページの先頭行へ戻る
J アダプタクラスジェネレータ V11.0 ユーザーズガイド
FUJITSU Software

5.8.4 実行単位全体で一意にする名前

メソッド名には、Javaのメソッド名をそのまま使います。しかし、Javaでは同名でかつパラメタの異なるメソッドを複数定義できるので、COBOLのメソッド名に番号をつけて区別します。

ただし、オブジェクト指向の特徴である多態性(多様性)を生かすために、同名かつ同じパラメタを持つメソッドには、常に同じ名前をつけます。この対応関係は、Jアダプタクラスジェネレータを使うCOBOLプログラムの実行単位内で、一貫していなければなりません。たとえば、java.io.ObjectInputStreamクラスは、java.io.ObjectInputインタフェースとjava.io.InputStreamクラスを継承しています(下図参照)。

図5.2 java.io.ObjectInputインタフェース、java.io.InputStreamクラスおよびjava.io.ObjectInputStreamクラスの関係

これらに対応するアダプタクラスは、同じパラメタを持つreadメソッドに対して、同じ名前のメソッドを生成する必要があります。

Jアダプタクラスジェネレータは、クラス/インタフェースをまたがってメソッド名の対応関係を管理するために、生成ァイルを使用します。そして、同名のメソッドに対し、以下の規則で番号をつけます。

  1. 生成名管理ファイルに同名・同パラメタのメソッドが登録されていないか探します。

  2. 見つかった場合、対応するCOBOLメソッド名を使います。

  3. 見つからなかった場合、新しいCOBOLメソッド名を生成し、生成名管理ファイルに登録します。

  4. COBOLメソッド名は、以下の規則で生成します。

    • 最初に登録するCOBOL名は、Javaのメソッド名と同じ

    • 2番目以降は、01から順に昇順に番号をつける

java.io.ObjectInputインタフェース、java.io.InputStreamクラスおよび
java.io.ObjectInputStreamクラスのreadメソッドに対応するオブジェクトメソッドは、以下の名前になります。

Javaのメソッド

COBOLのメソッド

java.io.ObjectInput
インタフェース

read()

java-io-ObjectInput
クラス

read

read(byte[])

read-01

read(byte[], int, int)

read-02

java.io.InputStream
クラス

read()

Java-io-InputStream
クラス

read

read(byte[])

read-01

read(byte[], int, int)

read-02

java.io.ObjectInputStream
クラス

read()

Java-io-ObjectInputStream
クラス

read

read(byte[], int, int)

read-02

注意

アダプタクラスを生成する順番により、番号のつけ方が変わることがあります。同じ環境で使うアダプタクラスの生成には、同じ生成名管理ファイルを使用してください。

ポイント

  • これらの規則は、クラスメソッドにも適用します。(“5.5.5 クラスメソッド”参照)

  • Javaのフィールド(変数)(クラス/インスタンス)は、COBOLのプロパティメソッドに対応付けます。プロパティメソッドの場合も、メソッドと同じ規則を適用します。(“5.5.4 クラス変数”、“5.5.6 インスタンス変数”参照)

  • アダプタクラス生成時に使用するJDKのバージョンにより、番号のつけ方が変わることがあります。