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.util.Map; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * A Java representation of the SQL {@code ARRAY} type. 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface Array { 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Retrieves the contents of the SQL {@code ARRAY} value as a Java array 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * object. 30f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return A Java array containing the elements of this Array 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object getArray() throws SQLException; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns part of the SQL {@code ARRAY} associated with this array, 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * starting at a particular {@code index} and comprising up to {@code count} 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * successive elements of the SQL array. 41f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param index 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the start position in the array where the values are 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * retrieved. 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param count 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the number of elements to retrieve. 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return A Java array containing the desired set of elements from this Array 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object getArray(long index, int count) throws SQLException; 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns part of the SQL {@code ARRAY} associated with this array, 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * starting at a particular {@code index} and comprising up to {@code count} 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * successive elements of the SQL array. 57f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param index 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the start position in the array where the values are 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * retrieved. 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param count 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the number of elements to retrieve. 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param map 64f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * the map defining the correspondence between SQL type names 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and Java types. 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return A Java array containing the desired set of elements from this Array 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object getArray(long index, int count, Map<String, Class<?>> map) 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SQLException; 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the data from the underlying SQL {@code ARRAY} as a Java array. 75f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param map 77f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * the map defining the correspondence between SQL type names 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and Java types. 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return A Java array containing the elements of this array 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Object getArray(Map<String, Class<?>> map) throws SQLException; 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 86f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * Returns the JDBC type of the entries in this array's underlying 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * SQL array. 88f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return An integer constant from the {@code java.sql.Types} class 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int getBaseType() throws SQLException; 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 96f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * Returns the SQL type name of the entries in this array's underlying 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * SQL array. 98f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return The database specific name or a fully-qualified SQL type name. 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String getBaseTypeName() throws SQLException; 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a ResultSet object which holds the entries of the SQL {@code 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * ARRAY} associated with this array. 108f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the elements of the array as a {@code ResultSet}. 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ResultSet getResultSet() throws SQLException; 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a {@code ResultSet} object that holds the entries of a subarray, 117f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * beginning at a particular index and comprising up to {@code count} 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * successive entries. 119f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param index 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the start position in the array where the values are 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * retrieved. 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param count 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the number of elements to retrieve. 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the elements of the array as a {@code ResultSet}. 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ResultSet getResultSet(long index, int count) throws SQLException; 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a {@code ResultSet} object that holds the entries of a subarray, 133f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * beginning at a particular index and comprising up to {@code count} 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * successive entries. 135f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param index 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the start position in the array where the values are 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * retrieved. 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param count 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the number of elements to retrieve. 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param map 142f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * the map defining the correspondence between SQL type names 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and Java types. 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the {@code ResultSet} the array's custom type values. if a 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * database error has occurred. 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 ResultSet getResultSet(long index, int count, 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Map<String, Class<?>> map) throws SQLException; 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a {@code ResultSet} object which holds the entries of the SQL 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code ARRAY} associated with this array. 155f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param map 157f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * the map defining the correspondence between SQL type names 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and Java types. 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the array as a {@code ResultSet}. 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws SQLException 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if there is a database error. 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public ResultSet getResultSet(Map<String, Class<?>> map) 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SQLException; 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 16636b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe /** 167f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * Frees any resources held by this array. After {@code free} is called, calling 168f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * method other than {@code free} will throw {@code SQLException} (calling {@code free} 169f3cc41ede7af1dd683e1a55eabc8f36963aec8abElliott Hughes * repeatedly will do nothing). 17036b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe * @throws SQLException 17136b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe */ 17236b3cdfbcd219d0308753d919638262c16fd34daJeremy Sharpe public void free() throws SQLException; 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 174