Package craftsman.spy

Source Code of craftsman.spy.SpyResultSet

/*
* Craftsman Spy.
* Copyright (C) 2005  S�bastien LECACHEUR
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package craftsman.spy;

import java.io.InputStream;
import java.io.Reader;
import java.math.BigDecimal;
import java.net.URL;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.Date;
import java.sql.Ref;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
import java.sql.Time;
import java.sql.Timestamp;
import java.sql.Types;
import java.util.Calendar;
import java.util.Map;

/**
* A table of data representing a database result set, which is usually
* generated by executing a statement that queries the database.
*
* @author S�bastien LECACHEUR
*/
public class SpyResultSet extends SpyEntity implements ResultSet {
  /**
   * The real result set instance.
   */
  private ResultSet real = null;


  /**
   * The SQL statement which create this SQL result set.
   */
  private Statement statement = null;


  /**
   * The index of the current row.
   */
  private int rowCount = 0;


  /**
   * The index of the maximum getted row.
   */
  private int maxRowCount = 0;


  /**
   * Constructs a new Spy JDBC result set.
   *
   * @param c Connection The used connection.
   * @param stmt Statement The used statement.
   * @param rs ResultSet The real JDBC result set.
   */
  protected SpyResultSet ( Connection c, Statement stmt, ResultSet rs) {
    super(c);
    statement = stmt;
    real = rs;
  }


  /**
   * Retrieves the the string representation of the current
   * row of the result set.
   * 
   * @return String The string representation of the current row.
   */
  private String getDisplayableResultSetRow() {
    StringBuffer displayableResultSetRow = new StringBuffer();

    try {
      ResultSetMetaData md = real.getMetaData();
      for ( int i = 1; i <= md.getColumnCount(); i++) {
        displayableResultSetRow.append(md.getColumnName(i))
          .append('=');
        switch ( md.getColumnType(i)) {
          case Types.ARRAY:
          case Types.BLOB:
          case Types.CHAR:
          case Types.CLOB:
          case Types.DATALINK:
          case Types.DATE:
          case Types.JAVA_OBJECT:
          case Types.LONGVARBINARY:
          case Types.LONGVARCHAR:
          case Types.REF:
          case Types.TIME:
          case Types.TIMESTAMP:
          case Types.VARBINARY:
          case Types.VARCHAR:      if ( real.getString(i)!=null) {
                          displayableResultSetRow.append('\'').append(real.getString(i)).append('\'');
                        } else {
                          displayableResultSetRow.append("NULL");
                        }
                        break;
          case Types.NULL:      displayableResultSetRow.append("NULL");
                        break;
          default:          if ( real.getString(i)!=null) {
                          displayableResultSetRow.append(real.getString(i));
                        } else {
                          displayableResultSetRow.append("NULL");
                        }
                        break;
        }

        displayableResultSetRow.append(',');
      }
      if ( md.getColumnCount() >= 1) {
        displayableResultSetRow.deleteCharAt(displayableResultSetRow.length()-1);
      }
    } catch ( SQLException e) {
      if ( log.isErrorEnabled()) log.error(getId()+":unable to display resultset row",e);
    }

    return displayableResultSetRow.toString();
  }


  /**
   * @see ResultSet#getConcurrency()
   */
  public int getConcurrency() throws SQLException {
    return real.getConcurrency();
  }


  /**
   * @see ResultSet#getFetchDirection()
   */
  public int getFetchDirection() throws SQLException {
    return real.getFetchDirection();
  }


  /**
   * @see ResultSet#getFetchSize()
   */
  public int getFetchSize() throws SQLException {
    return real.getFetchSize();
  }


  /**
   * @see ResultSet#getRow()
   */
  public int getRow() throws SQLException {
    return real.getRow();
  }


  /**
   * @see ResultSet#getType()
   */
  public int getType() throws SQLException {
    return real.getType();
  }


  /**
   * @see ResultSet#afterLast()
   */
  public void afterLast() throws SQLException {
    real.afterLast();
  }


