All Downloads are FREE. Search and download functionalities are using the official Maven repository.

co.paralleluniverse.fibers.jdbc.FiberResultSet Maven / Gradle / Ivy

The newest version!
/*
 * COMSAT
 * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved.
 *
 * This program and the accompanying materials are dual-licensed under
 * either the terms of the Eclipse Public License v1.0 as published by
 * the Eclipse Foundation
 *
 *   or (per the licensee's choosing)
 *
 * under the terms of the GNU Lesser General Public License version 3.0
 * as published by the Free Software Foundation.
 */
package co.paralleluniverse.fibers.jdbc;

import co.paralleluniverse.common.util.CheckedCallable;
import co.paralleluniverse.fibers.Suspendable;
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.Date;
import java.sql.NClob;
import java.sql.Ref;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.RowId;
import java.sql.SQLException;
// 1.8
//
// import java.sql.SQLType;
import java.sql.SQLWarning;
import java.sql.SQLXML;
import java.sql.Statement;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Map;
import java.util.concurrent.ExecutorService;

/**
 * @author crclespainter
 */
public class FiberResultSet implements ResultSet {
    private final ResultSet result;
    private final ExecutorService executor;

    public FiberResultSet(final ResultSet result, final ExecutorService executor) {
        this.result = result;
        this.executor = executor;
    }

