/*
 * ResultSet.java
 *
 * Created on August 1, 2007, 6:02 PM
 *
 */
package usda.weru.soil.arssql;

import java.io.InputStream;
import java.io.Reader;
import java.sql.*;

import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Map;
import java.net.URL;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

/**
 * This is a stripped implementation of the ResultSet interface. It is
 * intended to be used the ARS soap web service to obtain soil data.
 * Only calls that are actually used by WEPS are implemented.

 * @author wjr
 */
public class ResultSetARS implements java.sql.ResultSet {

    /** Creates a new instance of ResultSet */
    public ResultSetARS() {
    }

//	public ResultSetARS(Document doc) {
//		this.doc = doc;
////        System.out.println("RSA: " + doc);
//	}
    SAXParse saxDoc;

    /**
     *
     * @param saxDoc
     */
    public ResultSetARS(SAXParse saxDoc) {
        this.saxDoc = saxDoc;
        maxRowNum = saxDoc.getLength();
    }

    int rowNum = -1;
    int maxRowNum = Integer.MAX_VALUE; // arbitrary large number

    /**
     * Moves the cursor to the given row number in this ResultSet object.
     * @param row
     * @return
     */
    @Override
    public boolean absolute(int row) {
        return false;
    }

    /**
     * Moves the cursor to the end of this ResultSet object, just after the last row.
     */
    @Override
    public void afterLast() {
    }

    /**
     * Moves the cursor to the front of this ResultSet object, just before the first row.
     */
    @Override
    public void beforeFirst() {
    }

    /**
     * Cancels the updates made to the current row in this ResultSet object.
     */
    @Override
    public void cancelRowUpdates() {
    }

    /**
     *  Clears all warnings reported on this ResultSet object.
     */
    @Override
    public void clearWarnings() {
    }

    /**
     * Releases this ResultSet object's database and JDBC resources immediately
     * instead of waiting for this to happen when it is automatically closed.
     */
    @Override
    public void close() {
    }

    /**
     * Deletes the current row from this ResultSet object and from the underlying database.
     */
    @Override
    public void deleteRow() {
    }

    /**
     * Maps the given ResultSet column name to its ResultSet column index.
     * @param columnName
     * @return
     */
    @Override
    public int findColumn(String columnName) {
        return -1;
    }

    /**
     * Moves the cursor to the first row in this ResultSet object.
     * @return
     */
    @Override
    public boolean first() {
        return false;
    }

    /**
     * Retrieves the value of the designated column in the current row of this ResultSet
     * object as an Array object in the Java programming language.
     * @param i
     * @return
     */
    @Override
    public Array getArray(int i) {
        return null;
    }

    /**
     * Retrieves the value of the designated column in the current row of this ResultSet
     * object as an Array object in the Java programming language.
     * @param colName
     * @return
     */
    @Override
    public Array getArray(String colName) {
        return null;
    }

    /**
     * Retrieves the value of the designated column in the current row of this ResultSet object as a stream of ASCII characters.
     * @param columnIndex
     * @return
     */
    @Override
    public InputStream getAsciiStream(int columnIndex) {
        return null;
    }

    // todo: put the rest of these comments in javadoc format
//          Retrieves the value of the designated column in the current row of this ResultSet object as a stream of ASCII characters.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public InputStream getAsciiStream(String columnName) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal with full precision.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public BigDecimal getBigDecimal(int columnIndex) {
        return null;
    }

//          Deprecated.
    /**
     *
     * @param columnIndex
     * @param scale
     * @return
     */
    @Override
    @Deprecated
    public BigDecimal getBigDecimal(int columnIndex, int scale) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.math.BigDecimal with full precision.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public BigDecimal getBigDecimal(String columnName) {
        return null;
    }