  /**
   * @see ResultSet#beforeFirst()
   */
  public void beforeFirst() throws SQLException {
    real.beforeFirst();
  }


  /**
   * @see ResultSet#cancelRowUpdates()
   */
  public void cancelRowUpdates() throws SQLException {
    real.cancelRowUpdates();
  }


  /**
   * @see ResultSet#clearWarnings()
   */
  public void clearWarnings() throws SQLException {
    real.clearWarnings();
  }


  /**
   * @see ResultSet#close()
   */
  public void close() throws SQLException {
    real.close();
  }


  /**
   * @see ResultSet#deleteRow()
   */
  public void deleteRow() throws SQLException {
    //TODO log row deletion
    real.deleteRow();
  }


  /**
   * @see ResultSet#insertRow()
   */
  public void insertRow() throws SQLException {
    //TODO log row insertion
    real.insertRow();
  }


  /**
   * @see ResultSet#moveToCurrentRow()
   */
  public void moveToCurrentRow() throws SQLException {
    real.moveToCurrentRow();
  }


  /**
   * @see ResultSet#moveToInsertRow()
   */
  public void moveToInsertRow() throws SQLException {
    real.moveToInsertRow();
  }


  /**
   * @see ResultSet#refreshRow()
   */
  public void refreshRow() throws SQLException {
    real.refreshRow();
  }


  /**
   * @see ResultSet#updateRow()
   */
  public void updateRow() throws SQLException {
    //TODO log row updating
    real.updateRow();
  }


  /**
   * @see ResultSet#first()
   */
  public boolean first() throws SQLException {
    return real.first();
  }


  /**
   * @see ResultSet#isAfterLast()
   */
  public boolean isAfterLast() throws SQLException {
    return real.isAfterLast();
  }


  /**
   * @see ResultSet#isBeforeFirst()
   */
  public boolean isBeforeFirst() throws SQLException {
    return real.isBeforeFirst();
  }


  /**
   * @see ResultSet#isFirst()
   */
  public boolean isFirst() throws SQLException {
    return real.isFirst();
  }


  /**
   * @see ResultSet#isLast()
   */
  public boolean isLast() throws SQLException {
    return real.isLast();
  }


  /**
   * @see ResultSet#last()
   */
  public boolean last() throws SQLException {
    return real.last();
  }


  /**
   * @see ResultSet#next()
   */
  public boolean next() throws SQLException {
    boolean result = false;


    try {
      result = real.next();

      if ( result) {
        rowCount++;

        // Log the row only if it was never been logged
        if ( rowCount > maxRowCount) {
          maxRowCount++;
          if ( log.isInfoEnabled()) log.info(getId()+":"+getDisplayableResultSetRow()+" (row "+rowCount+")");
        }
      } else {
        if ( log.isInfoEnabled()) log.info(getId()+":total rowcount is "+rowCount);
      }
    } catch ( SQLException e) {
      if ( log.isErrorEnabled()) log.error(getId()+": state="+e.getSQLState()+",code="+e.getErrorCode(),e);
      throw e;
    }

    return result;
  }


  /**
   * @see ResultSet#previous()
   */
  public boolean previous() throws SQLException {
    boolean result = real.previous();


    if ( result) {
      rowCount--;
    }

    return result;
  }


  /**
   * @see ResultSet#rowDeleted()
   */
  public boolean rowDeleted() throws SQLException {
    return real.rowDeleted();
  }


  /**
   * @see ResultSet#rowInserted()
   */
  public boolean rowInserted() throws SQLException {
    return real.rowInserted();
  }


  /**
   * @see ResultSet#rowUpdated()
   */
  public boolean rowUpdated() throws SQLException {
    return real.rowUpdated();
  }


  /**
   * @see ResultSet#wasNull()
   */
  public boolean wasNull() throws SQLException {
    return real.wasNull();
  }


  /**
   * @see ResultSet#getByte(int)
   */
  public byte getByte(int columnIndex) throws SQLException {
    return real.getByte(columnIndex);
  }


