- /*
- * @(#)SQLInput.java 1.16 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;
-
- /**
- * An input stream that contains a stream of values representing an
- * instance of an SQL structured or distinct type.
- * This interface, used only for custom mapping, is used by the driver
- * behind the scenes, and a programmer never directly invokes
- * <code>SQLInput</code> methods. The <code>readXXX</code> methods
- * provide a way to read the values in an <code>SQLInput</code> object.
- * The method <code>wasNull</code> is used to determine whether the
- * the last value read was SQL <code>NULL</code>.
- * <P>When the method <code>getObject</code> is called with an
- * object of a class implementing the interface <code>SQLData</code>,
- * the JDBC driver calls the method <code>SQLData.getSQLType</code>
- * to determine the SQL type of the user-defined type (UDT)
- * being custom mapped. The driver
- * creates an instance of <code>SQLInput</code>, populating it with the
- * attributes of the UDT. The driver then passes the input
- * stream to the method <code>SQLData.readSQL</code>, which in turn
- * calls the <code>SQLInput.readXXX</code> methods
- * in its implementation for reading the
- * attributes from the input stream.
- * @since 1.2
- * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
- * 2.0 API</a>
- */
-
- public interface SQLInput {
-
-
- //================================================================
- // Methods for reading attributes from the stream of SQL data.
- // These methods correspond to the column-accessor methods of
- // java.sql.ResultSet.
- //================================================================
-
- /**
- * Reads the next attribute in the stream as a <code>String</code>
- * in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>null</code>
- * @exception SQLException if a database access error occurs
- */
- String readString() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>boolean</code>
- * in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>false</code>
- * @exception SQLException if a database access error occurs
- */
- boolean readBoolean() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>byte</code>
- * in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>0</code>
- * @exception SQLException if a database access error occurs
- */
- byte readByte() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>short</code>
- * in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>0</code>
- * @exception SQLException if a database access error occurs
- */
- short readShort() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as an <code>int</code>
- * in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>0</code>
- * @exception SQLException if a database access error occurs
- */
- int readInt() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>long</code>
- * in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>0</code>
- * @exception SQLException if a database access error occurs
- */
- long readLong() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>float</code>
- * in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>0</code>
- * @exception SQLException if a database access error occurs
- */
- float readFloat() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>double</code>
- * in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>0</code>
- * @exception SQLException if a database access error occurs
- */
- double readDouble() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>java.math.BigDecimal</code>
- * object in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>null</code>
- * @exception SQLException if a database access error occurs
- */
- java.math.BigDecimal readBigDecimal() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as an array of bytes
- * in the Java programming language.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>null</code>
- * @exception SQLException if a database access error occurs
- */
- byte[] readBytes() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>java.sql.Date</code> object.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>null</code>
- * @exception SQLException if a database access error occurs
- */
- java.sql.Date readDate() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>java.sql.Time</code> object.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>null</code>
- * @exception SQLException if a database access error occurs
- */
- java.sql.Time readTime() throws SQLException;
-
- /**
- * Reads the next attribute in the stream as a <code>java.sql.Timestamp</code> object.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>null</code>
- * @exception SQLException if a database access error occurs
- */
- java.sql.Timestamp readTimestamp() throws SQLException;
-
- /**
- * Returns the next attribute in the stream as a stream of Unicode characters.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>null</code>
- * @exception SQLException if a database access error occurs
- */
- java.io.Reader readCharacterStream() throws SQLException;
-
- /**
- * Returns the next attribute in the stream as a stream of ASCII characters.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>null</code>
- * @exception SQLException if a database access error occurs
- */
- java.io.InputStream readAsciiStream() throws SQLException;
-
- /**
- * Returns the next attribute in the stream as a stream of uninterpreted
- * bytes.
- *
- * @return the attribute; if the value is SQL <code>NULL</code>, returns <code>null</code>
- * @exception SQLException if a database access error occurs
- */
- java.io.InputStream readBinaryStream() throws SQLException;
-
- //================================================================
- // Methods for reading items of SQL user-defined types from the stream.
- //================================================================
-
- /**
- * Returns the datum at the head of the stream as an
- * <code>Object</code> in the Java programming language. The
- * actual type of the object returned is determined by the default type
- * mapping, and any customizations present in this stream's type map.
- *
- * <P>A type map is registered with the stream by the JDBC driver before the
- * stream is passed to the application.
- *
- * <P>When the datum at the head of the stream is an SQL <code>NULL</code>,
- * the method returns <code>null</code>. If the datum is an SQL structured or distinct
- * type, it determines the SQL type of the datum at the head of the stream.
- * If the stream's type map has an entry for that SQL type, the driver
- * constructs an object of the appropriate class and calls the method
- * <code>SQLData.readSQL</code> on that object, which reads additional data from the
- * stream, using the protocol described for that method.
- *
- * @return the datum at the head of the stream as an <code>Object</code> in the
- * Java programming language;<code>null</code> if the datum is SQL <code>NULL</code>
- * @exception SQLException if a database access error occurs
- */
- Object readObject() throws SQLException;
-
- /**
- * Reads an SQL <code>REF</code> value from the stream and returns it as a
- * <code>Ref</code> object in the Java programming language.
- *
- * @return a <code>Ref</code> object representing the SQL <code>REF</code> value
- * at the head of the stream; <code>null</code> if the value read is
- * SQL <code>NULL</code>
- * @exception SQLException if a database access error occurs
- */
- Ref readRef() throws SQLException;
-
- /**
- * Reads an SQL <code>BLOB</code> value from the stream and returns it as a
- * <code>Blob</code> object in the Java programming language.
- *
- * @return a <code>Blob</code> object representing data of the SQL <code>BLOB</code> value
- * at the head of the stream; <code>null</code> if the value read is
- * SQL <code>NULL</code>
- * @exception SQLException if a database access error occurs
- */
- Blob readBlob() throws SQLException;
-
- /**
- * Reads an SQL <code>CLOB</code> value from the stream and returns it as a
- * <code>Clob</code> object in the Java programming language.
- *
- * @return a <code>Clob</code> object representing data of the SQL <code>CLOB</code> value
- * at the head of the stream; <code>null</code> if the value read is
- * SQL <code>NULL</code>
- * @exception SQLException if a database access error occurs
- */
- Clob readClob() throws SQLException;
-
- /**
- * Reads an SQL <code>ARRAY</code> value from the stream and returns it as an
- * <code>Array</code> object in the Java programming language.
- *
- * @return an <code>Array</code> object representing data of the SQL
- * <code>ARRAY</code> value at the head of the stream; <code>null</code>
- * if the value read is SQL <code>NULL</code>
- * @exception SQLException if a database access error occurs
- */
- Array readArray() throws SQLException;
-
- /**
- * Determines whether the last value read was SQL <code>NULL</code>.
- *
- * @return <code>true</code> if the most recently read SQL value was SQL
- * <code>NULL</code> otherwise, <code>false</code>
- * @exception SQLException if a database access error occurs
- *
- */
- boolean wasNull() throws SQLException;
-
- }