//          Deprecated.
    /**
     *
     * @param columnName
     * @param scale
     * @return
     */
    @Override
    @Deprecated
    public BigDecimal getBigDecimal(String columnName, int scale) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a binary stream of uninterpreted bytes.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public InputStream getBinaryStream(int columnIndex) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a stream of uninterpreted bytes.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public InputStream getBinaryStream(String columnName) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a Blob object in the Java programming language.
    /**
     *
     * @param i
     * @return
     */
    @Override
    public Blob getBlob(int i) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a Blob object in the Java programming language.
    /**
     *
     * @param colName
     * @return
     */
    @Override
    public Blob getBlob(String colName) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a boolean in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public boolean getBoolean(int columnIndex) {
        return false;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a boolean in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public boolean getBoolean(String columnName) {
        return false;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a byte in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public byte getByte(int columnIndex) {
        return 0;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a byte in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public byte getByte(String columnName) {
        return -1;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a byte array in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public byte[] getBytes(int columnIndex) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a byte array in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public byte[] getBytes(String columnName) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public Reader getCharacterStream(int columnIndex) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.io.Reader object.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public Reader getCharacterStream(String columnName) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a Clob object in the Java programming language.
    /**
     *
     * @param i
     * @return
     */
    @Override
    public Clob getClob(int i) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a Clob object in the Java programming language.
    /**
     *
     * @param colName
     * @return
     */
    @Override
    public Clob getClob(String colName) {
        return null;
    }

//          Retrieves the concurrency mode of this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public int getConcurrency() {
        return -1;
    }

//          Retrieves the name of the SQL cursor used by this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public String getCursorName() {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public Date getDate(int columnIndex) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
    /**
     *
     * @param columnIndex
     * @param cal
     * @return
     */
    @Override
    public Date getDate(int columnIndex, Calendar cal) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public Date getDate(String columnName) {
        String value = getString(columnName);
        if (value != null) {
            DateFormat format = new SimpleDateFormat("M/d/yyyy h:m:s a");
            try {
                java.util.Date date = format.parse(value);
                return new Date(date.getTime());
            } catch (ParseException pe) {
                return null;
            }
        } else {
            return null;
        }

    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Date object in the Java programming language.
    /**
     *
     * @param columnName
     * @param cal
     * @return
     */
    @Override
    public Date getDate(String columnName, Calendar cal) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a double in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public double getDouble(int columnIndex) {
        return -1.0;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a double in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public double getDouble(String columnName) {
        return -1.0;
    }

//          Retrieves the fetch direction for this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public int getFetchDirection() {
        return -1;
    }

//          Retrieves the fetch size for this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public int getFetchSize() {
        return -1;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a float in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public float getFloat(int columnIndex) {
        return -1.0f;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a float in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public float getFloat(String columnName) {
        return -1.0f;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as an int in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public int getInt(int columnIndex) {
        return -1;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as an int in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public int getInt(String columnName) {
        return -1;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a long in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public long getLong(int columnIndex) {
        return -1;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a long in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public long getLong(String columnName) {
        return -1;
    }

//          Retrieves the number, types and properties of this ResultSet object's columns.
    /**
     *
     * @return
     */
    @Override
    public ResultSetMetaData getMetaData() {
        return null;
    }

//          Gets the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public Object getObject(int columnIndex) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.
    /**
     *
     * @param i
     * @param map
     * @return
     */
    @Override
    public Object getObject(int i, Map<String, Class<?>> map) {
        return null;
    }

//          Gets the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public Object getObject(String columnName) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as an Object in the Java programming language.
    /**
     *
     * @param colName
     * @param map
     * @return
     */
    @Override
    public Object getObject(String colName, Map<String, Class<?>> map) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a Ref object in the Java programming language.
    /**
     *
     * @param i
     * @return
     */
    @Override
    public Ref getRef(int i) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a Ref object in the Java programming language.
    /**
     *
     * @param colName
     * @return
     */
    @Override
    public Ref getRef(String colName) {
        return null;
    }

//          Retrieves the current row number.
    /**
     *
     * @return
     */
    @Override
    public int getRow() {
        return -1;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a short in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public short getShort(int columnIndex) {
        return -1;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a short in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public short getShort(String columnName) {
        return -1;
    }

//          Retrieves the Statement object that produced this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public Statement getStatement() {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public String getString(int columnIndex) {
        return null;
    }

    /**
     * Retrieves the value of the designated column in the current row of this ResultSet
     * object as a String in the Java programming language.
     * @param columnName
     * @return
     */
    @Override
    public String getString(String columnName) {
//		org.w3c.dom.NodeList nl = doc.getElementsByTagName(columnName);
//        maxRowNum = nl.getLength();
//        try {
//			if (rowNum == -1) rowNum++; // automatically skip to first row if next has not been initially called
//            return (String) nl.item(rowNum).getTextContent();
//        } catch (java.lang.NullPointerException ne) {
//            return null;
//        }
        List<String> columns = saxDoc.getColumn(columnName);
        try {
            return columns.get(rowNum);
        } catch (java.lang.NullPointerException npe) {
            return "";
        }
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public Time getTime(int columnIndex) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
    /**
     *
     * @param columnIndex
     * @param cal
     * @return
     */
    @Override
    public Time getTime(int columnIndex, Calendar cal) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public Time getTime(String columnName) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Time object in the Java programming language.
    /**
     *
     * @param columnName
     * @param cal
     * @return
     */
    @Override
    public Time getTime(String columnName, Calendar cal) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public Timestamp getTimestamp(int columnIndex) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
    /**
     *
     * @param columnIndex
     * @param cal
     * @return
     */
    @Override
    public Timestamp getTimestamp(int columnIndex, Calendar cal) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public Timestamp getTimestamp(String columnName) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.sql.Timestamp object in the Java programming language.
    /**
     *
     * @param columnName
     * @param cal
     * @return
     */
    @Override
    public Timestamp getTimestamp(String columnName, Calendar cal) {
        return null;
    }

//          Retrieves the type of this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public int getType() {
        return -1;
    }

//          Deprecated. use getCharacterStream in place of getUnicodeStream
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    @Deprecated
    public InputStream getUnicodeStream(int columnIndex) {
        return null;
    }

//          Deprecated. use getCharacterStream instead
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    @Deprecated
    public InputStream getUnicodeStream(String columnName) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.
    /**
     *
     * @param columnIndex
     * @return
     */
    @Override
    public URL getURL(int columnIndex) {
        return null;
    }

//          Retrieves the value of the designated column in the current row of this ResultSet object as a java.net.URL object in the Java programming language.
    /**
     *
     * @param columnName
     * @return
     */
    @Override
    public URL getURL(String columnName) {
        return null;
    }

//          Retrieves the first warning reported by calls on this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public SQLWarning getWarnings() {
        return null;
    }

//          Inserts the contents of the insert row into this ResultSet object and into the database.
    /**
     *
     */
    @Override
    public void insertRow() {
    }

//          Retrieves whether the cursor is after the last row in this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public boolean isAfterLast() {
        return false;
    }

//          Retrieves whether the cursor is before the first row in this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public boolean isBeforeFirst() {
        return false;
    }

//          Retrieves whether the cursor is on the first row of this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public boolean isFirst() {
        return false;
    }

//          Retrieves whether the cursor is on the last row of this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public boolean isLast() {
        return false;
    }

//          Moves the cursor to the last row in this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public boolean last() {
        return false;
    }

//          Moves the cursor to the remembered cursor position, usually the current row.
    /**
     *
     */
    @Override
    public void moveToCurrentRow() {
    }

//          Moves the cursor to the insert row.
    /**
     *
     */
    @Override
    public void moveToInsertRow() {
    }

    /**
     * Moves the cursor down one row from its current position.
     * @return
     */
    @Override
    public boolean next() {
        rowNum++;
        //System.out.println("next " + rowNum + " " + maxRowNum);		
        return rowNum < maxRowNum;
    }

//          Moves the cursor to the previous row in this ResultSet object.
    /**
     *
     * @return
     */
    @Override
    public boolean previous() {
        return false;
    }

//          Refreshes the current row with its most recent value in the database.
    /**
     *
     */
    @Override
    public void refreshRow() {
    }

//          Moves the cursor a relative number of rows, either positive or negative.
    /**
     *
     * @param rows
     * @return
     */
    @Override
    public boolean relative(int rows) {
        return false;
    }

//          Retrieves whether a row has been deleted.
    /**
     *
     * @return
     */
    @Override
    public boolean rowDeleted() {
        return false;
    }

//          Retrieves whether the current row has had an insertion.
    /**
     *
     * @return
     */
    @Override
    public boolean rowInserted() {
        return false;
    }

//          Retrieves whether the current row has been updated.
    /**
     *
     * @return
     */
    @Override
    public boolean rowUpdated() {
        return false;
    }

//          Gives a hint as to the direction in which the rows in this ResultSet object will be processed.
    /**
     *
     * @param direction
     */
    @Override
    public void setFetchDirection(int direction) {
    }

//          Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for this ResultSet object.
    /**
     *
     * @param rows
     */
    @Override
    public void setFetchSize(int rows) {
    }

//          Updates the designated column with a java.sql.Array value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateArray(int columnIndex, Array x) {
    }

//          Updates the designated column with a java.sql.Array value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateArray(String columnName, Array x) {
    }

//          Updates the designated column with an ascii stream value.
    /**
     *
     * @param columnIndex
     * @param x
     * @param length
     */
    @Override
    public void updateAsciiStream(int columnIndex, InputStream x, int length) {
    }

//          Updates the designated column with an ascii stream value.
    /**
     *
     * @param columnName
     * @param x
     * @param length
     */
    @Override
    public void updateAsciiStream(String columnName, InputStream x, int length) {
    }

//          Updates the designated column with a java.math.BigDecimal value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateBigDecimal(int columnIndex, BigDecimal x) {
    }

//          Updates the designated column with a java.sql.BigDecimal value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateBigDecimal(String columnName, BigDecimal x) {
    }