  /**
   * @see ResultSet#getDouble(int)
   */
  public double getDouble(int columnIndex) throws SQLException {
    return real.getByte(columnIndex);
  }


  /**
   * @see ResultSet#getFloat(int)
   */
  public float getFloat(int columnIndex) throws SQLException {
    return real.getFloat(columnIndex);
  }


  /**
   * @see ResultSet#getInt(int)
   */
  public int getInt(int columnIndex) throws SQLException {
    return real.getInt(columnIndex);
  }


  /**
   * @see ResultSet#getLong(int)
   */
  public long getLong(int columnIndex) throws SQLException {
    return real.getLong(columnIndex);
  }


  /**
   * @see ResultSet#getShort(int)
   */
  public short getShort(int columnIndex) throws SQLException {
    return real.getShort(columnIndex);
  }


  /**
   * @see ResultSet#setFetchDirection(int)
   */
  public void setFetchDirection(int direction) throws SQLException {
    real.setFetchDirection(direction);
  }


  /**
   * @see ResultSet#setFetchSize(int)
   */
  public void setFetchSize(int rows) throws SQLException {
    real.setFetchSize(rows);
  }


  /**
   * @see ResultSet#updateNull(int)
   */
  public void updateNull(int columnIndex) throws SQLException {
    real.updateNull(columnIndex);
  }


  /**
   * @see ResultSet#absolute(int)
   */
  public boolean absolute(int row) throws SQLException {
    return real.absolute(row);
  }


  /**
   * @see ResultSet#getBoolean(int)
   */
  public boolean getBoolean(int columnIndex) throws SQLException {
    return real.getBoolean(columnIndex);
  }


  /**
   * @see ResultSet#relative(int)
   */
  public boolean relative(int rows) throws SQLException {
    return real.relative(rows);
  }


  /**
   * @see ResultSet#getBytes(int)
   */
  public byte[] getBytes(int columnIndex) throws SQLException {
    return real.getBytes(columnIndex);
  }


  /**
   * @see ResultSet#updateByte(int, byte)
   */
  public void updateByte(int columnIndex, byte x) throws SQLException {
    real.updateByte(columnIndex,x);
  }


  /**
   * @see ResultSet#updateDouble(int, double)
   */
  public void updateDouble(int columnIndex, double x) throws SQLException {
    real.updateDouble(columnIndex,x);
  }


  /**
   * @see ResultSet#updateFloat(int, float)
   */
  public void updateFloat(int columnIndex, float x) throws SQLException {
    real.updateFloat(columnIndex,x);
  }


  /**
   * @see ResultSet#updateInt(int, int)
   */
  public void updateInt(int columnIndex, int x) throws SQLException {
    real.updateInt(columnIndex,x);
  }


  /**
   * @see ResultSet#updateLong(int, long)
   */
  public void updateLong(int columnIndex, long x) throws SQLException {
    real.updateLong(columnIndex,x);
  }


  /**
   * @see ResultSet#updateShort(int, short)
   */
  public void updateShort(int columnIndex, short x) throws SQLException {
    real.updateShort(columnIndex,x);
  }


  /**
   * @see ResultSet#updateBoolean(int, boolean)
   */
  public void updateBoolean(int columnIndex, boolean x) throws SQLException {
    real.updateBoolean(columnIndex,x);
  }


  /**
   * @see ResultSet#updateBytes(int, byte[])
   */
  public void updateBytes(int columnIndex, byte[] x) throws SQLException {
    real.updateBytes(columnIndex,x);
  }


  /**
   * @see ResultSet#getAsciiStream(int)
   */
  public InputStream getAsciiStream(int columnIndex) throws SQLException {
    return real.getAsciiStream(columnIndex);
  }


  /**
   * @see ResultSet#getBinaryStream(int)
   */
  public InputStream getBinaryStream(int columnIndex) throws SQLException {
    return real.getBinaryStream(columnIndex);
  }


