- /*
 - * @(#)SQLOutput.java 1.14 00/02/02
 - *
 - * Copyright 1998-2000 Sun Microsystems, Inc. All Rights Reserved.
 - *
 - * This software is the proprietary information of Sun Microsystems, Inc.
 - * Use is subject to license terms.
 - *
 - */
 - package java.sql;
 - /**
 - * The output stream for writing the attributes of a user-defined
 - * type back to the database. This interface, used
 - * only for custom mapping, is used by the driver, and its
 - * methods are never directly invoked by a programmer.
 - * <p>When an object of a class implementing the interface
 - * <code>SQLData</code> is passed as an argument to an SQL statement, the
 - * JDBC driver calls the method <code>SQLData.getSQLType</code> to
 - * determine the kind of SQL
 - * datum being passed to the database.
 - * The driver then creates an instance of <code>SQLOutput</code> and
 - * passes it to the method <code>SQLData.writeSQL</code>.
 - * The method <code>writeSQL</code> in turn calls the
 - * appropriate <code>SQLOutput.writeXXX</code> methods
 - * to write data from the <code>SQLData</code> object to
 - * the <code>SQLOutput</code> output stream as the
 - * representation of an SQL user-defined type.
 - * @since 1.2
 - * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
 - * 2.0 API</a>
 - */
 - public interface SQLOutput {
 - //================================================================
 - // Methods for writing attributes to the stream of SQL data.
 - // These methods correspond to the column-accessor methods of
 - // java.sql.ResultSet.
 - //================================================================
 - /**
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeString(String x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a Java boolean.
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeBoolean(boolean x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a Java byte.
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeByte(byte x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a Java short.
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeShort(short x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a Java int.
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeInt(int x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a Java long.
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeLong(long x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a Java float.
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeFloat(float x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a Java double.
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeDouble(double x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a java.math.BigDecimal object.
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeBigDecimal(java.math.BigDecimal x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as an array of bytes.
 - * Writes the next attribute to the stream as a <code>String</code>
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeBytes(byte[] x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a java.sql.Date object.
 - * Writes the next attribute to the stream as a <code>java.sql.Date</code> object
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeDate(java.sql.Date x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a java.sql.Time object.
 - * Writes the next attribute to the stream as a <code>java.sql.Date</code> object
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeTime(java.sql.Time x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a java.sql.Timestamp object.
 - * Writes the next attribute to the stream as a <code>java.sql.Date</code> object
 - * in the Java programming language.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeTimestamp(java.sql.Timestamp x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a stream of Unicode characters.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeCharacterStream(java.io.Reader x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a stream of ASCII characters.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeAsciiStream(java.io.InputStream x) throws SQLException;
 - /**
 - * Writes the next attribute to the stream as a stream of uninterpreted
 - * bytes.
 - *
 - * @param x the value to pass to the database
 - * @exception SQLException if a database access error occurs
 - */
 - void writeBinaryStream(java.io.InputStream x) throws SQLException;
 - //================================================================
 - // Methods for writing items of SQL user-defined types to the stream.
 - // These methods pass objects to the database as values of SQL
 - // Structured Types, Distinct Types, Constructed Types, and Locator
 - // Types. They decompose the Java object(s) and write leaf data
 - // items using the methods above.
 - //================================================================
 - /**
 - * Writes to the stream the data contained in the given
 - * <code>SQLData</code> object.
 - * When the <code>SQLData</code> object is <code>null</code>, this
 - * method writes an SQL <code>NULL</code> to the stream.
 - * Otherwise, it calls the <code>SQLData.writeSQL</code>
 - * method of the given object, which
 - * writes the object's attributes to the stream.
 - * The implementation of the method <code>SQLData.writeSQ</code>
 - * calls the appropriate <code>SQLOutput.writeXXX</code> method(s)
 - * for writing each of the object's attributes in order.
 - * The attributes must be read from an <code>SQLInput</code>
 - * input stream and written to an <code>SQLOutput</code>
 - * output stream in the same order in which they were
 - * listed in the SQL definition of the user-defined type.
 - *
 - * @param x the object representing data of an SQL structured or
 - * distinct type
 - * @exception SQLException if a database access error occurs
 - */
 - void writeObject(SQLData x) throws SQLException;
 - /**
 - * Writes an SQL <code>REF</code> value to the stream.
 - *
 - * @param x a <code>Ref</code> object representing data of an SQL
 - * <code>REF</code> value
 - * @exception SQLException if a database access error occurs
 - */
 - void writeRef(Ref x) throws SQLException;
 - /**
 - * Writes an SQL <code>BLOB</code> value to the stream.
 - *
 - * @param x a <code>Blob</code> object representing data of an SQL
 - * <code>BLOB</code> value
 - *
 - * @exception SQLException if a database access error occurs
 - */
 - void writeBlob(Blob x) throws SQLException;
 - /**
 - * Writes an SQL <code>CLOB</code> value to the stream.
 - *
 - * @param x a <code>Clob</code> object representing data of an SQL
 - * <code>CLOB</code> value
 - *
 - * @exception SQLException if a database access error occurs
 - */
 - void writeClob(Clob x) throws SQLException;
 - /**
 - * Writes an SQL structured type value to the stream.
 - *
 - * @param x a <code>Struct</code> object representing data of an SQL
 - * structured type
 - *
 - * @exception SQLException if a database access error occurs
 - */
 - void writeStruct(Struct x) throws SQLException;
 - /**
 - * Writes an SQL <code>ARRAY</code> value to the stream.
 - *
 - * @param x an <code>Array</code> object representing data of an SQL
 - * <code>ARRAY</code> type
 - *
 - * @exception SQLException if a database access error occurs
 - */
 - void writeArray(Array x) throws SQLException;
 - }