//          Updates the designated column with a binary stream value.
    /**
     *
     * @param columnIndex
     * @param x
     * @param length
     */
    @Override
    public void updateBinaryStream(int columnIndex, InputStream x, int length) {
    }

//          Updates the designated column with a binary stream value.
    /**
     *
     * @param columnName
     * @param x
     * @param length
     */
    @Override
    public void updateBinaryStream(String columnName, InputStream x, int length) {
    }

//          Updates the designated column with a java.sql.Blob value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateBlob(int columnIndex, Blob x) {
    }

//          Updates the designated column with a java.sql.Blob value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateBlob(String columnName, Blob x) {
    }

//          Updates the designated column with a boolean value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateBoolean(int columnIndex, boolean x) {
    }

//          Updates the designated column with a boolean value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateBoolean(String columnName, boolean x) {
    }

//          Updates the designated column with a byte value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateByte(int columnIndex, byte x) {
    }

//          Updates the designated column with a byte value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateByte(String columnName, byte x) {
    }

//          Updates the designated column with a byte array value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateBytes(int columnIndex, byte[] x) {
    }

//          Updates the designated column with a byte array value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateBytes(String columnName, byte[] x) {
    }

//          Updates the designated column with a character stream value.
    /**
     *
     * @param columnIndex
     * @param x
     * @param length
     */
    @Override
    public void updateCharacterStream(int columnIndex, Reader x, int length) {
    }