  /**
   * @see ResultSet#getUnicodeStream(int)
   */
  public InputStream getUnicodeStream(int columnIndex) throws SQLException {
    return real.getUnicodeStream(columnIndex);
  }


  /**
   * @see ResultSet#updateAsciiStream(int, java.io.InputStream, int)
   */
  public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException {
    real.updateAsciiStream(columnIndex,x,length);
  }


  /**
   * @see ResultSet#updateBinaryStream(int, java.io.InputStream, int)
   */
  public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException {
    real.updateBinaryStream(columnIndex,x,length);
  }


  /**
   * @see ResultSet#getCharacterStream(int)
   */
  public Reader getCharacterStream(int columnIndex) throws SQLException {
    return real.getCharacterStream(columnIndex);
  }


  /**
   * @see ResultSet#updateCharacterStream(int, java.io.Reader, int)
   */
  public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException {
    real.updateCharacterStream(columnIndex,x,length);
  }


  /**
   * @see ResultSet#getObject(int)
   */
  public Object getObject(int columnIndex) throws SQLException {
    return real.getObject(columnIndex);
  }


  /**
   * @see ResultSet#updateObject(int, Object)
   */
  public void updateObject(int columnIndex, Object x) throws SQLException {
    real.updateObject(columnIndex,x);
  }


  /**
   * @see ResultSet#updateObject(int, Object, int)
   */
  public void updateObject(int columnIndex, Object x, int scale) throws SQLException {
    real.updateObject(columnIndex,x,scale);
  }


  /**
   * @see ResultSet#getCursorName()
   */
  public String getCursorName() throws SQLException {
    return real.getCursorName();
  }


  /**
   * @see ResultSet#getString(int)
   */
  public String getString(int columnIndex) throws SQLException {
    return real.getString(columnIndex);
  }


  /**
   * @see ResultSet#updateString(int, String)
   */
  public void updateString(int columnIndex, String x) throws SQLException {
    real.updateString(columnIndex,x);
  }


  /**
   * @see ResultSet#getByte(String)
   */
  public byte getByte(String columnName) throws SQLException {
    return real.getByte(columnName);
  }


  /**
   * @see ResultSet#getDouble(String)
   */
  public double getDouble(String columnName) throws SQLException {
    return real.getDouble(columnName);
  }


  /**
   * @see ResultSet#getFloat(String)
   */
  public float getFloat(String columnName) throws SQLException {
    return real.getFloat(columnName);
  }


  /**
   * @see ResultSet#findColumn(String)
   */
  public int findColumn(String columnName) throws SQLException {
    return real.findColumn(columnName);
  }


  /**
   * @see ResultSet#getInt(String)
   */
  public int getInt(String columnName) throws SQLException {
    return real.getInt(columnName);
  }


  /**
   * @see ResultSet#getLong(String)
   */
  public long getLong(String columnName) throws SQLException {
    return real.getLong(columnName);
  }


  /**
   * @see ResultSet#getShort(String)
   */
  public short getShort(String columnName) throws SQLException {
    return real.getShort(columnName);
  }


  /**
   * @see ResultSet#updateNull(String)
   */
  public void updateNull(String columnName) throws SQLException {
    real.updateNull(columnName);
  }


  /**
   * @see ResultSet#getBoolean(String)
   */
  public boolean getBoolean(String columnName) throws SQLException {
    return real.getBoolean(columnName);
  }


  /**
   * @see ResultSet#getBytes(String)
   */
  public byte[] getBytes(String columnName) throws SQLException {
    return real.getBytes(columnName);
  }


  /**
   * @see ResultSet#updateByte(String, byte)
   */
  public void updateByte(String columnName, byte x) throws SQLException {
    real.updateByte(columnName,x);
  }


  /**
   * @see ResultSet#updateDouble(String, double)
   */
  public void updateDouble(String columnName, double x) throws SQLException {
    real.updateDouble(columnName,x);
  }


  /**
   * @see ResultSet#updateFloat(String, float)
   */
  public void updateFloat(String columnName, float x) throws SQLException {
    real.updateFloat(columnName,x);
  }


