>>-.---.-.----.-ILSMARTNEST------>< +-\-+ +-NO-+
Default: | NOILSMARTNEST |
Phase: | Syntax check |
$SET: | Any |
IDE Equivalent: | None |
By creating nested classes, programs within the same compilation unit can have linkage records with the same name.
The following COBOL program is compiled with ILSMARTLINKAGE, ILSMARTNEST, ILCUTPREFIX(lnk-b-) and 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). 03 lnk-b-sold pic 9(5). procedure division using by value lnk-function by reference lnk-b-details.
In Java, you can access the data in BookLegacy program in JVM COBOL as follows:
BookLegacy myBook = new BookLegacy(); //creates an object corresponding to the BookLegacy program BookLegacy.Details myDetails = new BookLegacy.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);