//          Updates the designated column with a character stream value.
    /**
     *
     * @param columnName
     * @param reader
     * @param length
     */
    @Override
    public void updateCharacterStream(String columnName, Reader reader, int length) {
    }

//          Updates the designated column with a java.sql.Clob value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateClob(int columnIndex, Clob x) {
    }

//          Updates the designated column with a java.sql.Clob value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateClob(String columnName, Clob x) {
    }

//          Updates the designated column with a java.sql.Date value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateDate(int columnIndex, Date x) {
    }

//          Updates the designated column with a java.sql.Date value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateDate(String columnName, Date x) {
    }

//          Updates the designated column with a double value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateDouble(int columnIndex, double x) {
    }

//          Updates the designated column with a double value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateDouble(String columnName, double x) {
    }

//          Updates the designated column with a float value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateFloat(int columnIndex, float x) {
    }

//          Updates the designated column with a float value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateFloat(String columnName, float x) {
    }

//          Updates the designated column with an int value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateInt(int columnIndex, int x) {
    }

//          Updates the designated column with an int value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateInt(String columnName, int x) {
    }

//          Updates the designated column with a long value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateLong(int columnIndex, long x) {
    }

//          Updates the designated column with a long value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateLong(String columnName, long x) {
    }

//          Gives a nullable column a null value.
    /**
     *
     * @param columnIndex
     */
    @Override
    public void updateNull(int columnIndex) {
    }

//          Updates the designated column with a null value.
    /**
     *
     * @param columnName
     */
    @Override
    public void updateNull(String columnName) {
    }

//          Updates the designated column with an Object value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateObject(int columnIndex, Object x) {
    }

//          Updates the designated column with an Object value.
    /**
     *
     * @param columnIndex
     * @param x
     * @param scale
     */
    @Override
    public void updateObject(int columnIndex, Object x, int scale) {
    }

//          Updates the designated column with an Object value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateObject(String columnName, Object x) {
    }

//          Updates the designated column with an Object value.
    /**
     *
     * @param columnName
     * @param x
     * @param scale
     */
    @Override
    public void updateObject(String columnName, Object x, int scale) {
    }

//          Updates the designated column with a java.sql.Ref value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateRef(int columnIndex, Ref x) {
    }

//          Updates the designated column with a java.sql.Ref value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateRef(String columnName, Ref x) {
    }