  /**
   * @see ResultSet#updateInt(String, int)
   */
  public void updateInt(String columnName, int x) throws SQLException {
    real.updateInt(columnName,x);
  }


  /**
   * @see ResultSet#updateLong(String, long)
   */
  public void updateLong(String columnName, long x) throws SQLException {
    real.updateLong(columnName,x);
  }


  /**
   * @see ResultSet#updateShort(String, short)
   */
  public void updateShort(String columnName, short x) throws SQLException {
    real.updateShort(columnName,x);
  }


  /**
   * @see ResultSet#updateBoolean(String, boolean)
   */
  public void updateBoolean(String columnName, boolean x) throws SQLException {
    real.updateBoolean(columnName,x);
  }


  /**
   * @see ResultSet#updateBytes(String, byte[])
   */
  public void updateBytes(String columnName, byte[] x) throws SQLException {
    real.updateBytes(columnName,x);
  }


  /**
   * @see ResultSet#getBigDecimal(int)
   */
  public BigDecimal getBigDecimal(int columnIndex) throws SQLException {
    return real.getBigDecimal(columnIndex);
  }


  /**
   * @see ResultSet#getBigDecimal(int, int)
   */
  public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException {
    return real.getBigDecimal(columnIndex,scale);
  }


  /**
   * @see ResultSet#updateBigDecimal(int, java.math.BigDecimal)
   */
  public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException {
    real.updateBigDecimal(columnIndex,x);
  }


  /**
   * @see ResultSet#getURL(int)
   */
  public URL getURL(int columnIndex) throws SQLException {
    return real.getURL(columnIndex);
  }


  /**
   * @see ResultSet#getArray(int)
   */
  public Array getArray(int i) throws SQLException {
    return real.getArray(i);
  }


  /**
   * @see ResultSet#updateArray(int, Array)
   */
  public void updateArray(int columnIndex, Array x) throws SQLException {
    real.updateArray(columnIndex,x);
  }


  /**
   * @see ResultSet#getBlob(int)
   */
  public Blob getBlob(int i) throws SQLException {
    return real.getBlob(i);
  }


  /**
   * @see ResultSet#updateBlob(int, Blob)
   */
  public void updateBlob(int columnIndex, Blob x) throws SQLException {
    real.updateBlob(columnIndex,x);
  }


  /**
   * @see ResultSet#getClob(int)
   */
  public Clob getClob(int i) throws SQLException {
    return real.getClob(i);
  }


  /**
   * @see ResultSet#updateClob(int, Clob)
   */
  public void updateClob(int columnIndex, Clob x) throws SQLException {
    real.updateClob(columnIndex,x);
  }


  /**
   * @see ResultSet#getDate(int)
   */
  public Date getDate(int columnIndex) throws SQLException {
    return real.getDate(columnIndex);
  }


  /**
   * @see ResultSet#updateDate(int, Date)
   */
  public void updateDate(int columnIndex, Date x) throws SQLException {
    real.updateDate(columnIndex,x);
  }


  /**
   * @see ResultSet#getRef(int)
   */
  public Ref getRef(int i) throws SQLException {
    return real.getRef(i);
  }


  /**
   * @see ResultSet#updateRef(int, Ref)
   */
  public void updateRef(int columnIndex, Ref x) throws SQLException {
    real.updateRef(columnIndex,x);
  }


  /**
   * @see ResultSet#getMetaData()
   */
  public ResultSetMetaData getMetaData() throws SQLException {
    return real.getMetaData();
  }


  /**
   * @see ResultSet#getWarnings()
   */
  public SQLWarning getWarnings() throws SQLException {
    SQLWarning current, sw = real.getWarnings();


    if ( (current = sw)!=null) {
      do {
        if ( log.isInfoEnabled()) log.info(getId()+":sql warning state="+current.getSQLState()+",code="+current.getErrorCode()+",message="+current.getMessage());
      } while ( (current = current.getNextWarning())!=null);
    }

    return sw;
  }


