• 検索結果がありません。

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

第5章 アダプタクラスリファレンス

5.8 名前の番号付け

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

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

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

java.io.ObjectInputStream ク ラ ス は 、 java.io.ObjectInput イ ン タ フ ェ ー ス と java.io.InputStreamクラスを継承しています(下図参照)。

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

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

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

5.8 名前の番号付け

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

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

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

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

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

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

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

Javaのメソッド COBOLのメソッド

read() read

read(byte[]) read-01

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

read(byte[], int, int)

java-io-ObjectInput クラス

read-02

read() read

read(byte[]) read-01

java.io.InputStream クラス

read(byte[], int, int)

Java-io-InputStream クラス

read-02

read() read

java.io.ObjectInputS tream

クラス

read(byte[], int, int)

Java-io-ObjectInputStream

クラス read-02

注意事項

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

補足

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

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

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

第5章 アダプタクラスリファレンス

68

付録A メッセージ一覧

この章では、Jアダプタクラスジェネレータが出力するメッセージの内容および対処方法につい て説明します。

関連したドキュメント