BaseResultSetHandler.java

  1. /*
  2.  * Licensed to the Apache Software Foundation (ASF) under one or more
  3.  * contributor license agreements.  See the NOTICE file distributed with
  4.  * this work for additional information regarding copyright ownership.
  5.  * The ASF licenses this file to You under the Apache License, Version 2.0
  6.  * (the "License"); you may not use this file except in compliance with
  7.  * the License.  You may obtain a copy of the License at
  8.  *
  9.  *      http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package org.apache.commons.dbutils;

  18. import java.io.InputStream;
  19. import java.io.Reader;
  20. import java.math.BigDecimal;
  21. import java.net.URL;
  22. import java.sql.Array;
  23. import java.sql.Blob;
  24. import java.sql.Clob;
  25. import java.sql.Date;
  26. import java.sql.NClob;
  27. import java.sql.Ref;
  28. import java.sql.ResultSet;
  29. import java.sql.ResultSetMetaData;
  30. import java.sql.RowId;
  31. import java.sql.SQLException;
  32. import java.sql.SQLWarning;
  33. import java.sql.SQLXML;
  34. import java.sql.Statement;
  35. import java.sql.Time;
  36. import java.sql.Timestamp;
  37. import java.util.Calendar;
  38. import java.util.Map;

  39. /**
  40.  * Extensions of this class convert ResultSets into other objects.
  41.  *
  42.  * According to the <i>DRY</i> principle (Don't Repeat Yourself), repeating {@code resultSet}
  43.  * variable inside the {@link ResultSetHandler#handle(ResultSet)} over and over for each iteration
  44.  * can get a little tedious, {@code AbstractResultSetHandler} implicitly gives users access to
  45.  * {@code ResultSet}'s methods.
  46.  *
  47.  * <b>NOTE</b> This class is <i>NOT</i> thread safe!
  48.  *
  49.  * @param <T> the target type the input ResultSet will be converted to.
  50.  * @since 1.6
  51.  */
  52. public abstract class BaseResultSetHandler<T> implements ResultSetHandler<T> {

  53.     /**
  54.      * The adapted ResultSet.
  55.      */
  56.     private ResultSet resultSet;

  57.     /**
  58.      * {@inheritDoc}
  59.      */
  60.     protected final boolean absolute(final int row) throws SQLException {
  61.         return resultSet.absolute(row);
  62.     }

  63.     /**
  64.      * {@inheritDoc}
  65.      */
  66.     protected final void afterLast() throws SQLException {
  67.         resultSet.afterLast();
  68.     }

  69.     /**
  70.      * {@inheritDoc}
  71.      */
  72.     protected final void beforeFirst() throws SQLException {
  73.         resultSet.beforeFirst();
  74.     }

  75.     /**
  76.      * {@inheritDoc}
  77.      */
  78.     protected final void cancelRowUpdates() throws SQLException {
  79.         resultSet.cancelRowUpdates();
  80.     }

  81.     /**
  82.      * {@inheritDoc}
  83.      */
  84.     protected final void clearWarnings() throws SQLException {
  85.         resultSet.clearWarnings();
  86.     }

  87.     /**
  88.      * {@inheritDoc}
  89.      */
  90.     protected final void close() throws SQLException {
  91.         resultSet.close();
  92.     }

  93.     /**
  94.      * {@inheritDoc}
  95.      */
  96.     protected final void deleteRow() throws SQLException {
  97.         resultSet.deleteRow();
  98.     }

  99.     /**
  100.      * {@inheritDoc}
  101.      */
  102.     protected final int findColumn(final String columnLabel) throws SQLException {
  103.         return resultSet.findColumn(columnLabel);
  104.     }

  105.     /**
  106.      * {@inheritDoc}
  107.      */
  108.     protected final boolean first() throws SQLException {
  109.         return resultSet.first();
  110.     }

  111.     protected final ResultSet getAdaptedResultSet() {
  112.         return resultSet;
  113.     }

  114.     /**
  115.      * {@inheritDoc}
  116.      */
  117.     protected final Array getArray(final int columnIndex) throws SQLException {
  118.         return resultSet.getArray(columnIndex);
  119.     }

  120.     /**
  121.      * {@inheritDoc}
  122.      */
  123.     protected final Array getArray(final String columnLabel) throws SQLException {
  124.         return resultSet.getArray(columnLabel);
  125.     }

  126.     /**
  127.      * {@inheritDoc}
  128.      */
  129.     protected final InputStream getAsciiStream(final int columnIndex) throws SQLException {
  130.         return resultSet.getAsciiStream(columnIndex);
  131.     }

  132.     /**
  133.      * {@inheritDoc}
  134.      */
  135.     protected final InputStream getAsciiStream(final String columnLabel) throws SQLException {
  136.         return resultSet.getAsciiStream(columnLabel);
  137.     }

  138.     /**
  139.      * {@inheritDoc}
  140.      */
  141.     protected final BigDecimal getBigDecimal(final int columnIndex) throws SQLException {
  142.         return resultSet.getBigDecimal(columnIndex);
  143.     }

  144.     /**
  145.      * {@inheritDoc}
  146.      */
  147.     @Deprecated
  148.     protected final BigDecimal getBigDecimal(final int columnIndex, final int scale) throws SQLException {
  149.         return resultSet.getBigDecimal(columnIndex, scale);
  150.     }

  151.     /**
  152.      * {@inheritDoc}
  153.      */
  154.     protected final BigDecimal getBigDecimal(final String columnLabel) throws SQLException {
  155.         return resultSet.getBigDecimal(columnLabel);
  156.     }

  157.     /**
  158.      * {@inheritDoc}
  159.      */
  160.     @Deprecated
  161.     protected final BigDecimal getBigDecimal(final String columnLabel, final int scale) throws SQLException {
  162.         return resultSet.getBigDecimal(columnLabel, scale);
  163.     }

  164.     /**
  165.      * {@inheritDoc}
  166.      */
  167.     protected final InputStream getBinaryStream(final int columnIndex) throws SQLException {
  168.         return resultSet.getBinaryStream(columnIndex);
  169.     }

  170.     /**
  171.      * {@inheritDoc}
  172.      */
  173.     protected final InputStream getBinaryStream(final String columnLabel) throws SQLException {
  174.         return resultSet.getBinaryStream(columnLabel);
  175.     }

  176.     /**
  177.      * {@inheritDoc}
  178.      */
  179.     protected final Blob getBlob(final int columnIndex) throws SQLException {
  180.         return resultSet.getBlob(columnIndex);
  181.     }

  182.     /**
  183.      * {@inheritDoc}
  184.      */
  185.     protected final Blob getBlob(final String columnLabel) throws SQLException {
  186.         return resultSet.getBlob(columnLabel);
  187.     }

  188.     /**
  189.      * {@inheritDoc}
  190.      */
  191.     protected final boolean getBoolean(final int columnIndex) throws SQLException {
  192.         return resultSet.getBoolean(columnIndex);
  193.     }

  194.     /**
  195.      * {@inheritDoc}
  196.      */
  197.     protected final boolean getBoolean(final String columnLabel) throws SQLException {
  198.         return resultSet.getBoolean(columnLabel);
  199.     }

  200.     /**
  201.      * {@inheritDoc}
  202.      */
  203.     protected final byte getByte(final int columnIndex) throws SQLException {
  204.         return resultSet.getByte(columnIndex);
  205.     }

  206.     /**
  207.      * {@inheritDoc}
  208.      */
  209.     protected final byte getByte(final String columnLabel) throws SQLException {
  210.         return resultSet.getByte(columnLabel);
  211.     }

  212.     /**
  213.      * {@inheritDoc}
  214.      */
  215.     protected final byte[] getBytes(final int columnIndex) throws SQLException {
  216.         return resultSet.getBytes(columnIndex);
  217.     }

  218.     /**
  219.      * {@inheritDoc}
  220.      */
  221.     protected final byte[] getBytes(final String columnLabel) throws SQLException {
  222.         return resultSet.getBytes(columnLabel);
  223.     }

  224.     /**
  225.      * {@inheritDoc}
  226.      */
  227.     protected final Reader getCharacterStream(final int columnIndex) throws SQLException {
  228.         return resultSet.getCharacterStream(columnIndex);
  229.     }

  230.     /**
  231.      * {@inheritDoc}
  232.      */
  233.     protected final Reader getCharacterStream(final String columnLabel) throws SQLException {
  234.         return resultSet.getCharacterStream(columnLabel);
  235.     }

  236.     /**
  237.      * {@inheritDoc}
  238.      */
  239.     protected final Clob getClob(final int columnIndex) throws SQLException {
  240.         return resultSet.getClob(columnIndex);
  241.     }

  242.     /**
  243.      * {@inheritDoc}
  244.      */
  245.     protected final Clob getClob(final String columnLabel) throws SQLException {
  246.         return resultSet.getClob(columnLabel);
  247.     }

  248.     /**
  249.      * {@inheritDoc}
  250.      */
  251.     protected final int getConcurrency() throws SQLException {
  252.         return resultSet.getConcurrency();
  253.     }

  254.     /**
  255.      * {@inheritDoc}
  256.      */
  257.     protected final String getCursorName() throws SQLException {
  258.         return resultSet.getCursorName();
  259.     }

  260.     /**
  261.      * {@inheritDoc}
  262.      */
  263.     protected final Date getDate(final int columnIndex) throws SQLException {
  264.         return resultSet.getDate(columnIndex);
  265.     }

  266.     /**
  267.      * {@inheritDoc}
  268.      */
  269.     protected final Date getDate(final int columnIndex, final Calendar cal) throws SQLException {
  270.         return resultSet.getDate(columnIndex, cal);
  271.     }

  272.     /**
  273.      * {@inheritDoc}
  274.      */
  275.     protected final Date getDate(final String columnLabel) throws SQLException {
  276.         return resultSet.getDate(columnLabel);
  277.     }

  278.     /**
  279.      * {@inheritDoc}
  280.      */
  281.     protected final Date getDate(final String columnLabel, final Calendar cal) throws SQLException {
  282.         return resultSet.getDate(columnLabel, cal);
  283.     }

  284.     /**
  285.      * {@inheritDoc}
  286.      */
  287.     protected final double getDouble(final int columnIndex) throws SQLException {
  288.         return resultSet.getDouble(columnIndex);
  289.     }

  290.     /**
  291.      * {@inheritDoc}
  292.      */
  293.     protected final double getDouble(final String columnLabel) throws SQLException {
  294.         return resultSet.getDouble(columnLabel);
  295.     }

  296.     /**
  297.      * {@inheritDoc}
  298.      */
  299.     protected final int getFetchDirection() throws SQLException {
  300.         return resultSet.getFetchDirection();
  301.     }

  302.     /**
  303.      * {@inheritDoc}
  304.      */
  305.     protected final int getFetchSize() throws SQLException {
  306.         return resultSet.getFetchSize();
  307.     }

  308.     /**
  309.      * {@inheritDoc}
  310.      */
  311.     protected final float getFloat(final int columnIndex) throws SQLException {
  312.         return resultSet.getFloat(columnIndex);
  313.     }

  314.     /**
  315.      * {@inheritDoc}
  316.      */
  317.     protected final float getFloat(final String columnLabel) throws SQLException {
  318.         return resultSet.getFloat(columnLabel);
  319.     }

  320.     /**
  321.      * {@inheritDoc}
  322.      */
  323.     protected final int getHoldability() throws SQLException {
  324.         return resultSet.getHoldability();
  325.     }

  326.     /**
  327.      * {@inheritDoc}
  328.      */
  329.     protected final int getInt(final int columnIndex) throws SQLException {
  330.         return resultSet.getInt(columnIndex);
  331.     }

  332.     /**
  333.      * {@inheritDoc}
  334.      */
  335.     protected final int getInt(final String columnLabel) throws SQLException {
  336.         return resultSet.getInt(columnLabel);
  337.     }

  338.     /**
  339.      * {@inheritDoc}
  340.      */
  341.     protected final long getLong(final int columnIndex) throws SQLException {
  342.         return resultSet.getLong(columnIndex);
  343.     }

  344.     /**
  345.      * {@inheritDoc}
  346.      */
  347.     protected final long getLong(final String columnLabel) throws SQLException {
  348.         return resultSet.getLong(columnLabel);
  349.     }

  350.     /**
  351.      * {@inheritDoc}
  352.      */
  353.     protected final ResultSetMetaData getMetaData() throws SQLException {
  354.         return resultSet.getMetaData();
  355.     }

  356.     /**
  357.      * {@inheritDoc}
  358.      */
  359.     protected final Reader getNCharacterStream(final int columnIndex) throws SQLException {
  360.         return resultSet.getNCharacterStream(columnIndex);
  361.     }

  362.     /**
  363.      * {@inheritDoc}
  364.      */
  365.     protected final Reader getNCharacterStream(final String columnLabel) throws SQLException {
  366.         return resultSet.getNCharacterStream(columnLabel);
  367.     }

  368.     /**
  369.      * {@inheritDoc}
  370.      */
  371.     protected final NClob getNClob(final int columnIndex) throws SQLException {
  372.         return resultSet.getNClob(columnIndex);
  373.     }

  374.     /**
  375.      * {@inheritDoc}
  376.      */
  377.     protected final NClob getNClob(final String columnLabel) throws SQLException {
  378.         return resultSet.getNClob(columnLabel);
  379.     }

  380.     /**
  381.      * {@inheritDoc}
  382.      */
  383.     protected final String getNString(final int columnIndex) throws SQLException {
  384.         return resultSet.getNString(columnIndex);
  385.     }

  386.     /**
  387.      * {@inheritDoc}
  388.      */
  389.     protected final String getNString(final String columnLabel) throws SQLException {
  390.         return resultSet.getNString(columnLabel);
  391.     }

  392.     /**
  393.      * {@inheritDoc}
  394.      */
  395.     protected final Object getObject(final int columnIndex) throws SQLException {
  396.         return resultSet.getObject(columnIndex);
  397.     }

  398.     /**
  399.      * {@inheritDoc}
  400.      */
  401.     protected final Object getObject(final int columnIndex, final Map<String, Class<?>> map) throws SQLException {
  402.         return resultSet.getObject(columnIndex, map);
  403.     }

  404.     /**
  405.      * {@inheritDoc}
  406.      */
  407.     protected final Object getObject(final String columnLabel) throws SQLException {
  408.         return resultSet.getObject(columnLabel);
  409.     }

  410.     /**
  411.      * {@inheritDoc}
  412.      */
  413.     protected final Object getObject(final String columnLabel, final Map<String, Class<?>> map) throws SQLException {
  414.         return resultSet.getObject(columnLabel, map);
  415.     }

  416.     /**
  417.      * {@inheritDoc}
  418.      */
  419.     protected final Ref getRef(final int columnIndex) throws SQLException {
  420.         return resultSet.getRef(columnIndex);
  421.     }

  422.     /**
  423.      * {@inheritDoc}
  424.      */
  425.     protected final Ref getRef(final String columnLabel) throws SQLException {
  426.         return resultSet.getRef(columnLabel);
  427.     }

  428.     /**
  429.      * {@inheritDoc}
  430.      */
  431.     protected final int getRow() throws SQLException {
  432.         return resultSet.getRow();
  433.     }

  434.     /**
  435.      * {@inheritDoc}
  436.      */
  437.     protected final RowId getRowId(final int columnIndex) throws SQLException {
  438.         return resultSet.getRowId(columnIndex);
  439.     }

  440.     /**
  441.      * {@inheritDoc}
  442.      */
  443.     protected final RowId getRowId(final String columnLabel) throws SQLException {
  444.         return resultSet.getRowId(columnLabel);
  445.     }

  446.     /**
  447.      * {@inheritDoc}
  448.      */
  449.     protected final short getShort(final int columnIndex) throws SQLException {
  450.         return resultSet.getShort(columnIndex);
  451.     }

  452.     /**
  453.      * {@inheritDoc}
  454.      */
  455.     protected final short getShort(final String columnLabel) throws SQLException {
  456.         return resultSet.getShort(columnLabel);
  457.     }

  458.     /**
  459.      * {@inheritDoc}
  460.      */
  461.     protected final SQLXML getSQLXML(final int columnIndex) throws SQLException {
  462.         return resultSet.getSQLXML(columnIndex);
  463.     }

  464.     /**
  465.      * {@inheritDoc}
  466.      */
  467.     protected final SQLXML getSQLXML(final String columnLabel) throws SQLException {
  468.         return resultSet.getSQLXML(columnLabel);
  469.     }

  470.     /**
  471.      * {@inheritDoc}
  472.      */
  473.     protected final Statement getStatement() throws SQLException {
  474.         return resultSet.getStatement();
  475.     }

  476.     /**
  477.      * {@inheritDoc}
  478.      */
  479.     protected final String getString(final int columnIndex) throws SQLException {
  480.         return resultSet.getString(columnIndex);
  481.     }

  482.     /**
  483.      * {@inheritDoc}
  484.      */
  485.     protected final String getString(final String columnLabel) throws SQLException {
  486.         return resultSet.getString(columnLabel);
  487.     }

  488.     /**
  489.      * {@inheritDoc}
  490.      */
  491.     protected final Time getTime(final int columnIndex) throws SQLException {
  492.         return resultSet.getTime(columnIndex);
  493.     }

  494.     /**
  495.      * {@inheritDoc}
  496.      */
  497.     protected final Time getTime(final int columnIndex, final Calendar cal) throws SQLException {
  498.         return resultSet.getTime(columnIndex, cal);
  499.     }

  500.     /**
  501.      * {@inheritDoc}
  502.      */
  503.     protected final Time getTime(final String columnLabel) throws SQLException {
  504.         return resultSet.getTime(columnLabel);
  505.     }

  506.     /**
  507.      * {@inheritDoc}
  508.      */
  509.     protected final Time getTime(final String columnLabel, final Calendar cal) throws SQLException {
  510.         return resultSet.getTime(columnLabel, cal);
  511.     }

  512.     /**
  513.      * {@inheritDoc}
  514.      */
  515.     protected final Timestamp getTimestamp(final int columnIndex) throws SQLException {
  516.         return resultSet.getTimestamp(columnIndex);
  517.     }

  518.     /**
  519.      * {@inheritDoc}
  520.      */
  521.     protected final Timestamp getTimestamp(final int columnIndex, final Calendar cal) throws SQLException {
  522.         return resultSet.getTimestamp(columnIndex, cal);
  523.     }

  524.     /**
  525.      * {@inheritDoc}
  526.      */
  527.     protected final Timestamp getTimestamp(final String columnLabel) throws SQLException {
  528.         return resultSet.getTimestamp(columnLabel);
  529.     }

  530.     /**
  531.      * {@inheritDoc}
  532.      */
  533.     protected final Timestamp getTimestamp(final String columnLabel, final Calendar cal) throws SQLException {
  534.         return resultSet.getTimestamp(columnLabel, cal);
  535.     }

  536.     /**
  537.      * {@inheritDoc}
  538.      */
  539.     protected final int getType() throws SQLException {
  540.         return resultSet.getType();
  541.     }

  542.     /**
  543.      * {@inheritDoc}
  544.      */
  545.     @Deprecated
  546.     protected final InputStream getUnicodeStream(final int columnIndex) throws SQLException {
  547.         return resultSet.getUnicodeStream(columnIndex);
  548.     }

  549.     /**
  550.      * {@inheritDoc}
  551.      */
  552.     @Deprecated
  553.     protected final InputStream getUnicodeStream(final String columnLabel) throws SQLException {
  554.         return resultSet.getUnicodeStream(columnLabel);
  555.     }

  556.     /**
  557.      * {@inheritDoc}
  558.      */
  559.     protected final URL getURL(final int columnIndex) throws SQLException {
  560.         return resultSet.getURL(columnIndex);
  561.     }

  562.     /**
  563.      * {@inheritDoc}
  564.      */
  565.     protected final URL getURL(final String columnLabel) throws SQLException {
  566.         return resultSet.getURL(columnLabel);
  567.     }

  568.     /**
  569.      * {@inheritDoc}
  570.      */
  571.     protected final SQLWarning getWarnings() throws SQLException {
  572.         return resultSet.getWarnings();
  573.     }

  574.     /**
  575.      * Turn the {@code ResultSet} into an Object.
  576.      *
  577.      * @return An Object initialized with {@code ResultSet} data
  578.      * @throws SQLException if a database access error occurs
  579.      * @see ResultSetHandler#handle(ResultSet)
  580.      */
  581.     protected abstract T handle() throws SQLException;

  582.     /**
  583.      * {@inheritDoc}
  584.      */
  585.     @Override
  586.     public final T handle(final ResultSet rs) throws SQLException {
  587.         if (this.resultSet != null) {
  588.             throw new IllegalStateException("Re-entry not allowed!");
  589.         }

  590.         this.resultSet = rs;

  591.         try {
  592.             return handle();
  593.         } finally {
  594.             this.resultSet = null;
  595.         }
  596.     }

  597.     /**
  598.      * {@inheritDoc}
  599.      */
  600.     protected final void insertRow() throws SQLException {
  601.         resultSet.insertRow();
  602.     }

  603.     /**
  604.      * {@inheritDoc}
  605.      */
  606.     protected final boolean isAfterLast() throws SQLException {
  607.         return resultSet.isAfterLast();
  608.     }

  609.     /**
  610.      * {@inheritDoc}
  611.      */
  612.     protected final boolean isBeforeFirst() throws SQLException {
  613.         return resultSet.isBeforeFirst();
  614.     }

  615.     /**
  616.      * {@inheritDoc}
  617.      */
  618.     protected final boolean isClosed() throws SQLException {
  619.         return resultSet.isClosed();
  620.     }

  621.     /**
  622.      * {@inheritDoc}
  623.      */
  624.     protected final boolean isFirst() throws SQLException {
  625.         return resultSet.isFirst();
  626.     }

  627.     /**
  628.      * {@inheritDoc}
  629.      */
  630.     protected final boolean isLast() throws SQLException {
  631.         return resultSet.isLast();
  632.     }

  633.     /**
  634.      * {@inheritDoc}
  635.      */
  636.     protected final boolean isWrapperFor(final Class<?> iface) throws SQLException {
  637.         return resultSet.isWrapperFor(iface);
  638.     }

  639.     /**
  640.      * {@inheritDoc}
  641.      */
  642.     protected final boolean last() throws SQLException {
  643.         return resultSet.last();
  644.     }

  645.     /**
  646.      * {@inheritDoc}
  647.      */
  648.     protected final void moveToCurrentRow() throws SQLException {
  649.         resultSet.moveToCurrentRow();
  650.     }

  651.     /**
  652.      * {@inheritDoc}
  653.      */
  654.     protected final void moveToInsertRow() throws SQLException {
  655.         resultSet.moveToInsertRow();
  656.     }

  657.     /**
  658.      * {@inheritDoc}
  659.      */
  660.     protected final boolean next() throws SQLException {
  661.         return resultSet.next();
  662.     }

  663.     /**
  664.      * {@inheritDoc}
  665.      */
  666.     protected final boolean previous() throws SQLException {
  667.         return resultSet.previous();
  668.     }

  669.     /**
  670.      * {@inheritDoc}
  671.      */
  672.     protected final void refreshRow() throws SQLException {
  673.         resultSet.refreshRow();
  674.     }

  675.     /**
  676.      * {@inheritDoc}
  677.      */
  678.     protected final boolean relative(final int rows) throws SQLException {
  679.         return resultSet.relative(rows);
  680.     }

  681.     /**
  682.      * {@inheritDoc}
  683.      */
  684.     protected final boolean rowDeleted() throws SQLException {
  685.         return resultSet.rowDeleted();
  686.     }

  687.     /**
  688.      * {@inheritDoc}
  689.      */
  690.     protected final boolean rowInserted() throws SQLException {
  691.         return resultSet.rowInserted();
  692.     }

  693.     /**
  694.      * {@inheritDoc}
  695.      */
  696.     protected final boolean rowUpdated() throws SQLException {
  697.         return resultSet.rowUpdated();
  698.     }

  699.     /**
  700.      * {@inheritDoc}
  701.      */
  702.     protected final void setFetchDirection(final int direction) throws SQLException {
  703.         resultSet.setFetchDirection(direction);
  704.     }

  705.     /**
  706.      * {@inheritDoc}
  707.      */
  708.     protected final void setFetchSize(final int rows) throws SQLException {
  709.         resultSet.setFetchSize(rows);
  710.     }

  711.     /**
  712.      * {@inheritDoc}
  713.      */
  714.     protected final <E> E unwrap(final Class<E> iface) throws SQLException {
  715.         return resultSet.unwrap(iface);
  716.     }

  717.     /**
  718.      * {@inheritDoc}
  719.      */
  720.     protected final void updateArray(final int columnIndex, final Array x) throws SQLException {
  721.         resultSet.updateArray(columnIndex, x);
  722.     }

  723.     /**
  724.      * {@inheritDoc}
  725.      */
  726.     protected final void updateArray(final String columnLabel, final Array x) throws SQLException {
  727.         resultSet.updateArray(columnLabel, x);
  728.     }

  729.     /**
  730.      * {@inheritDoc}
  731.      */
  732.     protected final void updateAsciiStream(final int columnIndex, final InputStream x) throws SQLException {
  733.         resultSet.updateAsciiStream(columnIndex, x);
  734.     }

  735.     /**
  736.      * {@inheritDoc}
  737.      */
  738.     protected final void updateAsciiStream(final int columnIndex, final InputStream x, final int length) throws SQLException {
  739.         resultSet.updateAsciiStream(columnIndex, x, length);
  740.     }

  741.     /**
  742.      * {@inheritDoc}
  743.      */
  744.     protected final void updateAsciiStream(final int columnIndex, final InputStream x, final long length) throws SQLException {
  745.         resultSet.updateAsciiStream(columnIndex, x, length);
  746.     }

  747.     /**
  748.      * {@inheritDoc}
  749.      */
  750.     protected final void updateAsciiStream(final String columnLabel, final InputStream x) throws SQLException {
  751.         resultSet.updateAsciiStream(columnLabel, x);
  752.     }

  753.     /**
  754.      * {@inheritDoc}
  755.      */
  756.     protected final void updateAsciiStream(final String columnLabel, final InputStream x, final int length) throws SQLException {
  757.         resultSet.updateAsciiStream(columnLabel, x, length);
  758.     }

  759.     /**
  760.      * {@inheritDoc}
  761.      */
  762.     protected final void updateAsciiStream(final String columnLabel, final InputStream x, final long length) throws SQLException {
  763.         resultSet.updateAsciiStream(columnLabel, x, length);
  764.     }

  765.     /**
  766.      * {@inheritDoc}
  767.      */
  768.     protected final void updateBigDecimal(final int columnIndex, final BigDecimal x) throws SQLException {
  769.         resultSet.updateBigDecimal(columnIndex, x);
  770.     }

  771.     /**
  772.      * {@inheritDoc}
  773.      */
  774.     protected final void updateBigDecimal(final String columnLabel, final BigDecimal x) throws SQLException {
  775.         resultSet.updateBigDecimal(columnLabel, x);
  776.     }

  777.     /**
  778.      * {@inheritDoc}
  779.      */
  780.     protected final void updateBinaryStream(final int columnIndex, final InputStream x) throws SQLException {
  781.         resultSet.updateBinaryStream(columnIndex, x);
  782.     }

  783.     /**
  784.      * {@inheritDoc}
  785.      */
  786.     protected final void updateBinaryStream(final int columnIndex, final InputStream x, final int length) throws SQLException {
  787.         resultSet.updateBinaryStream(columnIndex, x, length);
  788.     }

  789.     /**
  790.      * {@inheritDoc}
  791.      */
  792.     protected final void updateBinaryStream(final int columnIndex, final InputStream x, final long length) throws SQLException {
  793.         resultSet.updateBinaryStream(columnIndex, x, length);
  794.     }

  795.     /**
  796.      * {@inheritDoc}
  797.      */
  798.     protected final void updateBinaryStream(final String columnLabel, final InputStream x) throws SQLException {
  799.         resultSet.updateBinaryStream(columnLabel, x);
  800.     }

  801.     /**
  802.      * {@inheritDoc}
  803.      */
  804.     protected final void updateBinaryStream(final String columnLabel, final InputStream x, final int length) throws SQLException {
  805.         resultSet.updateBinaryStream(columnLabel, x, length);
  806.     }

  807.     /**
  808.      * {@inheritDoc}
  809.      */
  810.     protected final void updateBinaryStream(final String columnLabel, final InputStream x, final long length) throws SQLException {
  811.         resultSet.updateBinaryStream(columnLabel, x, length);
  812.     }

  813.     /**
  814.      * {@inheritDoc}
  815.      */
  816.     protected final void updateBlob(final int columnIndex, final Blob x) throws SQLException {
  817.         resultSet.updateBlob(columnIndex, x);
  818.     }

  819.     /**
  820.      * {@inheritDoc}
  821.      */
  822.     protected final void updateBlob(final int columnIndex, final InputStream inputStream) throws SQLException {
  823.         resultSet.updateBlob(columnIndex, inputStream);
  824.     }

  825.     /**
  826.      * {@inheritDoc}
  827.      */
  828.     protected final void updateBlob(final int columnIndex, final InputStream inputStream, final long length) throws SQLException {
  829.         resultSet.updateBlob(columnIndex, inputStream, length);
  830.     }

  831.     /**
  832.      * {@inheritDoc}
  833.      */
  834.     protected final void updateBlob(final String columnLabel, final Blob x) throws SQLException {
  835.         resultSet.updateBlob(columnLabel, x);
  836.     }

  837.     /**
  838.      * {@inheritDoc}
  839.      */
  840.     protected final void updateBlob(final String columnLabel, final InputStream inputStream) throws SQLException {
  841.         resultSet.updateBlob(columnLabel, inputStream);
  842.     }

  843.     /**
  844.      * {@inheritDoc}
  845.      */
  846.     protected final void updateBlob(final String columnLabel, final InputStream inputStream, final long length) throws SQLException {
  847.         resultSet.updateBlob(columnLabel, inputStream, length);
  848.     }

  849.     /**
  850.      * {@inheritDoc}
  851.      */
  852.     protected final void updateBoolean(final int columnIndex, final boolean x) throws SQLException {
  853.         resultSet.updateBoolean(columnIndex, x);
  854.     }

  855.     /**
  856.      * {@inheritDoc}
  857.      */
  858.     protected final void updateBoolean(final String columnLabel, final boolean x) throws SQLException {
  859.         resultSet.updateBoolean(columnLabel, x);
  860.     }

  861.     /**
  862.      * {@inheritDoc}
  863.      */
  864.     protected final void updateByte(final int columnIndex, final byte x) throws SQLException {
  865.         resultSet.updateByte(columnIndex, x);
  866.     }

  867.     /**
  868.      * {@inheritDoc}
  869.      */
  870.     protected final void updateByte(final String columnLabel, final byte x) throws SQLException {
  871.         resultSet.updateByte(columnLabel, x);
  872.     }

  873.     /**
  874.      * {@inheritDoc}
  875.      */
  876.     protected final void updateBytes(final int columnIndex, final byte[] x) throws SQLException {
  877.         resultSet.updateBytes(columnIndex, x);
  878.     }

  879.     /**
  880.      * {@inheritDoc}
  881.      */
  882.     protected final void updateBytes(final String columnLabel, final byte[] x) throws SQLException {
  883.         resultSet.updateBytes(columnLabel, x);
  884.     }

  885.     /**
  886.      * {@inheritDoc}
  887.      */
  888.     protected final void updateCharacterStream(final int columnIndex, final Reader x) throws SQLException {
  889.         resultSet.updateCharacterStream(columnIndex, x);
  890.     }

  891.     /**
  892.      * {@inheritDoc}
  893.      */
  894.     protected final void updateCharacterStream(final int columnIndex, final Reader x, final int length) throws SQLException {
  895.         resultSet.updateCharacterStream(columnIndex, x, length);
  896.     }

  897.     /**
  898.      * {@inheritDoc}
  899.      */
  900.     protected final void updateCharacterStream(final int columnIndex, final Reader x, final long length) throws SQLException {
  901.         resultSet.updateCharacterStream(columnIndex, x, length);
  902.     }

  903.     /**
  904.      * {@inheritDoc}
  905.      */
  906.     protected final void updateCharacterStream(final String columnLabel, final Reader reader) throws SQLException {
  907.         resultSet.updateCharacterStream(columnLabel, reader);
  908.     }

  909.     /**
  910.      * {@inheritDoc}
  911.      */
  912.     protected final void updateCharacterStream(final String columnLabel, final Reader reader, final int length) throws SQLException {
  913.         resultSet.updateCharacterStream(columnLabel, reader, length);
  914.     }

  915.     /**
  916.      * {@inheritDoc}
  917.      */
  918.     protected final void updateCharacterStream(final String columnLabel, final Reader reader, final long length) throws SQLException {
  919.         resultSet.updateCharacterStream(columnLabel, reader, length);
  920.     }

  921.     /**
  922.      * {@inheritDoc}
  923.      */
  924.     protected final void updateClob(final int columnIndex, final Clob x) throws SQLException {
  925.         resultSet.updateClob(columnIndex, x);
  926.     }

  927.     /**
  928.      * {@inheritDoc}
  929.      */
  930.     protected final void updateClob(final int columnIndex, final Reader reader) throws SQLException {
  931.         resultSet.updateClob(columnIndex, reader);
  932.     }

  933.     /**
  934.      * {@inheritDoc}
  935.      */
  936.     protected final void updateClob(final int columnIndex, final Reader reader, final long length) throws SQLException {
  937.         resultSet.updateClob(columnIndex, reader, length);
  938.     }

  939.     /**
  940.      * {@inheritDoc}
  941.      */
  942.     protected final void updateClob(final String columnLabel, final Clob x) throws SQLException {
  943.         resultSet.updateClob(columnLabel, x);
  944.     }

  945.     /**
  946.      * {@inheritDoc}
  947.      */
  948.     protected final void updateClob(final String columnLabel, final Reader reader) throws SQLException {
  949.         resultSet.updateClob(columnLabel, reader);
  950.     }

  951.     /**
  952.      * {@inheritDoc}
  953.      */
  954.     protected final void updateClob(final String columnLabel, final Reader reader, final long length) throws SQLException {
  955.         resultSet.updateClob(columnLabel, reader, length);
  956.     }

  957.     /**
  958.      * {@inheritDoc}
  959.      */
  960.     protected final void updateDate(final int columnIndex, final Date x) throws SQLException {
  961.         resultSet.updateDate(columnIndex, x);
  962.     }

  963.     /**
  964.      * {@inheritDoc}
  965.      */
  966.     protected final void updateDate(final String columnLabel, final Date x) throws SQLException {
  967.         resultSet.updateDate(columnLabel, x);
  968.     }

  969.     /**
  970.      * {@inheritDoc}
  971.      */
  972.     protected final void updateDouble(final int columnIndex, final double x) throws SQLException {
  973.         resultSet.updateDouble(columnIndex, x);
  974.     }

  975.     /**
  976.      * {@inheritDoc}
  977.      */
  978.     protected final void updateDouble(final String columnLabel, final double x) throws SQLException {
  979.         resultSet.updateDouble(columnLabel, x);
  980.     }

  981.     /**
  982.      * {@inheritDoc}
  983.      */
  984.     protected final void updateFloat(final int columnIndex, final float x) throws SQLException {
  985.         resultSet.updateFloat(columnIndex, x);
  986.     }

  987.     /**
  988.      * {@inheritDoc}
  989.      */
  990.     protected final void updateFloat(final String columnLabel, final float x) throws SQLException {
  991.         resultSet.updateFloat(columnLabel, x);
  992.     }

  993.     /**
  994.      * {@inheritDoc}
  995.      */
  996.     protected final void updateInt(final int columnIndex, final int x) throws SQLException {
  997.         resultSet.updateInt(columnIndex, x);
  998.     }

  999.     /**
  1000.      * {@inheritDoc}
  1001.      */
  1002.     protected final void updateInt(final String columnLabel, final int x) throws SQLException {
  1003.         resultSet.updateInt(columnLabel, x);
  1004.     }

  1005.     /**
  1006.      * {@inheritDoc}
  1007.      */
  1008.     protected final void updateLong(final int columnIndex, final long x) throws SQLException {
  1009.         resultSet.updateLong(columnIndex, x);
  1010.     }

  1011.     /**
  1012.      * {@inheritDoc}
  1013.      */
  1014.     protected final void updateLong(final String columnLabel, final long x) throws SQLException {
  1015.         resultSet.updateLong(columnLabel, x);
  1016.     }

  1017.     /**
  1018.      * {@inheritDoc}
  1019.      */
  1020.     protected final void updateNCharacterStream(final int columnIndex, final Reader x) throws SQLException {
  1021.         resultSet.updateNCharacterStream(columnIndex, x);
  1022.     }

  1023.     /**
  1024.      * {@inheritDoc}
  1025.      */
  1026.     protected final void updateNCharacterStream(final int columnIndex, final Reader x, final long length) throws SQLException {
  1027.         resultSet.updateNCharacterStream(columnIndex, x, length);
  1028.     }

  1029.     /**
  1030.      * {@inheritDoc}
  1031.      */
  1032.     protected final void updateNCharacterStream(final String columnLabel, final Reader reader) throws SQLException {
  1033.         resultSet.updateNCharacterStream(columnLabel, reader);
  1034.     }

  1035.     /**
  1036.      * {@inheritDoc}
  1037.      */
  1038.     protected final void updateNCharacterStream(final String columnLabel, final Reader reader, final long length) throws SQLException {
  1039.         resultSet.updateNCharacterStream(columnLabel, reader, length);
  1040.     }

  1041.     /**
  1042.      * {@inheritDoc}
  1043.      */
  1044.     protected final void updateNClob(final int columnIndex, final NClob nClob) throws SQLException {
  1045.         resultSet.updateNClob(columnIndex, nClob);
  1046.     }

  1047.     /**
  1048.      * {@inheritDoc}
  1049.      */
  1050.     protected final void updateNClob(final int columnIndex, final Reader reader) throws SQLException {
  1051.         resultSet.updateNClob(columnIndex, reader);
  1052.     }

  1053.     /**
  1054.      * {@inheritDoc}
  1055.      */
  1056.     protected final void updateNClob(final int columnIndex, final Reader reader, final long length) throws SQLException {
  1057.         resultSet.updateNClob(columnIndex, reader, length);
  1058.     }

  1059.     /**
  1060.      * {@inheritDoc}
  1061.      */
  1062.     protected final void updateNClob(final String columnLabel, final NClob nClob) throws SQLException {
  1063.         resultSet.updateNClob(columnLabel, nClob);
  1064.     }

  1065.     /**
  1066.      * {@inheritDoc}
  1067.      */
  1068.     protected final void updateNClob(final String columnLabel, final Reader reader) throws SQLException {
  1069.         resultSet.updateNClob(columnLabel, reader);
  1070.     }

  1071.     /**
  1072.      * {@inheritDoc}
  1073.      */
  1074.     protected final void updateNClob(final String columnLabel, final Reader reader, final long length) throws SQLException {
  1075.         resultSet.updateNClob(columnLabel, reader, length);
  1076.     }

  1077.     /**
  1078.      * {@inheritDoc}
  1079.      */
  1080.     protected final void updateNString(final int columnIndex, final String nString) throws SQLException {
  1081.         resultSet.updateNString(columnIndex, nString);
  1082.     }

  1083.     /**
  1084.      * {@inheritDoc}
  1085.      */
  1086.     protected final void updateNString(final String columnLabel, final String nString) throws SQLException {
  1087.         resultSet.updateNString(columnLabel, nString);
  1088.     }

  1089.     /**
  1090.      * {@inheritDoc}
  1091.      */
  1092.     protected final void updateNull(final int columnIndex) throws SQLException {
  1093.         resultSet.updateNull(columnIndex);
  1094.     }

  1095.     /**
  1096.      * {@inheritDoc}
  1097.      */
  1098.     protected final void updateNull(final String columnLabel) throws SQLException {
  1099.         resultSet.updateNull(columnLabel);
  1100.     }

  1101.     /**
  1102.      * {@inheritDoc}
  1103.      */
  1104.     protected final void updateObject(final int columnIndex, final Object x) throws SQLException {
  1105.         resultSet.updateObject(columnIndex, x);
  1106.     }

  1107.     /**
  1108.      * {@inheritDoc}
  1109.      */
  1110.     protected final void updateObject(final int columnIndex, final Object x, final int scaleOrLength) throws SQLException {
  1111.         resultSet.updateObject(columnIndex, x, scaleOrLength);
  1112.     }

  1113.     /**
  1114.      * {@inheritDoc}
  1115.      */
  1116.     protected final void updateObject(final String columnLabel, final Object x) throws SQLException {
  1117.         resultSet.updateObject(columnLabel, x);
  1118.     }

  1119.     /**
  1120.      * {@inheritDoc}
  1121.      */
  1122.     protected final void updateObject(final String columnLabel, final Object x, final int scaleOrLength) throws SQLException {
  1123.         resultSet.updateObject(columnLabel, x, scaleOrLength);
  1124.     }

  1125.     /**
  1126.      * {@inheritDoc}
  1127.      */
  1128.     protected final void updateRef(final int columnIndex, final Ref x) throws SQLException {
  1129.         resultSet.updateRef(columnIndex, x);
  1130.     }

  1131.     /**
  1132.      * {@inheritDoc}
  1133.      */
  1134.     protected final void updateRef(final String columnLabel, final Ref x) throws SQLException {
  1135.         resultSet.updateRef(columnLabel, x);
  1136.     }

  1137.     /**
  1138.      * {@inheritDoc}
  1139.      */
  1140.     protected final void updateRow() throws SQLException {
  1141.         resultSet.updateRow();
  1142.     }

  1143.     /**
  1144.      * {@inheritDoc}
  1145.      */
  1146.     protected final void updateRowId(final int columnIndex, final RowId x) throws SQLException {
  1147.         resultSet.updateRowId(columnIndex, x);
  1148.     }

  1149.     /**
  1150.      * {@inheritDoc}
  1151.      */
  1152.     protected final void updateRowId(final String columnLabel, final RowId x) throws SQLException {
  1153.         resultSet.updateRowId(columnLabel, x);
  1154.     }

  1155.     /**
  1156.      * {@inheritDoc}
  1157.      */
  1158.     protected final void updateShort(final int columnIndex, final short x) throws SQLException {
  1159.         resultSet.updateShort(columnIndex, x);
  1160.     }

  1161.     /**
  1162.      * {@inheritDoc}
  1163.      */
  1164.     protected final void updateShort(final String columnLabel, final short x) throws SQLException {
  1165.         resultSet.updateShort(columnLabel, x);
  1166.     }

  1167.     /**
  1168.      * {@inheritDoc}
  1169.      */
  1170.     protected final void updateSQLXML(final int columnIndex, final SQLXML xmlObject) throws SQLException {
  1171.         resultSet.updateSQLXML(columnIndex, xmlObject);
  1172.     }

  1173.     /**
  1174.      * {@inheritDoc}
  1175.      */
  1176.     protected final void updateSQLXML(final String columnLabel, final SQLXML xmlObject) throws SQLException {
  1177.         resultSet.updateSQLXML(columnLabel, xmlObject);
  1178.     }

  1179.     /**
  1180.      * {@inheritDoc}
  1181.      */
  1182.     protected final void updateString(final int columnIndex, final String x) throws SQLException {
  1183.         resultSet.updateString(columnIndex, x);
  1184.     }

  1185.     /**
  1186.      * {@inheritDoc}
  1187.      */
  1188.     protected final void updateString(final String columnLabel, final String x) throws SQLException {
  1189.         resultSet.updateString(columnLabel, x);
  1190.     }

  1191.     /**
  1192.      * {@inheritDoc}
  1193.      */
  1194.     protected final void updateTime(final int columnIndex, final Time x) throws SQLException {
  1195.         resultSet.updateTime(columnIndex, x);
  1196.     }

  1197.     /**
  1198.      * {@inheritDoc}
  1199.      */
  1200.     protected final void updateTime(final String columnLabel, final Time x) throws SQLException {
  1201.         resultSet.updateTime(columnLabel, x);
  1202.     }

  1203.     /**
  1204.      * {@inheritDoc}
  1205.      */
  1206.     protected final void updateTimestamp(final int columnIndex, final Timestamp x) throws SQLException {
  1207.         resultSet.updateTimestamp(columnIndex, x);
  1208.     }

  1209.     /**
  1210.      * {@inheritDoc}
  1211.      */
  1212.     protected final void updateTimestamp(final String columnLabel, final Timestamp x) throws SQLException {
  1213.         resultSet.updateTimestamp(columnLabel, x);
  1214.     }

  1215.     /**
  1216.      * {@inheritDoc}
  1217.      */
  1218.     protected final boolean wasNull() throws SQLException {
  1219.         return resultSet.wasNull();
  1220.     }

  1221. }