  /**
   * @see ResultSet#getStatement()
   */
  public Statement getStatement() throws SQLException {
    return statement;
  }


  /**
   * @see ResultSet#getTime(int)
   */
  public Time getTime(int columnIndex) throws SQLException {
    return real.getTime(columnIndex);
  }


  /**
   * @see ResultSet#updateTime(int, Time)
   */
  public void updateTime(int columnIndex, Time x) throws SQLException {
    real.updateTime(columnIndex,x);
  }


  /**
   * @see ResultSet#getTimestamp(int)
   */
  public Timestamp getTimestamp(int columnIndex) throws SQLException {
    return real.getTimestamp(columnIndex);
  }


  /**
   * @see ResultSet#updateTimestamp(int, Timestamp)
   */
  public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException {
    real.updateTimestamp(columnIndex,x);
  }


  /**
   * @see ResultSet#getAsciiStream(String)
   */
  public InputStream getAsciiStream(String columnName) throws SQLException {
    return real.getAsciiStream(columnName);
  }


  /**
   * @see ResultSet#getBinaryStream(String)
   */
  public InputStream getBinaryStream(String columnName) throws SQLException {
    return real.getBinaryStream(columnName);
  }


  /**
   * @see ResultSet#getUnicodeStream(String)
   */
  public InputStream getUnicodeStream(String columnName) throws SQLException {
    return real.getUnicodeStream(columnName);
  }


  /**
   * @see ResultSet#updateAsciiStream(String, java.io.InputStream, int)
   */
  public void updateAsciiStream(String columnName, InputStream x, int length) throws SQLException {
    real.updateAsciiStream(columnName,x,length);
  }


  /**
   * @see ResultSet#updateBinaryStream(String, java.io.InputStream, int)
   */
  public void updateBinaryStream(String columnName, InputStream x, int length) throws SQLException {
    real.updateBinaryStream(columnName,x,length);
  }


  /**
   * @see ResultSet#getCharacterStream(String)
   */
  public Reader getCharacterStream(String columnName) throws SQLException {
    return real.getCharacterStream(columnName);
  }


  /**
   * @see ResultSet#updateCharacterStream(String, java.io.Reader, int)
   */
  public void updateCharacterStream(String columnName, Reader reader, int length) throws SQLException {
    real.updateCharacterStream(columnName,reader,length);
  }


  /**
   * @see ResultSet#getObject(String)
   */
  public Object getObject(String columnName) throws SQLException {
    return real.getObject(columnName);
  }


  /**
   * @see ResultSet#updateObject(String, Object)
   */
  public void updateObject(String columnName, Object x) throws SQLException {
    real.updateObject(columnName,x);
  }


  /**
   * @see ResultSet#updateObject(String, Object, int)
   */
  public void updateObject(String columnName, Object x, int scale) throws SQLException {
    real.updateObject(columnName,x,scale);
  }


  /**
   * @see ResultSet#getObject(int, Map)
   */
  public Object getObject(int i, Map map) throws SQLException {
    return real.getObject(i,map);
  }


  /**
   * @see ResultSet#getString(String)
   */
  public String getString(String columnName) throws SQLException {
    return real.getString(columnName);
  }


  /**
   * @see ResultSet#updateString(String, String)
   */
  public void updateString(String columnName, String x) throws SQLException {
    real.updateString(columnName,x);
  }


  /**
   * @see ResultSet#getBigDecimal(String)
   */
  public BigDecimal getBigDecimal(String columnName) throws SQLException {
    return real.getBigDecimal(columnName);
  }


  /**
   * @see ResultSet#getBigDecimal(String, int)
   */
  public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException {
    return real.getBigDecimal(columnName,scale);
  }


  /**
   * @see ResultSet#updateBigDecimal(String, java.math.BigDecimal)
   */
  public void updateBigDecimal(String columnName, BigDecimal x) throws SQLException {
    real.updateBigDecimal(columnName,x);
  }


