    001/*
    002 * Licensed to the Apache Software Foundation (ASF) under one or more
    003 * contributor license agreements.  See the NOTICE file distributed with
    004 * this work for additional information regarding copyright ownership.
    005 * The ASF licenses this file to You under the Apache License, Version 2.0
    006 * (the "License"); you may not use this file except in compliance with
    007 * the License.  You may obtain a copy of the License at
    008 *
    009 *      http://www.apache.org/licenses/LICENSE-2.0
    010 *
    011 * Unless required by applicable law or agreed to in writing, software
    012 * distributed under the License is distributed on an "AS IS" BASIS,
    013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    014 * See the License for the specific language governing permissions and
    015 * limitations under the License.
    016 */
    017package org.apache.commons.dbutils;
    018
    019import java.io.InputStream;
    020import java.io.Reader;
    021import java.math.BigDecimal;
    022import java.net.URL;
    023import java.sql.Array;
    024import java.sql.Blob;
    025import java.sql.Clob;
    026import java.sql.Date;
    027import java.sql.NClob;
    028import java.sql.Ref;
    029import java.sql.ResultSet;
    030import java.sql.ResultSetMetaData;
    031import java.sql.RowId;
    032import java.sql.SQLException;
    033import java.sql.SQLWarning;
    034import java.sql.SQLXML;
    035import java.sql.Statement;
    036import java.sql.Time;
    037import java.sql.Timestamp;
    038import java.util.Calendar;
    039import java.util.Map;
    040
    041/**
    042 * Extensions of this class convert ResultSets into other objects.
    043 *
    044 * According to the <i>DRY</i> principle (Don't Repeat Yourself), repeating {@code resultSet}
    045 * variable inside the {@link ResultSetHandler#handle(ResultSet)} over and over for each iteration
    046 * can get a little tedious, {@code AbstractResultSetHandler} implicitly gives users access to
    047 * {@code ResultSet}'s methods.
    048 *
    049 * <b>NOTE</b> This class is <i>NOT</i> thread safe!
    050 *
    051 * @param <T> the target type the input ResultSet will be converted to.
    052 * @since 1.6
    053 */
    054public abstract class BaseResultSetHandler<T> implements ResultSetHandler<T> {
    055
    056    /**
    057     * The adapted ResultSet.
    058     */
    059    private ResultSet resultSet;
    060
    061    /**
    062     * {@inheritDoc}
    063     */
    064    protected final boolean absolute(final int row) throws SQLException {
    065        return resultSet.absolute(row);
    066    }
    067
    068    /**
    069     * {@inheritDoc}
    070     */
    071    protected final void afterLast() throws SQLException {
    072        resultSet.afterLast();
    073    }
    074
    075    /**
    076     * {@inheritDoc}
    077     */
    078    protected final void beforeFirst() throws SQLException {
    079        resultSet.beforeFirst();
    080    }
    081
    082    /**
    083     * {@inheritDoc}
    084     */
    085    protected final void cancelRowUpdates() throws SQLException {
    086        resultSet.cancelRowUpdates();
    087    }
    088
    089    /**
    090     * {@inheritDoc}
    091     */
    092    protected final void clearWarnings() throws SQLException {
    093        resultSet.clearWarnings();
    094    }
    095
    096    /**
    097     * {@inheritDoc}
    098     */
    099    protected final void close() throws SQLException {
    100        resultSet.close();
    101    }
    102
    103    /**
    104     * {@inheritDoc}
    105     */
    106    protected final void deleteRow() throws SQLException {
    107        resultSet.deleteRow();
    108    }
    109
    110    /**
    111     * {@inheritDoc}
    112     */
    113    protected final int findColumn(final String columnLabel) throws SQLException {
    114        return resultSet.findColumn(columnLabel);
    115    }
    116
    117    /**
    118     * {@inheritDoc}
    119     */
    120    protected final boolean first() throws SQLException {
    121        return resultSet.first();
    122    }
    123
    124    protected final ResultSet getAdaptedResultSet() {
    125        return resultSet;
    126    }
    127
    128    /**
    129     * {@inheritDoc}
    130     */
    131    protected final Array getArray(final int columnIndex) throws SQLException {
    132        return resultSet.getArray(columnIndex);
    133    }
    134
    135    /**
    136     * {@inheritDoc}
    137     */
    138    protected final Array getArray(final String columnLabel) throws SQLException {
    139        return resultSet.getArray(columnLabel);
    140    }
    141
    142    /**
    143     * {@inheritDoc}
    144     */
    145    protected final InputStream getAsciiStream(final int columnIndex) throws SQLException {
    146        return resultSet.getAsciiStream(columnIndex);
    147    }
    148
    149    /**
    150     * {@inheritDoc}
    151     */
    152    protected final InputStream getAsciiStream(final String columnLabel) throws SQLException {
    153        return resultSet.getAsciiStream(columnLabel);
    154    }
    155
    156    /**
    157     * {@inheritDoc}
    158     */
    159    protected final BigDecimal getBigDecimal(final int columnIndex) throws SQLException {
    160        return resultSet.getBigDecimal(columnIndex);
    161    }
    162
    163    /**
    164     * {@inheritDoc}
    165     */
    166    @Deprecated
    167    protected final BigDecimal getBigDecimal(final int columnIndex, final int scale) throws SQLException {
    168        return resultSet.getBigDecimal(columnIndex, scale);
    169    }
    170
    171    /**
    172     * {@inheritDoc}
    173     */
    174    protected final BigDecimal getBigDecimal(final String columnLabel) throws SQLException {
    175        return resultSet.getBigDecimal(columnLabel);
    176    }
    177
    178    /**
    179     * {@inheritDoc}
    180     */
    181    @Deprecated
    182    protected final BigDecimal getBigDecimal(final String columnLabel, final int scale) throws SQLException {
    183        return resultSet.getBigDecimal(columnLabel, scale);
    184    }
    185
    186    /**
    187     * {@inheritDoc}
    188     */
    189    protected final InputStream getBinaryStream(final int columnIndex) throws SQLException {
    190        return resultSet.getBinaryStream(columnIndex);
    191    }
    192
    193    /**
    194     * {@inheritDoc}
    195     */
    196    protected final InputStream getBinaryStream(final String columnLabel) throws SQLException {
    197        return resultSet.getBinaryStream(columnLabel);
    198    }
    199
    200    /**
    201     * {@inheritDoc}
    202     */
    203    protected final Blob getBlob(final int columnIndex) throws SQLException {
    204        return resultSet.getBlob(columnIndex);
    205    }
    206
    207    /**
    208     * {@inheritDoc}
    209     */
    210    protected final Blob getBlob(final String columnLabel) throws SQLException {
    211        return resultSet.getBlob(columnLabel);
    212    }
    213
    214    /**
    215     * {@inheritDoc}
    216     */
    217    protected final boolean getBoolean(final int columnIndex) throws SQLException {
    218        return resultSet.getBoolean(columnIndex);
    219    }
    220
    221    /**
    222     * {@inheritDoc}
    223     */
    224    protected final boolean getBoolean(final String columnLabel) throws SQLException {
    225        return resultSet.getBoolean(columnLabel);
    226    }
    227
    228    /**
    229     * {@inheritDoc}
    230     */
    231    protected final byte getByte(final int columnIndex) throws SQLException {
    232        return resultSet.getByte(columnIndex);
    233    }
    234
    235    /**
    236     * {@inheritDoc}
    237     */
    238    protected final byte getByte(final String columnLabel) throws SQLException {
    239        return resultSet.getByte(columnLabel);
    240    }
    241
    242    /**
    243     * {@inheritDoc}
    244     */
    245    protected final byte[] getBytes(final int columnIndex) throws SQLException {
    246        return resultSet.getBytes(columnIndex);
    247    }
    248
    249    /**
    250     * {@inheritDoc}
    251     */
    252    protected final byte[] getBytes(final String columnLabel) throws SQLException {
    253        return resultSet.getBytes(columnLabel);
    254    }
    255
    256    /**
    257     * {@inheritDoc}
    258     */
    259    protected final Reader getCharacterStream(final int columnIndex) throws SQLException {
    260        return resultSet.getCharacterStream(columnIndex);
    261    }
    262
    263    /**
    264     * {@inheritDoc}
    265     */
    266    protected final Reader getCharacterStream(final String columnLabel) throws SQLException {
    267        return resultSet.getCharacterStream(columnLabel);
    268    }
    269
    270    /**
    271     * {@inheritDoc}
    272     */
    273    protected final Clob getClob(final int columnIndex) throws SQLException {
    274        return resultSet.getClob(columnIndex);
    275    }
    276
    277    /**
    278     * {@inheritDoc}
    279     */
    280    protected final Clob getClob(final String columnLabel) throws SQLException {
    281        return resultSet.getClob(columnLabel);
    282    }
    283
    284    /**
    285     * {@inheritDoc}
    286     */
    287    protected final int getConcurrency() throws SQLException {
    288        return resultSet.getConcurrency();
    289    }
    290
    291    /**
    292     * {@inheritDoc}
    293     */
    294    protected final String getCursorName() throws SQLException {
    295        return resultSet.getCursorName();
    296    }
    297
    298    /**
    299     * {@inheritDoc}
    300     */
    301    protected final Date getDate(final int columnIndex) throws SQLException {
    302        return resultSet.getDate(columnIndex);
    303    }
    304
    305    /**
    306     * {@inheritDoc}
    307     */
    308    protected final Date getDate(final int columnIndex, final Calendar cal) throws SQLException {
    309        return resultSet.getDate(columnIndex, cal);
    310    }
    311
    312    /**
    313     * {@inheritDoc}
    314     */
    315    protected final Date getDate(final String columnLabel) throws SQLException {
    316        return resultSet.getDate(columnLabel);
    317    }
    318
    319    /**
    320     * {@inheritDoc}
    321     */
    322    protected final Date getDate(final String columnLabel, final Calendar cal) throws SQLException {
    323        return resultSet.getDate(columnLabel, cal);
    324    }
    325
    326    /**
    327     * {@inheritDoc}
    328     */
    329    protected final double getDouble(final int columnIndex) throws SQLException {
    330        return resultSet.getDouble(columnIndex);
    331    }
    332
    333    /**
    334     * {@inheritDoc}
    335     */
    336    protected final double getDouble(final String columnLabel) throws SQLException {
    337        return resultSet.getDouble(columnLabel);
    338    }
    339
    340    /**
    341     * {@inheritDoc}
    342     */
    343    protected final int getFetchDirection() throws SQLException {
    344        return resultSet.getFetchDirection();
    345    }
    346
    347    /**
    348     * {@inheritDoc}
    349     */
    350    protected final int getFetchSize() throws SQLException {
    351        return resultSet.getFetchSize();
    352    }
    353
    354    /**
    355     * {@inheritDoc}
    356     */
    357    protected final float getFloat(final int columnIndex) throws SQLException {
    358        return resultSet.getFloat(columnIndex);
    359    }
    360
    361    /**
    362     * {@inheritDoc}
    363     */
    364    protected final float getFloat(final String columnLabel) throws SQLException {
    365        return resultSet.getFloat(columnLabel);
    366    }
    367
    368    /**
    369     * {@inheritDoc}
    370     */
    371    protected final int getHoldability() throws SQLException {
    372        return resultSet.getHoldability();
    373    }
    374
    375    /**
    376     * {@inheritDoc}
    377     */
    378    protected final int getInt(final int columnIndex) throws SQLException {
    379        return resultSet.getInt(columnIndex);
    380    }
    381
    382    /**
    383     * {@inheritDoc}
    384     */
    385    protected final int getInt(final String columnLabel) throws SQLException {
    386        return resultSet.getInt(columnLabel);
    387    }
    388
    389    /**
    390     * {@inheritDoc}
    391     */
    392    protected final long getLong(final int columnIndex) throws SQLException {
    393        return resultSet.getLong(columnIndex);
    394    }
    395
    396    /**
    397     * {@inheritDoc}
    398     */
    399    protected final long getLong(final String columnLabel) throws SQLException {
    400        return resultSet.getLong(columnLabel);
    401    }
    402
    403    /**
    404     * {@inheritDoc}
    405     */
    406    protected final ResultSetMetaData getMetaData() throws SQLException {
    407        return resultSet.getMetaData();
    408    }
    409
    410    /**
    411     * {@inheritDoc}
    412     */
    413    protected final Reader getNCharacterStream(final int columnIndex) throws SQLException {
    414        return resultSet.getNCharacterStream(columnIndex);
    415    }
    416
    417    /**
    418     * {@inheritDoc}
    419     */
    420    protected final Reader getNCharacterStream(final String columnLabel) throws SQLException {
    421        return resultSet.getNCharacterStream(columnLabel);
    422    }
    423
    424    /**
    425     * {@inheritDoc}
    426     */
    427    protected final NClob getNClob(final int columnIndex) throws SQLException {
    428        return resultSet.getNClob(columnIndex);
    429    }
    430
    431    /**
    432     * {@inheritDoc}
    433     */
    434    protected final NClob getNClob(final String columnLabel) throws SQLException {
    435        return resultSet.getNClob(columnLabel);
    436    }
    437
    438    /**
    439     * {@inheritDoc}
    440     */
    441    protected final String getNString(final int columnIndex) throws SQLException {
    442        return resultSet.getNString(columnIndex);
    443    }
    444
    445    /**
    446     * {@inheritDoc}
    447     */
    448    protected final String getNString(final String columnLabel) throws SQLException {
    449        return resultSet.getNString(columnLabel);
    450    }
    451
    452    /**
    453     * {@inheritDoc}
    454     */
    455    protected final Object getObject(final int columnIndex) throws SQLException {
    456        return resultSet.getObject(columnIndex);
    457    }
    458
    459    /**
    460     * {@inheritDoc}
    461     */
    462    protected final Object getObject(final int columnIndex, final Map<String, Class<?>> map) throws SQLException {
    463        return resultSet.getObject(columnIndex, map);
    464    }
    465
    466    /**
    467     * {@inheritDoc}
    468     */
    469    protected final Object getObject(final String columnLabel) throws SQLException {
    470        return resultSet.getObject(columnLabel);
    471    }
    472
    473    /**
    474     * {@inheritDoc}
    475     */
    476    protected final Object getObject(final String columnLabel, final Map<String, Class<?>> map) throws SQLException {
    477        return resultSet.getObject(columnLabel, map);
    478    }
    479
    480    /**
    481     * {@inheritDoc}
    482     */
    483    protected final Ref getRef(final int columnIndex) throws SQLException {
    484        return resultSet.getRef(columnIndex);
    485    }
    486
    487    /**
    488     * {@inheritDoc}
    489     */
    490    protected final Ref getRef(final String columnLabel) throws SQLException {
    491        return resultSet.getRef(columnLabel);
    492    }
    493
    494    /**
    495     * {@inheritDoc}
    496     */
    497    protected final int getRow() throws SQLException {
    498        return resultSet.getRow();
    499    }
    500
    501    /**
    502     * {@inheritDoc}
    503     */
    504    protected final RowId getRowId(final int columnIndex) throws SQLException {
    505        return resultSet.getRowId(columnIndex);
    506    }
    507
    508    /**
    509     * {@inheritDoc}
    510     */
    511    protected final RowId getRowId(final String columnLabel) throws SQLException {
    512        return resultSet.getRowId(columnLabel);
    513    }
    514
    515    /**
    516     * {@inheritDoc}
    517     */
    518    protected final short getShort(final int columnIndex) throws SQLException {
    519        return resultSet.getShort(columnIndex);
    520    }
    521
    522    /**
    523     * {@inheritDoc}
    524     */
    525    protected final short getShort(final String columnLabel) throws SQLException {
    526        return resultSet.getShort(columnLabel);
    527    }
    528
    529    /**
    530     * {@inheritDoc}
    531     */
    532    protected final SQLXML getSQLXML(final int columnIndex) throws SQLException {
    533        return resultSet.getSQLXML(columnIndex);
    534    }
    535
    536    /**
    537     * {@inheritDoc}
    538     */
    539    protected final SQLXML getSQLXML(final String columnLabel) throws SQLException {
    540        return resultSet.getSQLXML(columnLabel);
    541    }
    542
    543    /**
    544     * {@inheritDoc}
    545     */
    546    protected final Statement getStatement() throws SQLException {
    547        return resultSet.getStatement();
    548    }
    549
    550    /**
    551     * {@inheritDoc}
    552     */
    553    protected final String getString(final int columnIndex) throws SQLException {
    554        return resultSet.getString(columnIndex);
    555    }
    556
    557    /**
    558     * {@inheritDoc}
    559     */
    560    protected final String getString(final String columnLabel) throws SQLException {
    561        return resultSet.getString(columnLabel);
    562    }
    563
    564    /**
    565     * {@inheritDoc}
    566     */
    567    protected final Time getTime(final int columnIndex) throws SQLException {
    568        return resultSet.getTime(columnIndex);
    569    }
    570
    571    /**
    572     * {@inheritDoc}
    573     */
    574    protected final Time getTime(final int columnIndex, final Calendar cal) throws SQLException {
    575        return resultSet.getTime(columnIndex, cal);
    576    }
    577
    578    /**
    579     * {@inheritDoc}
    580     */
    581    protected final Time getTime(final String columnLabel) throws SQLException {
    582        return resultSet.getTime(columnLabel);
    583    }
    584
    585    /**
    586     * {@inheritDoc}
    587     */
    588    protected final Time getTime(final String columnLabel, final Calendar cal) throws SQLException {
    589        return resultSet.getTime(columnLabel, cal);
    590    }
    591
    592    /**
    593     * {@inheritDoc}
    594     */
    595    protected final Timestamp getTimestamp(final int columnIndex) throws SQLException {
    596        return resultSet.getTimestamp(columnIndex);
    597    }
    598
    599    /**
    600     * {@inheritDoc}
    601     */
    602    protected final Timestamp getTimestamp(final int columnIndex, final Calendar cal) throws SQLException {
    603        return resultSet.getTimestamp(columnIndex, cal);
    604    }
    605
    606    /**
    607     * {@inheritDoc}
    608     */
    609    protected final Timestamp getTimestamp(final String columnLabel) throws SQLException {
    610        return resultSet.getTimestamp(columnLabel);
    611    }
    612
    613    /**
    614     * {@inheritDoc}
    615     */
    616    protected final Timestamp getTimestamp(final String columnLabel, final Calendar cal) throws SQLException {
    617        return resultSet.getTimestamp(columnLabel, cal);
    618    }
    619
    620    /**
    621     * {@inheritDoc}
    622     */
    623    protected final int getType() throws SQLException {
    624        return resultSet.getType();
    625    }
    626
    627    /**
    628     * {@inheritDoc}
    629     */
    630    @Deprecated
    631    protected final InputStream getUnicodeStream(final int columnIndex) throws SQLException {
    632        return resultSet.getUnicodeStream(columnIndex);
    633    }
    634
    635    /**
    636     * {@inheritDoc}
    637     */
    638    @Deprecated
    639    protected final InputStream getUnicodeStream(final String columnLabel) throws SQLException {
    640        return resultSet.getUnicodeStream(columnLabel);
    641    }
    642
    643    /**
    644     * {@inheritDoc}
    645     */
    646    protected final URL getURL(final int columnIndex) throws SQLException {
    647        return resultSet.getURL(columnIndex);
    648    }
    649
    650    /**
    651     * {@inheritDoc}
    652     */
    653    protected final URL getURL(final String columnLabel) throws SQLException {
    654        return resultSet.getURL(columnLabel);
    655    }
    656
    657    /**
    658     * {@inheritDoc}
    659     */
    660    protected final SQLWarning getWarnings() throws SQLException {
    661        return resultSet.getWarnings();
    662    }
    663
    664    /**
    665     * Turn the {@code ResultSet} into an Object.
    666     *
    667     * @return An Object initialized with {@code ResultSet} data
    668     * @throws SQLException if a database access error occurs
    669     * @see ResultSetHandler#handle(ResultSet)
    670     */
    671    protected abstract T handle() throws SQLException;
    672
    673    /**
    674     * {@inheritDoc}
    675     */
    676    @Override
    677    public final T handle(final ResultSet rs) throws SQLException {
    678        if (this.resultSet != null) {
    679            throw new IllegalStateException("Re-entry not allowed!");
    680        }
    681
    682        this.resultSet = rs;
    683
    684        try {
    685            return handle();
    686        } finally {
    687            this.resultSet = null;
    688        }
    689    }
    690
    691    /**
    692     * {@inheritDoc}
    693     */
    694    protected final void insertRow() throws SQLException {
    695        resultSet.insertRow();
    696    }
    697
    698    /**
    699     * {@inheritDoc}
    700     */
    701    protected final boolean isAfterLast() throws SQLException {
    702        return resultSet.isAfterLast();
    703    }
    704
    705    /**
    706     * {@inheritDoc}
    707     */
    708    protected final boolean isBeforeFirst() throws SQLException {
    709        return resultSet.isBeforeFirst();
    710    }
    711
    712    /**
    713     * {@inheritDoc}
    714     */
    715    protected final boolean isClosed() throws SQLException {
    716        return resultSet.isClosed();
    717    }
    718
    719    /**
    720     * {@inheritDoc}
    721     */
    722    protected final boolean isFirst() throws SQLException {
    723        return resultSet.isFirst();
    724    }
    725
    726    /**
    727     * {@inheritDoc}
    728     */
    729    protected final boolean isLast() throws SQLException {
    730        return resultSet.isLast();
    731    }
    732
    733    /**
    734     * {@inheritDoc}
    735     */
    736    protected final boolean isWrapperFor(final Class<?> iface) throws SQLException {
    737        return resultSet.isWrapperFor(iface);
    738    }
    739
    740    /**
    741     * {@inheritDoc}
    742     */
    743    protected final boolean last() throws SQLException {
    744        return resultSet.last();
    745    }
    746
    747    /**
    748     * {@inheritDoc}
    749     */
    750    protected final void moveToCurrentRow() throws SQLException {
    751        resultSet.moveToCurrentRow();
    752    }
    753
    754    /**
    755     * {@inheritDoc}
    756     */
    757    protected final void moveToInsertRow() throws SQLException {
    758        resultSet.moveToInsertRow();
    759    }
    760
    761    /**
    762     * {@inheritDoc}
    763     */
    764    protected final boolean next() throws SQLException {
    765        return resultSet.next();
    766    }
    767
    768    /**
    769     * {@inheritDoc}
    770     */
    771    protected final boolean previous() throws SQLException {
    772        return resultSet.previous();
    773    }
    774
    775    /**
    776     * {@inheritDoc}
    777     */
    778    protected final void refreshRow() throws SQLException {
    779        resultSet.refreshRow();
    780    }
    781
    782    /**
    783     * {@inheritDoc}
    784     */
    785    protected final boolean relative(final int rows) throws SQLException {
    786        return resultSet.relative(rows);
    787    }
    788
    789    /**
    790     * {@inheritDoc}
    791     */
    792    protected final boolean rowDeleted() throws SQLException {
    793        return resultSet.rowDeleted();
    794    }
    795
    796    /**
    797     * {@inheritDoc}
    798     */
    799    protected final boolean rowInserted() throws SQLException {
    800        return resultSet.rowInserted();
    801    }
    802
    803    /**
    804     * {@inheritDoc}
    805     */
    806    protected final boolean rowUpdated() throws SQLException {
    807        return resultSet.rowUpdated();
    808    }
    809
    810    /**
    811     * {@inheritDoc}
    812     */
    813    protected final void setFetchDirection(final int direction) throws SQLException {
    814        resultSet.setFetchDirection(direction);
    815    }
    816
    817    /**
    818     * {@inheritDoc}
    819     */
    820    protected final void setFetchSize(final int rows) throws SQLException {
    821        resultSet.setFetchSize(rows);
    822    }
    823
    824    /**
    825     * {@inheritDoc}
    826     */
    827    protected final <E> E unwrap(final Class<E> iface) throws SQLException {
    828        return resultSet.unwrap(iface);
    829    }
    830
    831    /**
    832     * {@inheritDoc}
    833     */
    834    protected final void updateArray(final int columnIndex, final Array x) throws SQLException {
    835        resultSet.updateArray(columnIndex, x);
    836    }
    837
    838    /**
    839     * {@inheritDoc}
    840     */
    841    protected final void updateArray(final String columnLabel, final Array x) throws SQLException {
    842        resultSet.updateArray(columnLabel, x);
    843    }
    844
    845    /**
    846     * {@inheritDoc}
    847     */
    848    protected final void updateAsciiStream(final int columnIndex, final InputStream x) throws SQLException {
    849        resultSet.updateAsciiStream(columnIndex, x);
    850    }
    851
    852    /**
    853     * {@inheritDoc}
    854     */
    855    protected final void updateAsciiStream(final int columnIndex, final InputStream x, final int length) throws SQLException {
    856        resultSet.updateAsciiStream(columnIndex, x, length);
    857    }
    858
    859    /**
    860     * {@inheritDoc}
    861     */
    862    protected final void updateAsciiStream(final int columnIndex, final InputStream x, final long length) throws SQLException {
    863        resultSet.updateAsciiStream(columnIndex, x, length);
    864    }
    865
    866    /**
    867     * {@inheritDoc}
    868     */
    869    protected final void updateAsciiStream(final String columnLabel, final InputStream x) throws SQLException {
    870        resultSet.updateAsciiStream(columnLabel, x);
    871    }
    872
    873    /**
    874     * {@inheritDoc}
    875     */
    876    protected final void updateAsciiStream(final String columnLabel, final InputStream x, final int length) throws SQLException {
    877        resultSet.updateAsciiStream(columnLabel, x, length);
    878    }
    879
    880    /**
    881     * {@inheritDoc}
    882     */
    883    protected final void updateAsciiStream(final String columnLabel, final InputStream x, final long length) throws SQLException {
    884        resultSet.updateAsciiStream(columnLabel, x, length);
    885    }
    886
    887    /**
    888     * {@inheritDoc}
    889     */
    890    protected final void updateBigDecimal(final int columnIndex, final BigDecimal x) throws SQLException {
    891        resultSet.updateBigDecimal(columnIndex, x);
    892    }
    893
    894    /**
    895     * {@inheritDoc}
    896     */
    897    protected final void updateBigDecimal(final String columnLabel, final BigDecimal x) throws SQLException {
    898        resultSet.updateBigDecimal(columnLabel, x);
    899    }
    900
    901    /**
    902     * {@inheritDoc}
    903     */
    904    protected final void updateBinaryStream(final int columnIndex, final InputStream x) throws SQLException {
    905        resultSet.updateBinaryStream(columnIndex, x);
    906    }
    907
    908    /**
    909     * {@inheritDoc}
    910     */
    911    protected final void updateBinaryStream(final int columnIndex, final InputStream x, final int length) throws SQLException {
    912        resultSet.updateBinaryStream(columnIndex, x, length);
    913    }
    914
    915    /**
    916     * {@inheritDoc}
    917     */
    918    protected final void updateBinaryStream(final int columnIndex, final InputStream x, final long length) throws SQLException {
    919        resultSet.updateBinaryStream(columnIndex, x, length);
    920    }
    921
    922    /**
    923     * {@inheritDoc}
    924     */
    925    protected final void updateBinaryStream(final String columnLabel, final InputStream x) throws SQLException {
    926        resultSet.updateBinaryStream(columnLabel, x);
    927    }
    928
    929    /**
    930     * {@inheritDoc}
    931     */
    932    protected final void updateBinaryStream(final String columnLabel, final InputStream x, final int length) throws SQLException {
    933        resultSet.updateBinaryStream(columnLabel, x, length);
    934    }
    935
    936    /**
    937     * {@inheritDoc}
    938     */
    939    protected final void updateBinaryStream(final String columnLabel, final InputStream x, final long length) throws SQLException {
    940        resultSet.updateBinaryStream(columnLabel, x, length);
    941    }
    942
    943    /**
    944     * {@inheritDoc}
    945     */
    946    protected final void updateBlob(final int columnIndex, final Blob x) throws SQLException {
    947        resultSet.updateBlob(columnIndex, x);
    948    }
    949
    950    /**
    951     * {@inheritDoc}
    952     */
    953    protected final void updateBlob(final int columnIndex, final InputStream inputStream) throws SQLException {
    954        resultSet.updateBlob(columnIndex, inputStream);
    955    }
    956
    957    /**
    958     * {@inheritDoc}
    959     */
    960    protected final void updateBlob(final int columnIndex, final InputStream inputStream, final long length) throws SQLException {
    961        resultSet.updateBlob(columnIndex, inputStream, length);
    962    }
    963
    964    /**
    965     * {@inheritDoc}
    966     */
    967    protected final void updateBlob(final String columnLabel, final Blob x) throws SQLException {
    968        resultSet.updateBlob(columnLabel, x);
    969    }
    970
    971    /**
    972     * {@inheritDoc}
    973     */
    974    protected final void updateBlob(final String columnLabel, final InputStream inputStream) throws SQLException {
    975        resultSet.updateBlob(columnLabel, inputStream);
    976    }
    977
    978    /**
    979     * {@inheritDoc}
    980     */
    981    protected final void updateBlob(final String columnLabel, final InputStream inputStream, final long length) throws SQLException {
    982        resultSet.updateBlob(columnLabel, inputStream, length);
    983    }
    984
    985    /**
    986     * {@inheritDoc}
    987     */
    988    protected final void updateBoolean(final int columnIndex, final boolean x) throws SQLException {
    989        resultSet.updateBoolean(columnIndex, x);
    990    }
    991
    992    /**
    993     * {@inheritDoc}
    994     */
    995    protected final void updateBoolean(final String columnLabel, final boolean x) throws SQLException {
    996        resultSet.updateBoolean(columnLabel, x);
    997    }
    998
    999    /**
    1000     * {@inheritDoc}
    1001     */
    1002    protected final void updateByte(final int columnIndex, final byte x) throws SQLException {
    1003        resultSet.updateByte(columnIndex, x);
    1004    }
    1005
    1006    /**
    1007     * {@inheritDoc}
    1008     */
    1009    protected final void updateByte(final String columnLabel, final byte x) throws SQLException {
    1010        resultSet.updateByte(columnLabel, x);
    1011    }
    1012
    1013    /**
    1014     * {@inheritDoc}
    1015     */
    1016    protected final void updateBytes(final int columnIndex, final byte[] x) throws SQLException {
    1017        resultSet.updateBytes(columnIndex, x);
    1018    }
    1019
    1020    /**
    1021     * {@inheritDoc}
    1022     */
    1023    protected final void updateBytes(final String columnLabel, final byte[] x) throws SQLException {
    1024        resultSet.updateBytes(columnLabel, x);
    1025    }
    1026
    1027    /**
    1028     * {@inheritDoc}
    1029     */
    1030    protected final void updateCharacterStream(final int columnIndex, final Reader x) throws SQLException {
    1031        resultSet.updateCharacterStream(columnIndex, x);
    1032    }
    1033
    1034    /**
    1035     * {@inheritDoc}
    1036     */
    1037    protected final void updateCharacterStream(final int columnIndex, final Reader x, final int length) throws SQLException {
    1038        resultSet.updateCharacterStream(columnIndex, x, length);
    1039    }
    1040
    1041    /**
    1042     * {@inheritDoc}
    1043     */
    1044    protected final void updateCharacterStream(final int columnIndex, final Reader x, final long length) throws SQLException {
    1045        resultSet.updateCharacterStream(columnIndex, x, length);
    1046    }
    1047
    1048    /**
    1049     * {@inheritDoc}
    1050     */
    1051    protected final void updateCharacterStream(final String columnLabel, final Reader reader) throws SQLException {
    1052        resultSet.updateCharacterStream(columnLabel, reader);
    1053    }
    1054
    1055    /**
    1056     * {@inheritDoc}
    1057     */
    1058    protected final void updateCharacterStream(final String columnLabel, final Reader reader, final int length) throws SQLException {
    1059        resultSet.updateCharacterStream(columnLabel, reader, length);
    1060    }
    1061
    1062    /**
    1063     * {@inheritDoc}
    1064     */
    1065    protected final void updateCharacterStream(final String columnLabel, final Reader reader, final long length) throws SQLException {
    1066        resultSet.updateCharacterStream(columnLabel, reader, length);
    1067    }
    1068
    1069    /**
    1070     * {@inheritDoc}
    1071     */
    1072    protected final void updateClob(final int columnIndex, final Clob x) throws SQLException {
    1073        resultSet.updateClob(columnIndex, x);
    1074    }
    1075
    1076    /**
    1077     * {@inheritDoc}
    1078     */
    1079    protected final void updateClob(final int columnIndex, final Reader reader) throws SQLException {
    1080        resultSet.updateClob(columnIndex, reader);
    1081    }
    1082
    1083    /**
    1084     * {@inheritDoc}
    1085     */
    1086    protected final void updateClob(final int columnIndex, final Reader reader, final long length) throws SQLException {
    1087        resultSet.updateClob(columnIndex, reader, length);
    1088    }
    1089
    1090    /**
    1091     * {@inheritDoc}
    1092     */
    1093    protected final void updateClob(final String columnLabel, final Clob x) throws SQLException {
    1094        resultSet.updateClob(columnLabel, x);
    1095    }
    1096
    1097    /**
    1098     * {@inheritDoc}
    1099     */
    1100    protected final void updateClob(final String columnLabel, final Reader reader) throws SQLException {
    1101        resultSet.updateClob(columnLabel, reader);
    1102    }
    1103
    1104    /**
    1105     * {@inheritDoc}
    1106     */
    1107    protected final void updateClob(final String columnLabel, final Reader reader, final long length) throws SQLException {
    1108        resultSet.updateClob(columnLabel, reader, length);
    1109    }
    1110
    1111    /**
    1112     * {@inheritDoc}
    1113     */
    1114    protected final void updateDate(final int columnIndex, final Date x) throws SQLException {
    1115        resultSet.updateDate(columnIndex, x);
    1116    }
    1117
    1118    /**
    1119     * {@inheritDoc}
    1120     */
    1121    protected final void updateDate(final String columnLabel, final Date x) throws SQLException {
    1122        resultSet.updateDate(columnLabel, x);
    1123    }
    1124
    1125    /**
    1126     * {@inheritDoc}
    1127     */
    1128    protected final void updateDouble(final int columnIndex, final double x) throws SQLException {
    1129        resultSet.updateDouble(columnIndex, x);
    1130    }
    1131
    1132    /**
    1133     * {@inheritDoc}
    1134     */
    1135    protected final void updateDouble(final String columnLabel, final double x) throws SQLException {
    1136        resultSet.updateDouble(columnLabel, x);
    1137    }
    1138
    1139    /**
    1140     * {@inheritDoc}
    1141     */
    1142    protected final void updateFloat(final int columnIndex, final float x) throws SQLException {
    1143        resultSet.updateFloat(columnIndex, x);
    1144    }
    1145
    1146    /**
    1147     * {@inheritDoc}
    1148     */
    1149    protected final void updateFloat(final String columnLabel, final float x) throws SQLException {
    1150        resultSet.updateFloat(columnLabel, x);
    1151    }
    1152
    1153    /**
    1154     * {@inheritDoc}
    1155     */
    1156    protected final void updateInt(final int columnIndex, final int x) throws SQLException {
    1157        resultSet.updateInt(columnIndex, x);
    1158    }
    1159
    1160    /**
    1161     * {@inheritDoc}
    1162     */
    1163    protected final void updateInt(final String columnLabel, final int x) throws SQLException {
    1164        resultSet.updateInt(columnLabel, x);
    1165    }
    1166
    1167    /**
    1168     * {@inheritDoc}
    1169     */
    1170    protected final void updateLong(final int columnIndex, final long x) throws SQLException {
    1171        resultSet.updateLong(columnIndex, x);
    1172    }
    1173
    1174    /**
    1175     * {@inheritDoc}
    1176     */
    1177    protected final void updateLong(final String columnLabel, final long x) throws SQLException {
    1178        resultSet.updateLong(columnLabel, x);
    1179    }
    1180
    1181    /**
    1182     * {@inheritDoc}
    1183     */
    1184    protected final void updateNCharacterStream(final int columnIndex, final Reader x) throws SQLException {
    1185        resultSet.updateNCharacterStream(columnIndex, x);
    1186    }
    1187
    1188    /**
    1189     * {@inheritDoc}
    1190     */
    1191    protected final void updateNCharacterStream(final int columnIndex, final Reader x, final long length) throws SQLException {
    1192        resultSet.updateNCharacterStream(columnIndex, x, length);
    1193    }
    1194
    1195    /**
    1196     * {@inheritDoc}
    1197     */
    1198    protected final void updateNCharacterStream(final String columnLabel, final Reader reader) throws SQLException {
    1199        resultSet.updateNCharacterStream(columnLabel, reader);
    1200    }
    1201
    1202    /**
    1203     * {@inheritDoc}
    1204     */
    1205    protected final void updateNCharacterStream(final String columnLabel, final Reader reader, final long length) throws SQLException {
    1206        resultSet.updateNCharacterStream(columnLabel, reader, length);
    1207    }
    1208
    1209    /**
    1210     * {@inheritDoc}
    1211     */
    1212    protected final void updateNClob(final int columnIndex, final NClob nClob) throws SQLException {
    1213        resultSet.updateNClob(columnIndex, nClob);
    1214    }
    1215
    1216    /**
    1217     * {@inheritDoc}
    1218     */
    1219    protected final void updateNClob(final int columnIndex, final Reader reader) throws SQLException {
    1220        resultSet.updateNClob(columnIndex, reader);
    1221    }
    1222
    1223    /**
    1224     * {@inheritDoc}
    1225     */
    1226    protected final void updateNClob(final int columnIndex, final Reader reader, final long length) throws SQLException {
    1227        resultSet.updateNClob(columnIndex, reader, length);
    1228    }
    1229
    1230    /**
    1231     * {@inheritDoc}
    1232     */
    1233    protected final void updateNClob(final String columnLabel, final NClob nClob) throws SQLException {
    1234        resultSet.updateNClob(columnLabel, nClob);
    1235    }
    1236
    1237    /**
    1238     * {@inheritDoc}
    1239     */
    1240    protected final void updateNClob(final String columnLabel, final Reader reader) throws SQLException {
    1241        resultSet.updateNClob(columnLabel, reader);
    1242    }
    1243
    1244    /**
    1245     * {@inheritDoc}
    1246     */
    1247    protected final void updateNClob(final String columnLabel, final Reader reader, final long length) throws SQLException {
    1248        resultSet.updateNClob(columnLabel, reader, length);
    1249    }
    1250
    1251    /**
    1252     * {@inheritDoc}
    1253     */
    1254    protected final void updateNString(final int columnIndex, final String nString) throws SQLException {
    1255        resultSet.updateNString(columnIndex, nString);
    1256    }
    1257
    1258    /**
    1259     * {@inheritDoc}
    1260     */
    1261    protected final void updateNString(final String columnLabel, final String nString) throws SQLException {
    1262        resultSet.updateNString(columnLabel, nString);
    1263    }
    1264
    1265    /**
    1266     * {@inheritDoc}
    1267     */
    1268    protected final void updateNull(final int columnIndex) throws SQLException {
    1269        resultSet.updateNull(columnIndex);
    1270    }
    1271
    1272    /**
    1273     * {@inheritDoc}
    1274     */
    1275    protected final void updateNull(final String columnLabel) throws SQLException {
    1276        resultSet.updateNull(columnLabel);
    1277    }
    1278
    1279    /**
    1280     * {@inheritDoc}
    1281     */
    1282    protected final void updateObject(final int columnIndex, final Object x) throws SQLException {
    1283        resultSet.updateObject(columnIndex, x);
    1284    }
    1285
    1286    /**
    1287     * {@inheritDoc}
    1288     */
    1289    protected final void updateObject(final int columnIndex, final Object x, final int scaleOrLength) throws SQLException {
    1290        resultSet.updateObject(columnIndex, x, scaleOrLength);
    1291    }
    1292
    1293    /**
    1294     * {@inheritDoc}
    1295     */
    1296    protected final void updateObject(final String columnLabel, final Object x) throws SQLException {
    1297        resultSet.updateObject(columnLabel, x);
    1298    }
    1299
    1300    /**
    1301     * {@inheritDoc}
    1302     */
    1303    protected final void updateObject(final String columnLabel, final Object x, final int scaleOrLength) throws SQLException {
    1304        resultSet.updateObject(columnLabel, x, scaleOrLength);
    1305    }
    1306
    1307    /**
    1308     * {@inheritDoc}
    1309     */
    1310    protected final void updateRef(final int columnIndex, final Ref x) throws SQLException {
    1311        resultSet.updateRef(columnIndex, x);
    1312    }
    1313
    1314    /**
    1315     * {@inheritDoc}
    1316     */
    1317    protected final void updateRef(final String columnLabel, final Ref x) throws SQLException {
    1318        resultSet.updateRef(columnLabel, x);
    1319    }
    1320
    1321    /**
    1322     * {@inheritDoc}
    1323     */
    1324    protected final void updateRow() throws SQLException {
    1325        resultSet.updateRow();
    1326    }
    1327
    1328    /**
    1329     * {@inheritDoc}
    1330     */
    1331    protected final void updateRowId(final int columnIndex, final RowId x) throws SQLException {
    1332        resultSet.updateRowId(columnIndex, x);
    1333    }
    1334
    1335    /**
    1336     * {@inheritDoc}
    1337     */
    1338    protected final void updateRowId(final String columnLabel, final RowId x) throws SQLException {
    1339        resultSet.updateRowId(columnLabel, x);
    1340    }
    1341
    1342    /**
    1343     * {@inheritDoc}
    1344     */
    1345    protected final void updateShort(final int columnIndex, final short x) throws SQLException {
    1346        resultSet.updateShort(columnIndex, x);
    1347    }
    1348
    1349    /**
    1350     * {@inheritDoc}
    1351     */
    1352    protected final void updateShort(final String columnLabel, final short x) throws SQLException {
    1353        resultSet.updateShort(columnLabel, x);
    1354    }
    1355
    1356    /**
    1357     * {@inheritDoc}
    1358     */
    1359    protected final void updateSQLXML(final int columnIndex, final SQLXML xmlObject) throws SQLException {
    1360        resultSet.updateSQLXML(columnIndex, xmlObject);
    1361    }
    1362
    1363    /**
    1364     * {@inheritDoc}
    1365     */
    1366    protected final void updateSQLXML(final String columnLabel, final SQLXML xmlObject) throws SQLException {
    1367        resultSet.updateSQLXML(columnLabel, xmlObject);
    1368    }
    1369
    1370    /**
    1371     * {@inheritDoc}
    1372     */
    1373    protected final void updateString(final int columnIndex, final String x) throws SQLException {
    1374        resultSet.updateString(columnIndex, x);
    1375    }
    1376
    1377    /**
    1378     * {@inheritDoc}
    1379     */
    1380    protected final void updateString(final String columnLabel, final String x) throws SQLException {
    1381        resultSet.updateString(columnLabel, x);
    1382    }
    1383
    1384    /**
    1385     * {@inheritDoc}
    1386     */
    1387    protected final void updateTime(final int columnIndex, final Time x) throws SQLException {
    1388        resultSet.updateTime(columnIndex, x);
    1389    }
    1390
    1391    /**
    1392     * {@inheritDoc}
    1393     */
    1394    protected final void updateTime(final String columnLabel, final Time x) throws SQLException {
    1395        resultSet.updateTime(columnLabel, x);
    1396    }
    1397
    1398    /**
    1399     * {@inheritDoc}
    1400     */
    1401    protected final void updateTimestamp(final int columnIndex, final Timestamp x) throws SQLException {
    1402        resultSet.updateTimestamp(columnIndex, x);
    1403    }
    1404
    1405    /**
    1406     * {@inheritDoc}
    1407     */
    1408    protected final void updateTimestamp(final String columnLabel, final Timestamp x) throws SQLException {
    1409        resultSet.updateTimestamp(columnLabel, x);
    1410    }
    1411
    1412    /**
    1413     * {@inheritDoc}
    1414     */
    1415    protected final boolean wasNull() throws SQLException {
    1416        return resultSet.wasNull();
    1417    }
    1418
    1419}