/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package java.sql; import java.util.Map; /** * A Java representation of the SQL {@code ARRAY} type. */ public interface Array { /** * Retrieves the contents of the SQL {@code ARRAY} value as a Java array * object. * * @return A Java array containing the elements of this Array * @throws SQLException * if there is a database error. */ public Object getArray() throws SQLException; /** * Returns part of the SQL {@code ARRAY} associated with this array, * starting at a particular {@code index} and comprising up to {@code count} * successive elements of the SQL array. * * @param index * the start position in the array where the values are * retrieved. * @param count * the number of elements to retrieve. * @return A Java array containing the desired set of elements from this Array * @throws SQLException * if there is a database error. */ public Object getArray(long index, int count) throws SQLException; /** * Returns part of the SQL {@code ARRAY} associated with this array, * starting at a particular {@code index} and comprising up to {@code count} * successive elements of the SQL array. * * @param index * the start position in the array where the values are * retrieved. * @param count * the number of elements to retrieve. * @param map * the map defining the correspondence between SQL type names * and Java types. * @return A Java array containing the desired set of elements from this Array * @throws SQLException * if there is a database error. */ public Object getArray(long index, int count, Map<String, Class<?>> map) throws SQLException; /** * Returns the data from the underlying SQL {@code ARRAY} as a Java array. * * @param map * the map defining the correspondence between SQL type names * and Java types. * @return A Java array containing the elements of this array * @throws SQLException * if there is a database error. */ public Object getArray(Map<String, Class<?>> map) throws SQLException; /** * Returns the JDBC type of the entries in this array's underlying * SQL array. * * @return An integer constant from the {@code java.sql.Types} class * @throws SQLException * if there is a database error. */ public int getBaseType() throws SQLException; /** * Returns the SQL type name of the entries in this array's underlying * SQL array. * * @return The database specific name or a fully-qualified SQL type name. * @throws SQLException * if there is a database error. */ public String getBaseTypeName() throws SQLException; /** * Returns a ResultSet object which holds the entries of the SQL {@code * ARRAY} associated with this array. * * @return the elements of the array as a {@code ResultSet}. * @throws SQLException * if there is a database error. */ public ResultSet getResultSet() throws SQLException; /** * Returns a {@code ResultSet} object that holds the entries of a subarray, * beginning at a particular index and comprising up to {@code count} * successive entries. * * @param index * the start position in the array where the values are * retrieved. * @param count * the number of elements to retrieve. * @return the elements of the array as a {@code ResultSet}. * @throws SQLException * if there is a database error. */ public ResultSet getResultSet(long index, int count) throws SQLException; /** * Returns a {@code ResultSet} object that holds the entries of a subarray, * beginning at a particular index and comprising up to {@code count} * successive entries. * * @param index * the start position in the array where the values are * retrieved. * @param count * the number of elements to retrieve. * @param map * the map defining the correspondence between SQL type names * and Java types. * @return the {@code ResultSet} the array's custom type values. if a * database error has occurred. * @throws SQLException * if there is a database error. */ public ResultSet getResultSet(long index, int count, Map<String, Class<?>> map) throws SQLException; /** * Returns a {@code ResultSet} object which holds the entries of the SQL * {@code ARRAY} associated with this array. * * @param map * the map defining the correspondence between SQL type names * and Java types. * @return the array as a {@code ResultSet}. * @throws SQLException * if there is a database error. */ public ResultSet getResultSet(Map<String, Class<?>> map) throws SQLException; /** * Frees any resources held by this array. After {@code free} is called, calling * method other than {@code free} will throw {@code SQLException} (calling {@code free} * repeatedly will do nothing). * @throws SQLException */ public void free() throws SQLException; }