Currently REXX supports only the following types as INOUT and OUT arguments: boolean, char, octet, short, ushort, long, ulong, float, double, and string. Because INOUT and OUT arguments actually update the object data directly, you must use special objects for these arguments. REXX provides a set of SOM objects specifically for these arguments.
For each supported INOUT or OUT argument type, there is a matching class
that you must use to create the object for a method requiring that type
of argument. New instances of these supplied classes have a default value
of 0 or '' (a null string). The following table lists the types with the
matching Class names and the default values assigned to new instances: ┌────────────────────────────────────────────────┐
│ Table 2. Class names for SOM types │
├────────────┬─────────────────┬─────────────────┤
│ CLASS NAME │ CLASS TYPE │ DEFAULT VALUE │
├────────────┼─────────────────┼─────────────────┤
│ boolean │ DLFBoolean │ 0 (false) │
├────────────┼─────────────────┼─────────────────┤
│ char │ DLFChar │ 0 (NULL) │
├────────────┼─────────────────┼─────────────────┤
│ octet │ DLFOctet │ 0 (NULL) │
├────────────┼─────────────────┼─────────────────┤
│ short │ DLFShort │ 0 │
├────────────┼─────────────────┼─────────────────┤
│ ushort │ DLFUShort │ 0 │
├────────────┼─────────────────┼─────────────────┤
│ long │ DLFLong │ 0 │
├────────────┼─────────────────┼─────────────────┤
│ ulong │ DLFULong │ 0 │
├────────────┼─────────────────┼─────────────────┤
│ float │ DLFFloat │ 0 │
├────────────┼─────────────────┼─────────────────┤
│ double │ DLFDouble │ 0 │
├────────────┼─────────────────┼─────────────────┤
│ string │ DLFString │ '' (a null │
│ │ │ string) │
└────────────┴─────────────────┴─────────────────┘
This means that to call a method that requires an INOUT argument of type long, you must pass an object of the DLFLong class as the argument for that method. This restriction is only for INOUT and OUT arguments; for any IN argument you can specify an instance of any of the special classes or appropriate REXX classes.
To use any of the special classes within REXX you simply need to import the classes (see Importing SOM Classes).
All instances of these classes support the following methods:
In addition, DLFString has the following methods: