com.ibm.as400.access
Class AS400Structure

java.lang.Object
  extended by com.ibm.as400.access.AS400Structure
All Implemented Interfaces:
AS400DataType, Serializable, Cloneable

public class AS400Structure
extends Object
implements AS400DataType

Provides a composite data type representing a structure of AS400DataType objects.

See Also:
Serialized Form

Field Summary
Modifier and Type Field and Description
 
Fields inherited from interface com.ibm.as400.access.AS400DataType
TYPE_ARRAY, TYPE_BIN2, TYPE_BIN4, TYPE_BIN8, TYPE_BYTE_ARRAY, TYPE_DECFLOAT, TYPE_FLOAT4, TYPE_FLOAT8, TYPE_PACKED, TYPE_STRUCTURE, TYPE_TEXT, TYPE_UBIN2, TYPE_UBIN4, TYPE_ZONED
 
Constructor Summary
Constructor and Description
AS400Structure()
          Constructs an AS400Structure object.
AS400Structure(AS400DataType[] members)
          Constructs an AS400Structure object.
 
Method Summary
Modifier and Type Method and Description
 Object clone()
          Creates a new AS400Structure object that is identical to the current instance.
 int getByteLength()
          Returns the byte length of the data type.
 Object getDefaultValue()
          Returns a Java object representing the default value of the data type.
 int getInstanceType()
          Returns TYPE_STRUCTURE.
 Class getJavaType()
          Returns the Java class that corresponds with this data type.
 AS400DataType[] getMembers()
          Returns the data types of the members of the structure.
 AS400DataType getMembers(int index)
          Returns the data type of the member of the structure at the specified index.
 int getNumberOfMembers()
          Returns the number of members in the data type.
 void setMembers(AS400DataType[] members)
          Sets the data types of the members of the structure.
 void setMembers(int index, AS400DataType member)
          Sets the data type of the member of the structure at the specified index.
 byte[] toBytes(Object javaValue)
          Converts the specified Java object to IBM i format.
 int toBytes(Object javaValue, byte[] as400Value)
          Converts the specified Java object into IBM i format in the specified byte array.
 int toBytes(Object javaValue, byte[] as400Value, int offset)
          Converts the specified Java object into IBM i format in the specified byte array.
 Object toObject(byte[] as400Value)
          Converts the specified IBM i data type to a Java object.
 Object toObject(byte[] as400Value, int offset)
          Converts the specified IBM i data type to a Java object.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AS400Structure

public AS400Structure()
Constructs an AS400Structure object. The setMembers() method must be called before any conversion methods or getByteLength() on this object.


AS400Structure

public AS400Structure(AS400DataType[] members)
Constructs an AS400Structure object.

Parameters:
members - The data types of the members of the structure.
Method Detail

clone

public Object clone()
Creates a new AS400Structure object that is identical to the current instance.

Specified by:
clone in interface AS400DataType
Overrides:
clone in class Object
Returns:
The new object.

getByteLength

public int getByteLength()
Returns the byte length of the data type. The members of this structure must be set before calling this method.

Specified by:
getByteLength in interface AS400DataType
Returns:
The number of bytes in the IBM i representation of the data type.

getDefaultValue

public Object getDefaultValue()
Returns a Java object representing the default value of the data type.

Specified by:
getDefaultValue in interface AS400DataType
Returns:
An Object array (Object[]) containing the default values for the members of the structure. The returned array contains one element for each member, in correct sequence.

getInstanceType

public int getInstanceType()
Returns TYPE_STRUCTURE.

Specified by:
getInstanceType in interface AS400DataType
Returns:
AS400DataType.TYPE_STRUCTURE.

getJavaType

public Class getJavaType()
Returns the Java class that corresponds with this data type.

Specified by:
getJavaType in interface AS400DataType
Returns:
Object[].class.

getNumberOfMembers

public int getNumberOfMembers()
Returns the number of members in the data type.

Returns:
The number of members in the structure data type. If the members have not been set, negative one (-1) is returned.

getMembers

public AS400DataType[] getMembers()
Returns the data types of the members of the structure.

Returns:
The data types of the members of the structure. If the members have not been set, null is returned.

getMembers

public AS400DataType getMembers(int index)
Returns the data type of the member of the structure at the specified index. The member array of this structure must be set before calling this method.

Parameters:
index - The index into the structure for the member. It must be greater than or equal to zero and less than or equal to the number of members in the data type.
Returns:
The data type of the member of the structure.

setMembers

public void setMembers(AS400DataType[] members)
Sets the data types of the members of the structure. This method must be called after a call to the null constructor and before a call to any of the conversion methods.

Parameters:
members - The data types of the members of the structure.

setMembers

public void setMembers(int index,
                       AS400DataType member)
Sets the data type of the member of the structure at the specified index. This method must be called after a call to the null constructor and before a call to any of the conversion methods. The member array of this structure must be set before calling this method.

Parameters:
index - The index into the structure for the member. It must be greater than or equal to zero and less than or equal to the number of members in the data type.
member - The data type of the member of the structure.

toBytes

public byte[] toBytes(Object javaValue)
Converts the specified Java object to IBM i format. The members of this structure must be set before calling this method.

Specified by:
toBytes in interface AS400DataType
Parameters:
javaValue - The object corresponding to the data type. It must be an Object array, the array must contain the correct number of elements, and each element must be of the correct type.
Returns:
The IBM i representation of the data type.

toBytes

public int toBytes(Object javaValue,
                   byte[] as400Value)
Converts the specified Java object into IBM i format in the specified byte array. The members of this structure must be set before calling this method.

Specified by:
toBytes in interface AS400DataType
Parameters:
javaValue - The object corresponding to the data type. It must be an Object array, the array must contain the correct number of elements, and each element must be of the correct type.
as400Value - The array to receive the data type in IBM i format. There must be enough space to hold the IBM i value.
Returns:
The number of bytes in the IBM i representation of the data type.

toBytes

public int toBytes(Object javaValue,
                   byte[] as400Value,
                   int offset)
Converts the specified Java object into IBM i format in the specified byte array. The members of this structure must be set before calling this method.

Specified by:
toBytes in interface AS400DataType
Parameters:
javaValue - The object corresponding to the data type. It must be an Object array, the array must contain the correct number of elements, and each element must be of the correct type.
as400Value - The array to receive the data type in IBM i format. There must be enough space to hold the IBM i value.
offset - The offset into the byte array for the start of the IBM i value. It must be greater than or equal to zero.
Returns:
The number of bytes in the IBM i representation of the data type.

toObject

public Object toObject(byte[] as400Value)
Converts the specified IBM i data type to a Java object. The members of this structure must be set before calling this method.

Specified by:
toObject in interface AS400DataType
Parameters:
as400Value - The array containing the data type in IBM i format. The entire data type must be represented.
Returns:
The array of Objects. Each element of this array is a Java object of the corresponding type of a member of this AS400Structure object.

toObject

public Object toObject(byte[] as400Value,
                       int offset)
Converts the specified IBM i data type to a Java object. The members of this structure must be set before calling this method.

Specified by:
toObject in interface AS400DataType
Parameters:
as400Value - The array containing the data type in IBM i format. The entire data type must be represented.
offset - The offset into the byte array for the start of the IBM i value. It must be greater than or equal to zero.
Returns:
The array of Objects. Each element of this array is a Java object of the corresponding type of a member of this AS400Structure object.