  /**
   * @see ResultSet#getURL(String)
   */
  public URL getURL(String columnName) throws SQLException {
    return real.getURL(columnName);
  }


  /**
   * @see ResultSet#getArray(String)
   */
  public Array getArray(String colName) throws SQLException {
    return real.getArray(colName);
  }


  /**
   * @see ResultSet#updateArray(String, Array)
   */
  public void updateArray(String columnName, Array x) throws SQLException {
    real.updateArray(columnName,x);
  }


  /**
   * @see ResultSet#getBlob(String)
   */
  public Blob getBlob(String colName) throws SQLException {
    return real.getBlob(colName);
  }


  /**
   * @see ResultSet#updateBlob(String, Blob)
   */
  public void updateBlob(String columnName, Blob x) throws SQLException {
    real.updateBlob(columnName,x);
  }


  /**
   * @see ResultSet#getClob(String)
   */
  public Clob getClob(String colName) throws SQLException {
    return real.getClob(colName);
  }


  /**
   * @see ResultSet#updateClob(String, Clob)
   */
  public void updateClob(String columnName, Clob x) throws SQLException {
    real.updateClob(columnName,x);
  }


  /**
   * @see ResultSet#getDate(String)
   */
  public Date getDate(String columnName) throws SQLException {
    return real.getDate(columnName);
  }


  /**
   * @see ResultSet#updateDate(String, Date)
   */
  public void updateDate(String columnName, Date x) throws SQLException {
    real.updateDate(columnName,x);
  }


  /**
   * @see ResultSet#getDate(int, Calendar)
   */
  public Date getDate(int columnIndex, Calendar cal) throws SQLException {
    return real.getDate(columnIndex,cal);
  }


  /**
   * @see ResultSet#getRef(String)
   */
  public Ref getRef(String colName) throws SQLException {
    return real.getRef(colName);
  }


  /**
   * @see ResultSet#updateRef(String, Ref)
   */
  public void updateRef(String columnName, Ref x) throws SQLException {
    real.updateRef(columnName,x);
  }


  /**
   * @see ResultSet#getTime(String)
   */
  public Time getTime(String columnName) throws SQLException {
    return real.getTime(columnName);
  }


  /**
   * @see ResultSet#updateTime(String, Time)
   */
  public void updateTime(String columnName, Time x) throws SQLException {
    real.updateTime(columnName,x);
  }


  /**
   * @see ResultSet#getTime(int, Calendar)
   */
  public Time getTime(int columnIndex, Calendar cal) throws SQLException {
    return real.getTime(columnIndex,cal);
  }


  /**
   * @see ResultSet#getTimestamp(String)
   */
  public Timestamp getTimestamp(String columnName) throws SQLException {
    return real.getTimestamp(columnName);
  }


  /**
   * @see ResultSet#updateTimestamp(String, Timestamp)
   */
  public void updateTimestamp(String columnName, Timestamp x) throws SQLException {
    real.updateTimestamp(columnName,x);
  }


  /**
   * @see ResultSet#getTimestamp(int, Calendar)
   */
  public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException {
    return real.getTimestamp(columnIndex,cal);
  }


  /**
   * @see ResultSet#getObject(String, Map)
   */
  public Object getObject(String colName, Map map) throws SQLException {
    return real.getObject(colName,map);
  }


  /**
   * @see ResultSet#getDate(String, Calendar)
   */
  public Date getDate(String columnName, Calendar cal) throws SQLException {
    return real.getDate(columnName,cal);
  }


  /**
   * @see ResultSet#getTime(String, Calendar)
   */
  public Time getTime(String columnName, Calendar cal) throws SQLException {
    return real.getTime(columnName,cal);
  }


  /**
   * @see ResultSet#getTimestamp(String, Calendar)
   */
  public Timestamp getTimestamp(String columnName, Calendar cal) throws SQLException {
    return real.getTimestamp(columnName,cal);
  }
}
TOP

Related Classes of craftsman.spy.SpyResultSet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.