View Javadoc
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  
19  import java.io.InputStream;
20  import java.io.Reader;
21  import java.math.BigDecimal;
22  import java.net.URL;
23  import java.sql.Array;
24  import java.sql.Blob;
25  import java.sql.Clob;
26  import java.sql.Date;
27  import java.sql.NClob;
28  import java.sql.Ref;
29  import java.sql.ResultSet;
30  import java.sql.ResultSetMetaData;
31  import java.sql.RowId;
32  import java.sql.SQLException;
33  import java.sql.SQLWarning;
34  import java.sql.SQLXML;
35  import java.sql.Statement;
36  import java.sql.Time;
37  import java.sql.Timestamp;
38  import java.util.Calendar;
39  import java.util.Map;
40  
41  /**
42   * Extensions of this class convert ResultSets into other objects.
43   *
44   * According to the <i>DRY</i> principle (Don't Repeat Yourself), repeating {@code resultSet}
45   * variable inside the {@link ResultSetHandler#handle(ResultSet)} over and over for each iteration
46   * can get a little tedious, {@code AbstractResultSetHandler} implicitly gives users access to
47   * {@code ResultSet}'s methods.
48   *
49   * <b>NOTE</b> This class is <i>NOT</i> thread safe!
50   *
51   * @param <T> the target type the input ResultSet will be converted to.
52   * @since 1.6
53   */
54  public abstract class BaseResultSetHandler<T> implements ResultSetHandler<T> {
55  
56      /**
57       * The adapted ResultSet.
58       */
59      private ResultSet resultSet;
60  
61      /**
62       * {@inheritDoc}
63       */
64      protected final boolean absolute(final int row) throws SQLException {
65          return resultSet.absolute(row);
66      }
67  
68      /**
69       * {@inheritDoc}
70       */
71      protected final void afterLast() throws SQLException {
72          resultSet.afterLast();
73      }
74  
75      /**
76       * {@inheritDoc}
77       */
78      protected final void beforeFirst() throws SQLException {
79          resultSet.beforeFirst();
80      }
81  
82      /**
83       * {@inheritDoc}
84       */
85      protected final void cancelRowUpdates() throws SQLException {
86          resultSet.cancelRowUpdates();
87      }
88  
89      /**
90       * {@inheritDoc}
91       */
92      protected final void clearWarnings() throws SQLException {
93          resultSet.clearWarnings();
94      }
95  
96      /**
97       * {@inheritDoc}
98       */
99      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 }