//          Updates the underlying database with the new contents of the current row of this ResultSet object.
    /**
     *
     */
    @Override
    public void updateRow() {
    }

//          Updates the designated column with a short value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateShort(int columnIndex, short x) {
    }

//          Updates the designated column with a short value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateShort(String columnName, short x) {
    }

//          Updates the designated column with a String value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateString(int columnIndex, String x) {
    }

//          Updates the designated column with a String value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateString(String columnName, String x) {
    }

//          Updates the designated column with a java.sql.Time value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateTime(int columnIndex, Time x) {
    }

//          Updates the designated column with a java.sql.Time value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateTime(String columnName, Time x) {
    }

//          Updates the designated column with a java.sql.Timestamp value.
    /**
     *
     * @param columnIndex
     * @param x
     */
    @Override
    public void updateTimestamp(int columnIndex, Timestamp x) {
    }

//          Updates the designated column with a java.sql.Timestamp value.
    /**
     *
     * @param columnName
     * @param x
     */
    @Override
    public void updateTimestamp(String columnName, Timestamp x) {
    }

//          Reports whether the last column read had a value of SQL NULL.
    /**
     *
     * @return
     */
    @Override
    public boolean wasNull() {
        return false;
    }

    /* These methods are needed for jdk 1.6 */
    /**
     *
     * @param i
     * @param s
     * @param r
     */
    public void updateNClob(int i, String s, Reader r) {
    }

    /**
     *
     * @param i
     * @param r
     */
    @Override
    public void updateNClob(int i, Reader r) {
    }

    /**
     *
     * @param i
     * @param r
     * @param l
     */
    @Override
    public void updateNClob(int i, Reader r, long l) {
    }

    /**
     *
     * @param i
     * @param r
     */
    @Override
    public void updateClob(int i, Reader r) {
    }

    /**
     *
     * @param i
     * @param r
     * @param l
     */
    @Override
    public void updateClob(int i, Reader r, long l) {
    }

    /**
     *
     * @param s
     * @param r
     */
    @Override
    public void updateNClob(String s, Reader r) {
    }

    /**
     *
     * @param s
     * @param r
     * @param l
     */
    @Override
    public void updateNClob(String s, Reader r, long l) {
    }

    /**
     *
     * @param s
     * @param r
     */
    @Override
    public void updateClob(String s, Reader r) {
    }

    /**
     *
     * @param s
     * @param r
     * @param l
     */
    @Override
    public void updateClob(String s, Reader r, long l) {
    }

    /**
     *
     * @param s
     * @param is
     */
    @Override
    public void updateBlob(String s, InputStream is) {
    }

    /**
     *
     * @param i
     * @param s
     * @param is
     */
    public void updateBlob(int i, String s, InputStream is) {
    }

    /**
     *
     * @param i
     * @param is
     */
    @Override
    public void updateBlob(int i, InputStream is) {
    }

    /**
     *
     * @param s
     * @param is
     * @param l
     */
    @Override
    public void updateBlob(String s, InputStream is, long l) {
    }

    /**
     *
     * @param i
     * @param s
     * @param is
     * @param l
     */
    public void updateBlob(int i, String s, InputStream is, long l) {
    }

    /**
     *
     * @param i
     * @param is
     * @param l
     */
    @Override
    public void updateBlob(int i, InputStream is, long l) {
    }

    /**
     *
     * @param s
     * @param r
     */
    @Override
    public void updateCharacterStream(String s, Reader r) {
    }

    /**
     *
     * @param i
     * @param r
     */
    @Override
    public void updateCharacterStream(int i, Reader r) {
    }

    /**
     *
     * @param s
     * @param r
     * @param l
     */
    @Override
    public void updateCharacterStream(String s, Reader r, long l) {
    }

    /**
     *
     * @param i
     * @param r
     * @param l
     */
    @Override
    public void updateCharacterStream(int i, Reader r, long l) {
    }

    /**
     *
     * @param s
     * @param r
     */
    @Override
    public void updateNCharacterStream(String s, Reader r) {
    }

    /**
     *
     * @param i
     * @param r
     */
    @Override
    public void updateNCharacterStream(int i, Reader r) {
    }

    /**
     *
     * @param s
     * @param is
     */
    @Override
    public void updateBinaryStream(String s, InputStream is) {
    }

    /**
     *
     * @param i
     * @param is
     */
    @Override
    public void updateBinaryStream(int i, InputStream is) {
    }

    /**
     *
     * @param s
     * @param is
     */
    @Override
    public void updateAsciiStream(String s, InputStream is) {
    }

    /**
     *
     * @param i
     * @param is
     */
    @Override
    public void updateAsciiStream(int i, InputStream is) {
    }

    /**
     *
     * @param s
     * @param r
     * @param l
     */
    @Override
    public void updateNCharacterStream(String s, Reader r, long l) {
    }

    /**
     *
     * @param i
     * @param r
     * @param l
     */
    @Override
    public void updateNCharacterStream(int i, Reader r, long l) {
    }

    /**
     *
     * @param s
     * @param is
     * @param l
     */
    @Override
    public void updateBinaryStream(String s, InputStream is, long l) {
    }

    /**
     *
     * @param i
     * @param is
     * @param l
     */
    @Override
    public void updateBinaryStream(int i, InputStream is, long l) {
    }

    /**
     *
     * @param s
     * @param is
     * @param l
     */
    @Override
    public void updateAsciiStream(String s, InputStream is, long l) {
    }

    /**
     *
     * @param i
     * @param is
     * @param l
     */
    @Override
    public void updateAsciiStream(int i, InputStream is, long l) {
    }

    /**
     *
     * @param s
     * @return
     */
    @Override
    public Reader getNCharacterStream(String s) {
        return null;
    }

    /**
     *
     * @param i
     * @return
     */
    @Override
    public Reader getNCharacterStream(int i) {
        return null;
    }

    /**
     *
     * @param s
     * @return
     */
    @Override
    public String getNString(String s) {
        return null;
    }

    /**
     *
     * @param i
     * @return
     */
    @Override
    public String getNString(int i) {
        return null;
    }

    /**
     *
     * @param s
     * @param sx
     */
    @Override
    public void updateSQLXML(String s, SQLXML sx) {
    }

    /**
     *
     * @param i
     * @param sx
     */
    @Override
    public void updateSQLXML(int i, SQLXML sx) {
    }

    /**
     *
     * @param s
     * @return
     */
    @Override
    public SQLXML getSQLXML(String s) {
        return null;
    }

    /**
     *
     * @param i
     * @return
     */
    @Override
    public SQLXML getSQLXML(int i) {
        return null;
    }

    /**
     *
     * @param s
     * @return
     */
    @Override
    public NClob getNClob(String s) {
        return null;
    }

    /**
     *
     * @param i
     * @return
     */
    @Override
    public NClob getNClob(int i) {
        return null;
    }

    /**
     *
     * @param s
     * @param n
     */
    @Override
    public void updateNClob(String s, NClob n) {
    }

    /**
     *
     * @param i
     * @param n
     */
    @Override
    public void updateNClob(int i, NClob n) {
    }

    /**
     *
     * @param s1
     * @param s2
     */
    @Override
    public void updateNString(String s1, String s2) {
    }

    /**
     *
     * @param i
     * @param s2
     */
    @Override
    public void updateNString(int i, String s2) {
    }

    /**
     *
     * @return
     */
    @Override
    public boolean isClosed() {
        return false;
    }

    /**
     *
     * @return
     */
    @Override
    public int getHoldability() {
        return -1;
    }

    /**
     *
     * @param s
     * @param ri
     */
    @Override
    public void updateRowId(String s, RowId ri) {
    }

    /**
     *
     * @param i
     * @param ri
     */
    @Override
    public void updateRowId(int i, RowId ri) {
    }

    /**
     *
     * @param s
     * @return
     */
    @Override
    public RowId getRowId(String s) {
        return null;
    }

    /**
     *
     * @param i
     * @return
     */
    @Override
    public RowId getRowId(int i) {
        return null;
    }

    /**
     *
     * @param c
     * @return
     */
    @Override
    public boolean isWrapperFor(Class<?> c) {
        return false;
    }

    /**
     *
     * @param <T>
     * @param t
     * @return
     */
    @Override
    public <T> T unwrap(Class<T> t) {
        return null;
    }

    // LEW - Jim Ascough's programmers changes to allow compilation/running under Java 7
    /**
     *
     * @param <T>
     * @param columnIndex
     * @param type
     * @return
     * @throws SQLException
     */
    @Override
    public <T> T getObject(int columnIndex, Class<T> type) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    /**
     *
     * @param <T>
     * @param columnLabel
     * @param type
     * @return
     * @throws SQLException
     */
    @Override
    public <T> T getObject(String columnLabel, Class<T> type) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
