ILSMARTRESTRICT

Limits the generation of properties in ILSMARTLINKAGE classes to non-redefining elementary items.

Restriction: This directive is supported for JVM COBOL, but not native COBOL.

Syntax:

>>-.---.---.----.-ILSMARTRESTRICT-------><
   +-/-+   +-NO-+         

Properties:

Default: NOILSMARTRESTRICT
Phase: Syntax check
$SET: Initial
IDE equivalent:

Example:

The following COBOL program is compiled with ILSMARTLINKAGE, ILSMARTRESTRICT, 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).
       01 lnk-b-reprint-details redefines lnk-b-details.	
          03 lnk-b-invisible      pic x(20).
         
       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
    Details myDetails = new Details();
       //creates an instance corresponding to the group lnk-b-details
    . . .
       myDetails.setTitle("Great Expectations");             

Without ILSMARTRESTRICT set, you can also access other properties, such as group items and redefining elementary items:

...
myDetails.setDetails("Great Expectations     Novel       Dickens");
myDetails.setInvisible("can't see this");
...