Conversion classes for composite types

Conversion classes for composite types are as follows:

The following example shows conversion from a Java structure to a byte array and back again. The example assumes that the same data format is used for both sending and receiving data.

                       // Create a structure of data types
                       // that corresponds to a structure
                       // that contains:
                       //    - a four-byte number
                       //    - four bytes of pad
                       //    - an eight-byte number
                       //    - 40 characters
     AS400DataType[] myStruct =
     {
        new AS400Bin4(),
        new AS400ByteArray(4),
        new AS400Float8(),
        new AS400Text(40)
     };

                       // Create a conversion object using
                       // the structure.
     AS400Structure myConverter = new AS400Structure(myStruct);

                       // Create the Java object that holds
                       // the data to send to the server.
     Object[] myData =
     {
          new Integer(88),        // the four-byte number
          new byte[0],            // the pad (let the conversion object 0 pad)
          new Double(23.45),      // the eight-byte floating point number
          "This is my structure"  // the character string
     };

                       // Convert from Java object to byte array.
     byte[] myAS400Data = myConverter.toBytes(myData);


                       // ... send the byte array to the
                       // server. Get data back from the
                       // server.  The returned data will
                       // also be a byte array.


                       // Convert the returned data from
                       // iSeries to Java format.
     Object[] myRoundTripData =
                 (Object[])myConverter.toObject(myAS400Data,0);

                       // Pull the third object out of the
                       // structure. This is the double.
     Double doubleObject = (Double) myRoundTripData[2];

                       // Extract the simple Java type from
                       // the Java object.
     double d = doubleObject.doubleValue();