1f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.sql; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.InputStream; 217365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport java.io.Reader; 227365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport java.math.BigDecimal; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.URL; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The {@code SQLInput} interface defines operations which apply to a type of 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * input stream which carries a series of values representing an instance of 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * an SQL structured type or SQL distinct type. 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * This interface is used to define custom mappings of SQL <i>User Defined 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Types</i> (UDTs) to Java classes. It is used by JDBC drivers, therefore 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * application programmers do not normally use the {@code SQLInput} methods 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * directly. Reader methods such as {@code readLong} and {@code readBytes} 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * provide means to read values from an {@code SQLInput} stream. 35142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson * <p> 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * When the {@code getObject} method is called with an object which implements 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the {@code SQLData} interface, the JDBC driver determines the SQL type of the 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * UDT being mapped by calling the {@code SQLData.getSQLType} method. The driver 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * creates an instance of an {@code SQLInput} stream, filling the stream with 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the attributes of the UDT. The {@code SQLInput} stream is passed to the 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code SQLData.readSQL} method which then calls the {@code SQLInput} reader 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * methods to read the attributes. 43142d526f8bf90fb9bb63c637beb5299f39791f55Jesse Wilson * 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see SQLData 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface SQLInput { 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code String}. 50f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute. {@code null} if the value is SQL {@code NULL}. 52f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String readString() throws SQLException; 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code boolean} 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * . 61f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code boolean}. {@code false} if the 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * value is SQL {@code NULL}. 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean readBoolean() throws SQLException; 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code byte}. 71f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code byte}. 0 if the value is SQL 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code NULL}. 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public byte readByte() throws SQLException; 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code short}. 81f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code short}. 0 if the value is SQL 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code NULL}. 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public short readShort() throws SQLException; 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of an {@code int}. 91f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as an {@code int}. 0 if the value is SQL 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code NULL}. 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int readInt() throws SQLException; 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code long}. 101f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code long}. 0 if the value is SQL 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code NULL}. 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public long readLong() throws SQLException; 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code float}. 111f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code float}. 0 if the value is SQL 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code NULL}. 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public float readFloat() throws SQLException; 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code double}. 121f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code double}. 0 if the value is SQL 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code NULL}. 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public double readDouble() throws SQLException; 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.math.BigDecimal}. 132f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the attribute as a {@code java.math.BigDecimal}. {@code null} if 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the read returns SQL {@code NULL}. 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see java.math.BigDecimal 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public BigDecimal readBigDecimal() throws SQLException; 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a byte array. 143f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the attribute as a byte array. {@code null} if the read returns 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * SQL {@code NULL}. 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public byte[] readBytes() throws SQLException; 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.sql.Date}. 154f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code java.sql.Date}. {@code null} if 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the value is SQL {@code NULL}. 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Date 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Date readDate() throws SQLException; 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.sql.Time}. 166f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the attribute as a {@code java.sql.Time}. {@code null} if the 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * read returns SQL {@code NULL}. 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Time 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Time readTime() throws SQLException; 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.sql.Timestamp}. 178f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the attribute as a {@code java.sql.Timestamp}. {@code null} if 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the read returns SQL {@code NULL}. 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Timestamp 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Timestamp readTimestamp() throws SQLException; 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a Unicode 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * character stream embodied as a {@code java.io.Reader}. 190f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code java.io.Reader}. {@code null} if 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the value is SQL {@code NULL}. 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see java.io.Reader 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Reader readCharacterStream() throws SQLException; 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of an ASCII 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * character stream embodied as a {@code java.io.InputStream}. 202f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code java.io.InputStream}. {@code null} 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if the value is SQL {@code NULL}. 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see java.io.InputStream 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public InputStream readAsciiStream() throws SQLException; 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a stream of bytes 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * embodied as a {@code java.io.InputStream}. 214f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code java.io.InputStream}. {@code null} 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if the value is SQL {@code NULL}. 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see java.io.InputStream 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public InputStream readBinaryStream() throws SQLException; 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.Object}. 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The type of the {@code Object} returned is determined by the type mapping 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * for this JDBC driver, including any customized mappings, if present. A 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * type map is given to the {@code SQLInput} by the JDBC driver before the 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code SQLInput} is given to the application. 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * If the attribute is an SQL structured or distinct type, its SQL type is 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * determined. If the stream's type map contains an element for that SQL 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * type, the driver creates an object for the relevant type and invokes the 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method {@code SQLData.readSQL} on it, which reads supplementary data from 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the stream using whichever protocol is defined for that method. 237f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as an Object. {@code null} if the value is SQL 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code NULL}. 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object readObject() throws SQLException; 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.sql.Ref}. 248f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code java.sql.Ref}. {@code null} if the 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * value is SQL {@code NULL}. 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Ref 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Ref readRef() throws SQLException; 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.sql.Blob}. 260f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code java.sql.Blob}. {@code null} if 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the value is SQL {@code NULL}. 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Blob readBlob() throws SQLException; 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.sql.Clob}. 271f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code java.sql.Clob}. {@code null} if 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the value is SQL {@code NULL}. 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Clob 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Clob readClob() throws SQLException; 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the next attribute in the stream in the form of a {@code 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.sql.Array}. 283f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as an {@code Array}. {@code null} if the value 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is SQL {@code NULL}. 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Array 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Array readArray() throws SQLException; 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Reports whether the last value read was SQL {@code NULL}. 294f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return {@code true} if the last value read was SQL {@code NULL}, {@code 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * false} otherwise. 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean wasNull() throws SQLException; 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Reads the next attribute in the stream (SQL DATALINK value) and returns 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * it as a {@code java.net.URL} object. 305f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the next attribute as a {@code java.net.URL}. {@code null} if the 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * value is SQL {@code NULL}. 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see java.net.URL 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public URL readURL() throws SQLException; 31336b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe 31436b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe /** 315f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * Returns the next attribute in the stream in the form of a {@code 316f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * java.sql.NClob}. 31736b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe * 318f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * @return the next attribute as a {@code java.sql.NClob}. {@code null} if 319f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * the value is SQL {@code NULL}. 320f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * @throws SQLException 321f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * if there is a database error. 32236b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe */ 32336b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe public NClob readNClob() throws SQLException; 32436b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe 325f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes /** 326f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * Returns the next attribute in the stream in the form of a {@code 327f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * java.lang.String}. Used for the NCHAR, NVARCHAR and LONGNVARCHAR types. 328f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * See {@link #readString} otherwise. 329f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * 330f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * @return the next attribute as a {@code java.lang.String}. {@code null} if 331f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * the value is SQL {@code NULL}. 332f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * @throws SQLException 333f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * if there is a database error. 334f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes */ 33536b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe public String readNString() throws SQLException; 33636b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe 337f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes /** 338f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * Returns the next attribute in the stream in the form of a {@code 339f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * java.sql.SQLXML}. 340f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * 341f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * @return the next attribute as a {@code java.sql.SQLXML}. {@code null} if 342f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * the value is SQL {@code NULL}. 343f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * @throws SQLException 344f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * if there is a database error. 345f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes */ 34636b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe public SQLXML readSQLXML() throws SQLException; 34736b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe 348f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes /** 349f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * Returns the next attribute in the stream in the form of a {@code 350f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * java.sql.RowId}. Used for the ROWID type. 351f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * 352f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * @return the next attribute as a {@code java.sql.RowId}. {@code null} if 353f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * the value is SQL {@code NULL}. 354f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * @throws SQLException 355f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * if there is a database error. 356f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes */ 35736b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe public RowId readRowId() throws SQLException; 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 359