    @Override
    @Suspendable
    public boolean next() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.next();
            }
        });
    }

    @Override
    @Suspendable
    public void close() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.close();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public boolean wasNull() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.wasNull();
            }
        });
    }

    @Override
    @Suspendable
    public String getString(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public String call() throws SQLException {
                return result.getString(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public boolean getBoolean(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.getBoolean(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public byte getByte(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Byte call() throws SQLException {
                return result.getByte(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public short getShort(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Short call() throws SQLException {
                return result.getShort(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public int getInt(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Integer call() throws SQLException {
                return result.getInt(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public long getLong(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Long call() throws SQLException {
                return result.getLong(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public float getFloat(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Float call() throws SQLException {
                return result.getFloat(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public double getDouble(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Double call() throws SQLException {
                return result.getDouble(columnIndex);
            }
        });
    }

    @Override
    @Deprecated
    @Suspendable
    public BigDecimal getBigDecimal(final int columnIndex, final int scale) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public BigDecimal call() throws SQLException {
                return result.getBigDecimal(columnIndex, scale);
            }
        });
    }

    @Override
    @Suspendable
    public byte[] getBytes(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public byte[] call() throws SQLException {
                return result.getBytes(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public Date getDate(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Date call() throws SQLException {
                return result.getDate(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public Time getTime(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Time call() throws SQLException {
                return result.getTime(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public Timestamp getTimestamp(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Timestamp call() throws SQLException {
                return result.getTimestamp(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public InputStream getAsciiStream(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public InputStream call() throws SQLException {
                return result.getAsciiStream(columnIndex);
            }
        });
    }

    @Override
    @Deprecated
    @Suspendable
    public InputStream getUnicodeStream(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public InputStream call() throws SQLException {
                return result.getUnicodeStream(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public InputStream getBinaryStream(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public InputStream call() throws SQLException {
                return result.getBinaryStream(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public String getString(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public String call() throws SQLException {
                return result.getString(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public boolean getBoolean(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.getBoolean(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public byte getByte(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Byte call() throws SQLException {
                return result.getByte(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public short getShort(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Short call() throws SQLException {
                return result.getShort(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public int getInt(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Integer call() throws SQLException {
                return result.getInt(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public long getLong(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Long call() throws SQLException {
                return result.getLong(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public float getFloat(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Float call() throws SQLException {
                return result.getFloat(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public double getDouble(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Double call() throws SQLException {
                return result.getDouble(columnLabel);
            }
        });
    }

    @Override
    @Deprecated
    @Suspendable
    public BigDecimal getBigDecimal(final String columnLabel, final int scale) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public BigDecimal call() throws SQLException {
                return result.getBigDecimal(columnLabel, scale);
            }
        });
    }

    @Override
    @Suspendable
    public byte[] getBytes(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public byte[] call() throws SQLException {
                return result.getBytes(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public Date getDate(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Date call() throws SQLException {
                return result.getDate(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public Time getTime(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Time call() throws SQLException {
                return result.getTime(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public Timestamp getTimestamp(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Timestamp call() throws SQLException {
                return result.getTimestamp(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public InputStream getAsciiStream(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public InputStream call() throws SQLException {
                return result.getAsciiStream(columnLabel);
            }
        });
    }

    @Override
    @Deprecated
    @Suspendable
    public InputStream getUnicodeStream(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public InputStream call() throws SQLException {
                return result.getUnicodeStream(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public InputStream getBinaryStream(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public InputStream call() throws SQLException {
                return result.getBinaryStream(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public SQLWarning getWarnings() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public SQLWarning call() throws SQLException {
                return result.getWarnings();
            }
        });
    }

    @Override
    @Suspendable
    public void clearWarnings() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.clearWarnings();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public String getCursorName() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public String call() throws SQLException {
                return result.getCursorName();
            }
        });
    }

    @Override
    @Suspendable
    public FiberResultSetMetaData getMetaData() throws SQLException {
        final ResultSetMetaData meta = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public ResultSetMetaData call() throws SQLException {
                return result.getMetaData();
            }
        });
        return new FiberResultSetMetaData(meta, executor);
    }

    @Override
    @Suspendable
    public Object getObject(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Object call() throws SQLException {
                return result.getObject(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public Object getObject(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Object call() throws SQLException {
                return result.getObject(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public int findColumn(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Integer call() throws SQLException {
                return result.findColumn(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public Reader getCharacterStream(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Reader call() throws SQLException {
                return result.getCharacterStream(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public Reader getCharacterStream(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Reader call() throws SQLException {
                return result.getCharacterStream(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public BigDecimal getBigDecimal(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public BigDecimal call() throws SQLException {
                return result.getBigDecimal(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public BigDecimal getBigDecimal(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public BigDecimal call() throws SQLException {
                return result.getBigDecimal(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public boolean isBeforeFirst() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.isBeforeFirst();
            }
        });
    }

    @Override
    @Suspendable
    public boolean isAfterLast() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.isAfterLast();
            }
        });
    }

    @Override
    @Suspendable
    public boolean isFirst() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.isFirst();
            }
        });
    }

    @Override
    @Suspendable
    public boolean isLast() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.isLast();
            }
        });
    }

    @Override
    @Suspendable
    public void beforeFirst() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.beforeFirst();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void afterLast() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.afterLast();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public boolean first() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.first();
            }
        });
    }

    @Override
    @Suspendable
    public boolean last() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.last();
            }
        });
    }

    @Override
    @Suspendable
    public int getRow() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Integer call() throws SQLException {
                return result.getRow();
            }
        });
    }

    @Override
    @Suspendable
    public boolean absolute(final int row) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.absolute(row);
            }
        });
    }

    @Override
    @Suspendable
    public boolean relative(final int rows) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.absolute(rows);
            }
        });
    }

    @Override
    @Suspendable
    public boolean previous() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.previous();
            }
        });
    }

    @Override
    @Suspendable
    public void setFetchDirection(final int direction) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.setFetchDirection(direction);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public int getFetchDirection() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Integer call() throws SQLException {
                return result.getFetchDirection();
            }
        });
    }

    @Override
    @Suspendable
    public void setFetchSize(final int rows) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.setFetchSize(rows);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public int getFetchSize() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Integer call() throws SQLException {
                return result.getFetchSize();
            }
        });
    }

    @Override
    @Suspendable
    public int getType() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Integer call() throws SQLException {
                return result.getType();
            }
        });
    }

    @Override
    @Suspendable
    public int getConcurrency() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Integer call() throws SQLException {
                return result.getConcurrency();
            }
        });
    }

    @Override
    @Suspendable
    public boolean rowUpdated() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.rowUpdated();
            }
        });
    }

    @Override
    @Suspendable
    public boolean rowInserted() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.rowInserted();
            }
        });
    }

    @Override
    @Suspendable
    public boolean rowDeleted() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.rowDeleted();
            }
        });
    }

    @Override
    @Suspendable
    public void updateNull(final int columnIndex) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNull(columnIndex);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBoolean(final int columnIndex, final boolean x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBoolean(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateByte(final int columnIndex, final byte x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateByte(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateShort(final int columnIndex, final short x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateShort(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateInt(final int columnIndex, final int x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateInt(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateLong(final int columnIndex, final long x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateLong(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateFloat(final int columnIndex, final float x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateFloat(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateDouble(final int columnIndex, final double x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateDouble(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBigDecimal(final int columnIndex, final BigDecimal x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBigDecimal(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateString(final int columnIndex, final String x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateString(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBytes(final int columnIndex, final byte[] x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBytes(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateDate(final int columnIndex, final Date x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateDate(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateTime(final int columnIndex, final Time x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateTime(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateTimestamp(final int columnIndex, final Timestamp x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateTimestamp(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateAsciiStream(final int columnIndex, final InputStream x, final int length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateAsciiStream(columnIndex, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBinaryStream(final int columnIndex, final InputStream x, final int length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBinaryStream(columnIndex, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateCharacterStream(final int columnIndex, final Reader x, final int length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateCharacterStream(columnIndex, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateObject(final int columnIndex, final Object x, final int scaleOrLength) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateObject(columnIndex, x, scaleOrLength);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateObject(final int columnIndex, final Object x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateObject(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNull(final String columnLabel) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNull(columnLabel);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBoolean(final String columnLabel, final boolean x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBoolean(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateByte(final String columnLabel, final byte x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateByte(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateShort(final String columnLabel, final short x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateShort(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateInt(final String columnLabel, final int x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateInt(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateLong(final String columnLabel, final long x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateLong(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateFloat(final String columnLabel, final float x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateFloat(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateDouble(final String columnLabel, final double x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateDouble(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBigDecimal(final String columnLabel, final BigDecimal x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBigDecimal(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateString(final String columnLabel, final String x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateString(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBytes(final String columnLabel, final byte[] x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBytes(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateDate(final String columnLabel, final Date x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateDate(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateTime(final String columnLabel, final Time x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateTime(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateTimestamp(final String columnLabel, final Timestamp x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateTimestamp(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateAsciiStream(final String columnLabel, final InputStream x, final int length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateAsciiStream(columnLabel, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBinaryStream(final String columnLabel, final InputStream x, final int length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBinaryStream(columnLabel, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateCharacterStream(final String columnLabel, final Reader reader, final int length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateCharacterStream(columnLabel, reader, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateObject(final String columnLabel, final Object x, final int scaleOrLength) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateObject(columnLabel, x, scaleOrLength);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateObject(final String columnLabel, final Object x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateObject(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void insertRow() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.insertRow();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateRow() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateRow();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void deleteRow() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.deleteRow();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void refreshRow() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.refreshRow();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void cancelRowUpdates() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.cancelRowUpdates();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void moveToInsertRow() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.moveToInsertRow();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void moveToCurrentRow() throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.moveToCurrentRow();
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public FiberStatement getStatement() throws SQLException {
        final Statement s = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Statement call() throws SQLException {
                return result.getStatement();
            }
        });
        return new FiberStatement(s, executor);
    }

    @Override
    @Suspendable
    public Object getObject(final int columnIndex, final Map> map) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Object call() throws SQLException {
                return result.getObject(columnIndex, map);
            }
        });
    }

    @Override
    @Suspendable
    public FiberRef getRef(final int columnIndex) throws SQLException {
        final Ref ref = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Ref call() throws SQLException {
                return result.getRef(columnIndex);
            }
        });
        return new FiberRef(ref, executor);
    }

    @Override
    @Suspendable
    public FiberBlob getBlob(final int columnIndex) throws SQLException {
        final Blob blob = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Blob call() throws SQLException {
                return result.getBlob(columnIndex);
            }
        });
        return new FiberBlob(blob, executor);
    }

    @Override
    @Suspendable
    public FiberClob getClob(final int columnIndex) throws SQLException {
        final Clob clob = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Clob call() throws SQLException {
                return result.getClob(columnIndex);
            }
        });
        return new FiberClob(clob, executor);
    }

    @Override
    @Suspendable
    public FiberArray getArray(final int columnIndex) throws SQLException {
        final Array array =  JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Array call() throws SQLException {
                return result.getArray(columnIndex);
            }
        });
        return new FiberArray(array, executor);
    }

    @Override
    @Suspendable
    public Object getObject(final String columnLabel, final Map> map) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Object call() throws SQLException {
                return result.getObject(columnLabel, map);
            }
        });
    }

    @Override
    @Suspendable
    public FiberRef getRef(final String columnLabel) throws SQLException {
        final Ref ref = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Ref call() throws SQLException {
                return result.getRef(columnLabel);
            }
        });
        return new FiberRef(ref, executor);
    }

    @Override
    @Suspendable
    public FiberBlob getBlob(final String columnLabel) throws SQLException {
        final Blob blob = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Blob call() throws SQLException {
                return result.getBlob(columnLabel);
            }
        });
        return new FiberBlob(blob, executor);
    }

    @Override
    @Suspendable
    public FiberClob getClob(final String columnLabel) throws SQLException {
        final Clob clob = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Clob call() throws SQLException {
                return result.getClob(columnLabel);
            }
        });
        return new FiberClob(clob, executor);
    }

    @Override
    @Suspendable
    public FiberArray getArray(final String columnLabel) throws SQLException {
        final Array array = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Array call() throws SQLException {
                return result.getArray(columnLabel);
            }
        });
        return new FiberArray(array, executor);
    }

    @Override
    @Suspendable
    public Date getDate(final int columnIndex, final Calendar cal) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Date call() throws SQLException {
                return result.getDate(columnIndex, cal);
            }
        });
    }

    @Override
    @Suspendable
    public Date getDate(final String columnLabel, final Calendar cal) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Date call() throws SQLException {
                return result.getDate(columnLabel, cal);
            }
        });
    }

    @Override
    @Suspendable
    public Time getTime(final int columnIndex, final Calendar cal) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Time call() throws SQLException {
                return result.getTime(columnIndex, cal);
            }
        });
    }

    @Override
    @Suspendable
    public Time getTime(final String columnLabel, final Calendar cal) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Time call() throws SQLException {
                return result.getTime(columnLabel, cal);
            }
        });
    }

    @Override
    @Suspendable
    public Timestamp getTimestamp(final int columnIndex, final Calendar cal) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Timestamp call() throws SQLException {
                return result.getTimestamp(columnIndex, cal);
            }
        });
    }

    @Override
    @Suspendable
    public Timestamp getTimestamp(final String columnLabel, final Calendar cal) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Timestamp call() throws SQLException {
                return result.getTimestamp(columnLabel, cal);
            }
        });
    }

    @Override
    @Suspendable
    public URL getURL(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public URL call() throws SQLException {
                return result.getURL(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public URL getURL(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public URL call() throws SQLException {
                return result.getURL(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public void updateRef(final int columnIndex, final Ref x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateRef(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateRef(final String columnLabel, final Ref x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateRef(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBlob(final int columnIndex, final Blob x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBlob(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBlob(final String columnLabel, final Blob x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBlob(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateClob(final int columnIndex, final Clob x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateClob(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateClob(final String columnLabel, final Clob x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateClob(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateArray(final int columnIndex, final Array x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateArray(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateArray(final String columnLabel, final Array x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateArray(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public RowId getRowId(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public RowId call() throws SQLException {
                return result.getRowId(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public RowId getRowId(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public RowId call() throws SQLException {
                return result.getRowId(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public void updateRowId(final int columnIndex, final RowId x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateRowId(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateRowId(final String columnLabel, final RowId x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateRowId(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public int getHoldability() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Integer call() throws SQLException {
                return result.getHoldability();
            }
        });
    }

    @Override
    @Suspendable
    public boolean isClosed() throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Boolean call() throws SQLException {
                return result.isClosed();
            }
        });
    }

    @Override
    @Suspendable
    public void updateNString(final int columnIndex, final String nString) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNString(columnIndex, nString);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNString(final String columnLabel, final String nString) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNString(columnLabel, nString);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNClob(final int columnIndex, final NClob nClob) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNClob(columnIndex, nClob);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNClob(final String columnLabel, final NClob nClob) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNClob(columnLabel, nClob);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public FiberNClob getNClob(final int columnIndex) throws SQLException {
        final NClob nclob = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public NClob call() throws SQLException {
                return result.getNClob(columnIndex);
            }
        });
        return new FiberNClob(nclob, executor);
    }

    @Override
    @Suspendable
    public FiberNClob getNClob(final String columnLabel) throws SQLException {
        final NClob nclob = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public NClob call() throws SQLException {
                return result.getNClob(columnLabel);
            }
        });
        return new FiberNClob(nclob, executor);
    }

    @Override
    @Suspendable
    public FiberSQLXML getSQLXML(final int columnIndex) throws SQLException {
        final SQLXML sqlxml = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public SQLXML call() throws SQLException {
                return result.getSQLXML(columnIndex);
            }
        });
        return new FiberSQLXML(sqlxml, executor);
    }

    @Override
    @Suspendable
    public FiberSQLXML getSQLXML(final String columnLabel) throws SQLException {
        final SQLXML sqlxml = JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public SQLXML call() throws SQLException {
                return result.getSQLXML(columnLabel);
            }
        });
        return new FiberSQLXML(sqlxml, executor);
    }

    @Override
    @Suspendable
    public void updateSQLXML(final int columnIndex, final SQLXML xmlObject) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateSQLXML(columnIndex, xmlObject);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateSQLXML(final String columnLabel, final SQLXML xmlObject) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateSQLXML(columnLabel, xmlObject);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public String getNString(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public String call() throws SQLException {
                return result.getNString(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public String getNString(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public String call() throws SQLException {
                return result.getNString(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public Reader getNCharacterStream(final int columnIndex) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Reader call() throws SQLException {
                return result.getNCharacterStream(columnIndex);
            }
        });
    }

    @Override
    @Suspendable
    public Reader getNCharacterStream(final String columnLabel) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Reader call() throws SQLException {
                return result.getNCharacterStream(columnLabel);
            }
        });
    }

    @Override
    @Suspendable
    public void updateNCharacterStream(final int columnIndex, final Reader x, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNCharacterStream(columnIndex, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNCharacterStream(final String columnLabel, final Reader reader, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNCharacterStream(columnLabel, reader, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateAsciiStream(final int columnIndex, final InputStream x, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateAsciiStream(columnIndex, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBinaryStream(final int columnIndex, final InputStream x, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBinaryStream(columnIndex, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateCharacterStream(final int columnIndex, final Reader x, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateCharacterStream(columnIndex, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateAsciiStream(final String columnLabel, final InputStream x, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateAsciiStream(columnLabel, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBinaryStream(final String columnLabel, final InputStream x, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBinaryStream(columnLabel, x, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateCharacterStream(final String columnLabel, final Reader reader, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateCharacterStream(columnLabel, reader, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBlob(final int columnIndex, final InputStream inputStream, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBlob(columnIndex, inputStream, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBlob(final String columnLabel, final InputStream inputStream, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBlob(columnLabel, inputStream, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateClob(final int columnIndex, final Reader reader, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateClob(columnIndex, reader, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateClob(final String columnLabel, final Reader reader, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateClob(columnLabel, reader, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNClob(final int columnIndex, final Reader reader, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNClob(columnIndex, reader, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNClob(final String columnLabel, final Reader reader, final long length) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNClob(columnLabel, reader, length);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNCharacterStream(final int columnIndex, final Reader x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNCharacterStream(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNCharacterStream(final String columnLabel, final Reader reader) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNCharacterStream(columnLabel, reader);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateAsciiStream(final int columnIndex, final InputStream x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateAsciiStream(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBinaryStream(final int columnIndex, final InputStream x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBinaryStream(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateCharacterStream(final int columnIndex, final Reader x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateCharacterStream(columnIndex, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateAsciiStream(final String columnLabel, final InputStream x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateAsciiStream(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBinaryStream(final String columnLabel, final InputStream x) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBinaryStream(columnLabel, x);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateCharacterStream(final String columnLabel, final Reader reader) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateCharacterStream(columnLabel, reader);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBlob(final int columnIndex, final InputStream inputStream) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBlob(columnIndex, inputStream);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateBlob(final String columnLabel, final InputStream inputStream) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateBlob(columnLabel, inputStream);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateClob(final int columnIndex, final Reader reader) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateClob(columnIndex, reader);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateClob(final String columnLabel, final Reader reader) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateClob(columnLabel, reader);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNClob(final int columnIndex, final Reader reader) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNClob(columnIndex, reader);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public void updateNClob(final String columnLabel, final Reader reader) throws SQLException {
        JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public Void call() throws SQLException {
                result.updateNClob(columnLabel, reader);
                return null;
            }
        });
    }

    @Override
    @Suspendable
    public  T getObject(final int columnIndex, final Class type) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public T call() throws SQLException {
                return result.getObject(columnIndex, type);
            }
        });
    }

    @Override
    @Suspendable
    public  T getObject(final String columnLabel, final Class type) throws SQLException {
        return JDBCFiberAsync.exec(executor, new CheckedCallable() {
            @Override
            public T call() throws SQLException {
                return result.getObject(columnLabel, type);
            }
        });
    }

//    1.8, have default impl.
//  
//    @Override
//    @Suspendable
//    public void updateObject(final int columnIndex, final Object x, final SQLType targetSqlType, final int scaleOrLength) throws SQLException {
//        JDBCFiberAsync.exec(executor, new CheckedCallable() {
//            @Override
//            public Void call() throws SQLException {
//                result.updateObject(columnIndex, x, targetSqlType, scaleOrLength);
//                return null;
//            }
//        });
//    }
//
//    @Override
//    @Suspendable
//    public void updateObject(final String columnLabel, final Object x, final SQLType targetSqlType, final int scaleOrLength) throws SQLException {
//        JDBCFiberAsync.exec(executor, new CheckedCallable() {
//            @Override
//            public Void call() throws SQLException {
//                result.updateObject(columnLabel, x, targetSqlType, scaleOrLength);
//                return null;
//            }
//        });
//    }
//
//    @Override
//    @Suspendable
//    public void updateObject(final int columnIndex, final Object x, final SQLType targetSqlType) throws SQLException {
//        JDBCFiberAsync.exec(executor, new CheckedCallable() {
//            @Override
//            public Void call() throws SQLException {
//                result.updateObject(columnIndex, x, targetSqlType);
//                return null;
//            }
//        });
//    }
//
//    @Override
//    @Suspendable
//    public void updateObject(final String columnLabel, final Object x, final SQLType targetSqlType) throws SQLException {
//        JDBCFiberAsync.exec(executor, new CheckedCallable() {
//            @Override
//            public Void call() throws SQLException {
//                result.updateObject(columnLabel, x, targetSqlType);
//                return null;
//            }
//        });
//    }

    @Override
    public  T unwrap(Class iface) throws SQLException {
        return result.unwrap(iface);
    }

    @Override
    public boolean isWrapperFor(Class iface) throws SQLException {
        return result.isWrapperFor(iface);
    }

    @Override
    public int hashCode() {
        return result.hashCode();
    }

    @SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
    @Override
    public boolean equals(Object obj) {
        return result.equals(obj);
    }

    @Override
    public String toString() {
        return result.toString();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy