/**
* Copyright 2004-2017 the original author or authors.
*
* Licensed 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 com.ibatis.sqlmap.client.extensions;
import java.math.BigDecimal;
import java.net.URL;
import java.sql.*;
import java.util.Calendar;
import java.util.Map;
/**
* Allows values to be retrieved from the underlying result set. TypeHandlerCallback implementations use this interface
* to get values that they can subsequently manipulate before having them returned. Each of these methods has a
* corresponding method on the ResultSet (or CallableStatement) class, the only difference being that there is no need
* to specify the column name or index with these methods.
* <p/>
* <b>NOTE:</b> There is no need to implement this. The implementation will be passed into the TypeHandlerCallback
* automatically.
*/
public interface ResultGetter {
/**
* Gets an array from the underlying result set
*
* @return - the array
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Array getArray() throws SQLException;
/**
* Gets a BigDecimal from the underlying result set
*
* @return - the BigDecimal
* @throws SQLException
* - if the underlying result set throws an exception
*/
public BigDecimal getBigDecimal() throws SQLException;
/**
* Gets a Blob from the underlying result set
*
* @return - the Blob
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Blob getBlob() throws SQLException;
/**
* Gets a boolean from the underlying result set
*
* @return - the boolean
* @throws SQLException
* - if the underlying result set throws an exception
*/
public boolean getBoolean() throws SQLException;
/**
* Gets a byte from the underlying result set
*
* @return - the byte
* @throws SQLException
* - if the underlying result set throws an exception
*/
public byte getByte() throws SQLException;
/**
* Gets a byte[] from the underlying result set
*
* @return - the byte[]
* @throws SQLException
* - if the underlying result set throws an exception
*/
public byte[] getBytes() throws SQLException;
/**
* Gets a Clob from the underlying result set
*
* @return - the Clob
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Clob getClob() throws SQLException;
/**
* Gets a Date from the underlying result set
*
* @return - the Date
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Date getDate() throws SQLException;
/**
* Gets a Date from the underlying result set using a calendar
*
* @param cal
* - the Calendar
* @return - the Date
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Date getDate(Calendar cal) throws SQLException;
/**
* Gets a double from the underlying result set
*
* @return - the double
* @throws SQLException
* - if the underlying result set throws an exception
*/
public double getDouble() throws SQLException;
/**
* Gets a float from the underlying result set
*
* @return - the float
* @throws SQLException
* - if the underlying result set throws an exception
*/
public float getFloat() throws SQLException;
/**
* Gets an int from the underlying result set
*
* @return - the int
* @throws SQLException
* - if the underlying result set throws an exception
*/
public int getInt() throws SQLException;
/**
* Gets a long from the underlying result set
*
* @return - the long
* @throws SQLException
* - if the underlying result set throws an exception
*/
public long getLong() throws SQLException;
/**
* Gets an Object from the underlying result set
*
* @return - the Object
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Object getObject() throws SQLException;
/**
* Gets an Object from the underlying result set using a Map
*
* @param map
* - the Map
* @return - the Object
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Object getObject(Map map) throws SQLException;
/**
* Gets a Ref from the underlying result set
*
* @return - the Ref
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Ref getRef() throws SQLException;
/**
* Gets a short from the underlying result set
*
* @return - the short
* @throws SQLException
* - if the underlying result set throws an exception
*/
public short getShort() throws SQLException;
/**
* Gets a String from the underlying result set
*
* @return - the String
* @throws SQLException
* - if the underlying result set throws an exception
*/
public String getString() throws SQLException;
/**
* Gets a Time from the underlying result set
*
* @return - the Time
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Time getTime() throws SQLException;
/**
* Gets a Time from the underlying result set using a Calendar
*
* @param cal
* - the Calendar
* @return - the Time
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Time getTime(Calendar cal) throws SQLException;
/**
* Gets a Timestamp from the underlying result set
*
* @return - the Timestamp
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Timestamp getTimestamp() throws SQLException;
/**
* Gets a Timestamp from the underlying result set
*
* @param cal
* - the Calendar
* @return - the Timestamp
* @throws SQLException
* - if the underlying result set throws an exception
*/
public Timestamp getTimestamp(Calendar cal) throws SQLException;
/**
* Gets a URL from the underlying result set
*
* @return - the URL
* @throws SQLException
* - if the underlying result set throws an exception
*/
public URL getURL() throws SQLException;
/**
* Tells if the field was null
*
* @return - true if it was null
* @throws SQLException
* - if the underlying result set throws an exception
*/
public boolean wasNull() throws SQLException;
/**
* Returns the underlying ResultSet...be careful!
*
* @return a ResultSet instance.
*/
public ResultSet getResultSet();
/**
* Returns the name of the column being got in the underlying ResultSet. May be <code>null</code> in which case the
* <code>getColumnIndex</code> method should be used.
*
* @return the column name (may be null)
*/
public String getColumnName();
/**
* Returns the index of the column being got in the underlying ResultSet. Only use this method if the value returned
* from <code>getColumnName</code> is null.
*
* @return the index of the column (if zero then use the column name)
*/
public int getColumnIndex();
}