
Constructs a new
SerialArray object from the given
Array object, using the given type map for the custom
mapping of each element when the elements are SQL UDTs.
This method does custom mapping if the array elements are a UDT
and the given type map has an entry for that UDT.
Custom mapping is recursive,
meaning that if, for instance, an element of an SQL structured type
is an SQL structured type that itself has an element that is an SQL
structured type, each structured type that has a custom mapping will be
mapped according to the given type map.
The new SerialArray
object contains the same elements as the Array object
from which it is built, except when the base type is the SQL type
STRUCT, ARRAY, BLOB,
CLOB, DATALINK or JAVA_OBJECT.
In this case, each element in the new
SerialArray object is the appropriate serialized form,
that is, a SerialStruct, SerialArray,
SerialBlob, SerialClob,
SerialDatalink, or SerialJavaObject object.
Note: (1) The Array object from which a SerialArray
object is created must have materialized the SQL ARRAY value's
data on the client before it is passed to the constructor. Otherwise,
the new SerialArray object will contain no data.
Note: (2) If the Array contains java.sql.Types.JAVA_OBJECT
types, the SerialJavaObject constructor is called where checks
are made to ensure this object is serializable.
Note: (3) The Array object supplied to this constructor cannot
return null for any Array.getArray() methods.
SerialArray cannot serialize null array values.
Parameters:
- array - the Array object to be serialized
- map - a java.util.Map object in which
each entry consists of 1) a String object
giving the fully qualified name of a UDT (an SQL structured type or
distinct type) and 2) the
Class object for the SQLData implementation
that defines how the UDT is to be mapped. The map
parameter does not have any effect for Blob,
Clob, DATALINK, or
JAVA_OBJECT types.
Throws:
- SerialException - if an error occurs serializing the
Array object
- SQLException - if a database access error occurs or if the
array or the map values are null