Module java.sql.rowset
Package javax.sql.rowset.serial

## Class SerialRef

- java.lang.Object
- - javax.sql.rowset.serial.SerialRef

- All Implemented Interfaces:
    `Serializable`, `Cloneable`, `Ref`

      public class SerialRef
      extends Object
      implements Ref, Serializable, Cloneable

  A serialized mapping of a `Ref` object, which is the mapping in the Java programming language of an SQL `REF` value.

  The `SerialRef` class provides a constructor for creating a `SerialRef` instance from a `Ref` object and provides methods for getting and setting the `Ref` object.

  ### Thread safety

  A SerialRef is not safe for use by multiple concurrent threads. If a SerialRef is to be used by more than one thread then access to the SerialRef should be controlled by appropriate synchronization.
  Since:
    1.5
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SerialRef​(Ref ref)` | Constructs a `SerialRef` object from the given `Ref` object.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `clone()` | Returns a clone of this `SerialRef`.
    `boolean` | `equals​(Object obj)` | Compares this SerialRef to the specified object.
    `String` | `getBaseTypeName()` | Returns a string describing the base type name of the `Ref`.
    `Object` | `getObject()` | Returns an `Object` representing the SQL structured type to which this `SerialRef` object refers.
    `Object` | `getObject​(Map<String,​Class<?>> map)` | Returns an `Object` representing the SQL structured type to which this `SerialRef` object refers.
    `int` | `hashCode()` | Returns a hash code for this `SerialRef`.
    `void` | `setObject​(Object obj)` | Sets the SQL structured type that this `SerialRef` object references to the given `Object` object.

    - ### Methods declared in class java.lang.Object

      `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SerialRef

          public SerialRef​(Ref ref)
                    throws SerialException,
                           SQLException

      Constructs a `SerialRef` object from the given `Ref` object.
      Parameters:
        `ref` - a Ref object; cannot be `null`
      Throws:
        `SQLException` - if a database access occurs; if `ref` is `null`; or if the `Ref` object returns a `null` value base type name.
        `SerialException` - if an error occurs serializing the `Ref` object

  - ### Method Detail

    - #### getBaseTypeName

          public String getBaseTypeName()
                                 throws SerialException

      Returns a string describing the base type name of the `Ref`.
      Specified by:
        `getBaseTypeName` in interface `Ref`
      Returns:
        a string of the base type name of the Ref
      Throws:
        `SerialException` - in no Ref object has been set

    - #### getObject

          public Object getObject​(Map<String,​Class<?>> map)
                           throws SerialException

      Returns an `Object` representing the SQL structured type to which this `SerialRef` object refers. The attributes of the structured type are mapped according to the given type map.
      Specified by:
        `getObject` in interface `Ref`
      Parameters:
        `map` - a `java.util.Map` object containing zero or more entries, with each entry consisting of 1) a `String` giving the fully qualified name of a UDT and 2) the `Class` object for the `SQLData` implementation that defines how the UDT is to be mapped
      Returns:
        an object instance resolved from the Ref reference and mapped according to the supplied type map
      Throws:
        `SerialException` - if an error is encountered in the reference resolution
      See Also:
        `Ref.setObject(java.lang.Object)`

    - #### getObject

          public Object getObject()
                           throws SerialException

      Returns an `Object` representing the SQL structured type to which this `SerialRef` object refers.
      Specified by:
        `getObject` in interface `Ref`
      Returns:
        an object instance resolved from the Ref reference
      Throws:
        `SerialException` - if an error is encountered in the reference resolution
      See Also:
        `Ref.setObject(java.lang.Object)`

    - #### setObject

          public void setObject​(Object obj)
                         throws SerialException

      Sets the SQL structured type that this `SerialRef` object references to the given `Object` object.
      Specified by:
        `setObject` in interface `Ref`
      Parameters:
        `obj` - an `Object` representing the SQL structured type to be referenced
      Throws:
        `SerialException` - if an error is encountered generating the the structured type referenced by this `SerialRef` object
      See Also:
        `Ref.getObject()`, `Ref.getObject(Map)`, `PreparedStatement.setObject(int, Object)`, `CallableStatement.setObject(String, Object)`

    - #### equals

          public boolean equals​(Object obj)

      Compares this SerialRef to the specified object. The result is `true` if and only if the argument is not `null` and is a `SerialRef` object that represents the same object as this object.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `obj` - The object to compare this `SerialRef` against
      Returns:
        `true` if the given object represents a `SerialRef` equivalent to this SerialRef, `false` otherwise
      See Also:
        `Object.hashCode()`, `HashMap`

    - #### hashCode

          public int hashCode()

      Returns a hash code for this `SerialRef`.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        a hash code value for this object.
      See Also:
        `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`

    - #### clone

          public Object clone()

      Returns a clone of this `SerialRef`. The underlying `Ref` object will be set to null.
      Overrides:
        `clone` in class `Object`
      Returns:
        a clone of this SerialRef
      See Also:
        `Cloneable`