/* * @(#)Ref.java 1.27 04/05/05 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.sql; /** * The mapping in the Java programming language of an SQL REF * value, which is a reference to an SQL structured type value in the database. *

* SQL REF values are stored in a table that contains * instances of a referenceable SQL structured type, and each REF * value is a unique identifier for one instance in that table. * An SQL REF value may be used in place of the * SQL structured type it references, either as a column value in a * table or an attribute value in a structured type. *

* Because an SQL REF value is a logical pointer to an * SQL structured type, a Ref object is by default also a logical * pointer. Thus, retrieving an SQL REF value as * a Ref object does not materialize * the attributes of the structured type on the client. *

* A Ref object can be stored in the database using the * PreparedStatement.setRef method. * * @see Struct * @since 1.2 */ public interface Ref { /** * Retrieves the fully-qualified SQL name of the SQL structured type that * this Ref object references. * * @return the fully-qualified SQL name of the referenced SQL structured type * @exception SQLException if a database access error occurs * @since 1.2 */ String getBaseTypeName() throws SQLException; /** * Retrieves the referenced object and maps it to a Java type * using the given type map. * * @param map a java.util.Map object that contains * the mapping to use (the fully-qualified name of the SQL * structured type being referenced and the class object for * SQLData implementation to which the SQL * structured type will be mapped) * @return a Java Object that is the custom mapping for * the SQL structured type to which this Ref * object refers * @exception SQLException if a database access error occurs * @since 1.4 * @see #setObject */ Object getObject(java.util.Map> map) throws SQLException; /** * Retrieves the SQL structured type instance referenced by * this Ref object. If the connection's type map has an entry * for the structured type, the instance will be custom mapped to * the Java class indicated in the type map. Otherwise, the * structured type instance will be mapped to a Struct object. * * @return a Java Object that is the mapping for * the SQL structured type to which this Ref * object refers * @exception SQLException if a database access error occurs * @since 1.4 * @see #setObject */ Object getObject() throws SQLException; /** * Sets the structured type value that this Ref * object references to the given instance of Object. * The driver converts this to an SQL structured type when it * sends it to the database. * * @param value an Object representing the SQL * structured type instance that this * Ref object will reference * @exception SQLException if a database access error occurs * @since 1.4 * @see #getObject() * @see #getObject(Map) * @see PreparedStatement#setObject(int, Object) * @see CallableStatement#setObject(String, Object) */ void setObject(Object value) throws SQLException; }