>>-.---.-.-------ILSMARTLINKAGE---.-------------.--.--------><
+-/-+ | +-"namespace"-+ |
+-----NOILSMARTLINKAGE--------------------+
次の COBOL プログラムは、ILSMARTLINKAGE、ILCUTPREFIX(lnk-b-)、および ILCUTPREFIX(lnk-) でコンパイルされます。
program-id. BookLegacy.
...
linkage section.
01 lnk-function pic x.
01 lnk-b-details.
03 lnk-b-text-details.
05 lnk-b-title pic x(50).
05 lnk-b-type pic x(20).
05 lnk-b-author pic x(50).
03 lnk-b-stockno pic x(4).
03 lnk-b-retail pic 99v99.
03 lnk-b-onhand pic 9(5).
procedure division using by value lnk-function
by reference lnk-b-details.
Java では、次のように JVM マネージ COBOL で BookLegacy プログラムのデータにアクセスできます。
BookLegacy myBook = new BookLegacy();
//creates an object corresponding to the BookLegacy program
Details myDetails = new Details();
//creates an instance corresponding to the group lnk-bdetails
. . .
myDetails.setStockno("6666");
myDetails.setTitle("Managed COBOL");
myDetails.setAuthor("Mike Focus");
myDetails.setType("Reference");
myDetails.setRetail(new ScaledInteger(155, 5));
myDetails.setOnhand(20);
コメント:
この指令は、グループ・リンケージ項目をマネージ・コードに公開します。COBOL プログラムで通常生成されるクラスの他に、この指令は実質的に連絡節ですべての 01 レベル・グループ項目に 1 つのクラスを生成します。グループの各データ項目がこのクラスのプロパティとして公開され、ここでのプロパティは標準のマネージ・タイプです。従属グループは文字列として公開されます。
データ項目名からはハイフンが削除され、その削除されたハイフンに続く文字は大文字に変換されます。例えば、データ項目 author-name は AuthorName に名前変更されます。
ネームスペースを指定すると、この指令の結果として生成されるすべてのクラスはそのネームスペースの下でグループ化されます。