001package org.javasimon.jdbc4; 002 003import java.io.InputStream; 004import java.io.Reader; 005import java.math.BigDecimal; 006import java.net.URL; 007import java.sql.Array; 008import java.sql.Blob; 009import java.sql.Clob; 010import java.sql.Date; 011import java.sql.NClob; 012import java.sql.Ref; 013import java.sql.ResultSet; 014import java.sql.ResultSetMetaData; 015import java.sql.RowId; 016import java.sql.SQLException; 017import java.sql.SQLWarning; 018import java.sql.SQLXML; 019import java.sql.Statement; 020import java.sql.Time; 021import java.sql.Timestamp; 022import java.util.Calendar; 023import java.util.Map; 024 025import org.javasimon.SimonManager; 026import org.javasimon.Split; 027 028/** 029 * Simon JDBC proxy result set implementation class. 030 * 031 * @author Radovan Sninsky 032 * @author <a href="mailto:virgo47@gmail.com">Richard "Virgo" Richter</a> 033 * @since 2.4 034 */ 035@SuppressWarnings("deprecation") 036public final class SimonResultSet implements ResultSet { 037 /** 038 * Stopwatch split measuring the lifespan of the statement until it is closed. 039 */ 040 private Split split; 041 042 private final ResultSet rset; 043 private final WrapperSupport<ResultSet> wrapperSupport; 044 private SimonStatement stmt; 045 private String stmtPrefix; 046 047 /** 048 * Class constructor, initializes Simons (lifespan) related to result set. 049 * 050 * @param rset real resultset 051 * @param stmt Simon statement 052 * @param prefix hierarchy prefix for JDBC Simons 053 * @param stmtPrefix statement prefix 054 */ 055 public SimonResultSet(ResultSet rset, SimonStatement stmt, String prefix, String stmtPrefix) { 056 this.rset = rset; 057 this.wrapperSupport = new WrapperSupport<>(rset, ResultSet.class); 058 this.stmt = stmt; 059 this.stmtPrefix = stmtPrefix; 060 061 split = SimonManager.getStopwatch(prefix + ".rset").start(); 062 } 063 064 /** 065 * Measure next operation. 066 * 067 * @return {@code true} if the new current row is valid; {@code false} if there are no more rows 068 * @throws java.sql.SQLException if real next operation fails 069 */ 070 @Override 071 public boolean next() throws SQLException { 072 try (Split ignored = SimonManager.getStopwatch(stmtPrefix + ".next").start()) { 073 return rset.next(); 074 } 075 } 076 077 /** 078 * Closes real result set, stops lifespan Simon. 079 * 080 * @throws java.sql.SQLException if real close operation fails 081 */ 082 @Override 083 public void close() throws SQLException { 084 rset.close(); 085 split.stop(); 086 } 087 088 //// NOT MONITORED 089 090 @Override 091 public Statement getStatement() throws SQLException { 092 return stmt; 093 } 094 095 @Override 096 public boolean wasNull() throws SQLException { 097 return rset.wasNull(); 098 } 099 100 @Override 101 public String getString(int columnIndex) throws SQLException { 102 return rset.getString(columnIndex); 103 } 104 105 @Override 106 public boolean getBoolean(int columnIndex) throws SQLException { 107 return rset.getBoolean(columnIndex); 108 } 109 110 @Override 111 public byte getByte(int columnIndex) throws SQLException { 112 return rset.getByte(columnIndex); 113 } 114 115 @Override 116 public short getShort(int columnIndex) throws SQLException { 117 return rset.getShort(columnIndex); 118 } 119 120 @Override 121 public int getInt(int columnIndex) throws SQLException { 122 return rset.getInt(columnIndex); 123 } 124 125 @Override 126 public long getLong(int columnIndex) throws SQLException { 127 return rset.getLong(columnIndex); 128 } 129 130 @Override 131 public float getFloat(int columnIndex) throws SQLException { 132 return rset.getFloat(columnIndex); 133 } 134 135 @Override 136 public double getDouble(int columnIndex) throws SQLException { 137 return rset.getDouble(columnIndex); 138 } 139 140 @Deprecated 141 @Override 142 public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { 143 return rset.getBigDecimal(columnIndex, scale); 144 } 145 146 @Override 147 public byte[] getBytes(int columnIndex) throws SQLException { 148 return rset.getBytes(columnIndex); 149 } 150 151 @Override 152 public Date getDate(int columnIndex) throws SQLException { 153 return rset.getDate(columnIndex); 154 } 155 156 @Override 157 public Time getTime(int columnIndex) throws SQLException { 158 return rset.getTime(columnIndex); 159 } 160 161 @Override 162 public Timestamp getTimestamp(int columnIndex) throws SQLException { 163 return rset.getTimestamp(columnIndex); 164 } 165 166 @Override 167 public InputStream getAsciiStream(int columnIndex) throws SQLException { 168 return rset.getAsciiStream(columnIndex); 169 } 170 171 @Deprecated 172 @Override 173 public InputStream getUnicodeStream(int columnIndex) throws SQLException { 174 return rset.getUnicodeStream(columnIndex); 175 } 176 177 @Override 178 public InputStream getBinaryStream(int columnIndex) throws SQLException { 179 return rset.getBinaryStream(columnIndex); 180 } 181 182 @Override 183 public String getString(String columnName) throws SQLException { 184 return rset.getString(columnName); 185 } 186 187 @Override 188 public boolean getBoolean(String columnName) throws SQLException { 189 return rset.getBoolean(columnName); 190 } 191 192 @Override 193 public byte getByte(String columnName) throws SQLException { 194 return rset.getByte(columnName); 195 } 196 197 @Override 198 public short getShort(String columnName) throws SQLException { 199 return rset.getShort(columnName); 200 } 201 202 @Override 203 public int getInt(String columnName) throws SQLException { 204 return rset.getInt(columnName); 205 } 206 207 @Override 208 public long getLong(String columnName) throws SQLException { 209 return rset.getLong(columnName); 210 } 211 212 @Override 213 public float getFloat(String columnName) throws SQLException { 214 return rset.getFloat(columnName); 215 } 216 217 @Override 218 public double getDouble(String columnName) throws SQLException { 219 return rset.getDouble(columnName); 220 } 221 222 @Deprecated 223 @Override 224 public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException { 225 return rset.getBigDecimal(columnName, scale); 226 } 227 228 @Override 229 public byte[] getBytes(String columnName) throws SQLException { 230 return rset.getBytes(columnName); 231 } 232 233 @Override 234 public Date getDate(String columnName) throws SQLException { 235 return rset.getDate(columnName); 236 } 237 238 @Override 239 public Time getTime(String columnName) throws SQLException { 240 return rset.getTime(columnName); 241 } 242 243 @Override 244 public Timestamp getTimestamp(String columnName) throws SQLException { 245 return rset.getTimestamp(columnName); 246 } 247 248 @Override 249 public InputStream getAsciiStream(String columnName) throws SQLException { 250 return rset.getAsciiStream(columnName); 251 } 252 253 @Deprecated 254 @Override 255 public InputStream getUnicodeStream(String columnName) throws SQLException { 256 return rset.getUnicodeStream(columnName); 257 } 258 259 @Override 260 public InputStream getBinaryStream(String columnName) throws SQLException { 261 return rset.getBinaryStream(columnName); 262 } 263 264 @Override 265 public SQLWarning getWarnings() throws SQLException { 266 return rset.getWarnings(); 267 } 268 269 @Override 270 public void clearWarnings() throws SQLException { 271 rset.clearWarnings(); 272 } 273 274 @Override 275 public String getCursorName() throws SQLException { 276 return rset.getCursorName(); 277 } 278 279 @Override 280 public ResultSetMetaData getMetaData() throws SQLException { 281 return rset.getMetaData(); 282 } 283 284 @Override 285 public Object getObject(int columnIndex) throws SQLException { 286 return rset.getObject(columnIndex); 287 } 288 289 @Override 290 public Object getObject(String columnName) throws SQLException { 291 return rset.getObject(columnName); 292 } 293 294 @Override 295 public int findColumn(String columnName) throws SQLException { 296 return rset.findColumn(columnName); 297 } 298 299 @Override 300 public Reader getCharacterStream(int columnIndex) throws SQLException { 301 return rset.getCharacterStream(columnIndex); 302 } 303 304 @Override 305 public Reader getCharacterStream(String columnName) throws SQLException { 306 return rset.getCharacterStream(columnName); 307 } 308 309 @Override 310 public BigDecimal getBigDecimal(int columnIndex) throws SQLException { 311 return rset.getBigDecimal(columnIndex); 312 } 313 314 @Override 315 public BigDecimal getBigDecimal(String columnName) throws SQLException { 316 return rset.getBigDecimal(columnName); 317 } 318 319 @Override 320 public boolean isBeforeFirst() throws SQLException { 321 return rset.isBeforeFirst(); 322 } 323 324 @Override 325 public boolean isAfterLast() throws SQLException { 326 return rset.isAfterLast(); 327 } 328 329 @Override 330 public boolean isFirst() throws SQLException { 331 return rset.isFirst(); 332 } 333 334 @Override 335 public boolean isLast() throws SQLException { 336 return rset.isLast(); 337 } 338 339 @Override 340 public void beforeFirst() throws SQLException { 341 rset.beforeFirst(); 342 } 343 344 @Override 345 public void afterLast() throws SQLException { 346 rset.afterLast(); 347 } 348 349 @Override 350 public boolean first() throws SQLException { 351 return rset.first(); 352 } 353 354 @Override 355 public boolean last() throws SQLException { 356 return rset.last(); 357 } 358 359 @Override 360 public int getRow() throws SQLException { 361 return rset.getRow(); 362 } 363 364 @Override 365 public boolean absolute(int row) throws SQLException { 366 return rset.absolute(row); 367 } 368 369 @Override 370 public boolean relative(int rows) throws SQLException { 371 return rset.relative(rows); 372 } 373 374 @Override 375 public boolean previous() throws SQLException { 376 return rset.previous(); 377 } 378 379 @Override 380 public void setFetchDirection(int direction) throws SQLException { 381 rset.setFetchDirection(direction); 382 } 383 384 @Override 385 public int getFetchDirection() throws SQLException { 386 return rset.getFetchDirection(); 387 } 388 389 @Override 390 public void setFetchSize(int rows) throws SQLException { 391 rset.setFetchSize(rows); 392 } 393 394 @Override 395 public int getFetchSize() throws SQLException { 396 return rset.getFetchSize(); 397 } 398 399 @Override 400 public int getType() throws SQLException { 401 return rset.getType(); 402 } 403 404 @Override 405 public int getConcurrency() throws SQLException { 406 return rset.getConcurrency(); 407 } 408 409 @Override 410 public boolean rowUpdated() throws SQLException { 411 return rset.rowUpdated(); 412 } 413 414 @Override 415 public boolean rowInserted() throws SQLException { 416 return rset.rowInserted(); 417 } 418 419 @Override 420 public boolean rowDeleted() throws SQLException { 421 return rset.rowDeleted(); 422 } 423 424 @Override 425 public void updateNull(int columnIndex) throws SQLException { 426 } 427 428 @Override 429 public void updateBoolean(int columnIndex, boolean x) throws SQLException { 430 } 431 432 @Override 433 public void updateByte(int columnIndex, byte x) throws SQLException { 434 } 435 436 @Override 437 public void updateShort(int columnIndex, short x) throws SQLException { 438 } 439 440 @Override 441 public void updateInt(int columnIndex, int x) throws SQLException { 442 } 443 444 @Override 445 public void updateLong(int columnIndex, long x) throws SQLException { 446 } 447 448 @Override 449 public void updateFloat(int columnIndex, float x) throws SQLException { 450 } 451 452 @Override 453 public void updateDouble(int columnIndex, double x) throws SQLException { 454 } 455 456 @Override 457 public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { 458 } 459 460 @Override 461 public void updateString(int columnIndex, String x) throws SQLException { 462 } 463 464 @Override 465 public void updateBytes(int columnIndex, byte x[]) throws SQLException { 466 } 467 468 @Override 469 public void updateDate(int columnIndex, Date x) throws SQLException { 470 } 471 472 @Override 473 public void updateTime(int columnIndex, Time x) throws SQLException { 474 } 475 476 @Override 477 public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { 478 } 479 480 @Override 481 public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { 482 } 483 484 @Override 485 public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { 486 } 487 488 @Override 489 public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { 490 } 491 492 @Override 493 public void updateObject(int columnIndex, Object x, int scale) throws SQLException { 494 } 495 496 @Override 497 public void updateObject(int columnIndex, Object x) throws SQLException { 498 } 499 500 @Override 501 public void updateNull(String columnName) throws SQLException { 502 } 503 504 @Override 505 public void updateBoolean(String columnName, boolean x) throws SQLException { 506 } 507 508 @Override 509 public void updateByte(String columnName, byte x) throws SQLException { 510 } 511 512 @Override 513 public void updateShort(String columnName, short x) throws SQLException { 514 } 515 516 @Override 517 public void updateInt(String columnName, int x) throws SQLException { 518 } 519 520 @Override 521 public void updateLong(String columnName, long x) throws SQLException { 522 } 523 524 @Override 525 public void updateFloat(String columnName, float x) throws SQLException { 526 } 527 528 @Override 529 public void updateDouble(String columnName, double x) throws SQLException { 530 } 531 532 @Override 533 public void updateBigDecimal(String columnName, BigDecimal x) throws SQLException { 534 } 535 536 @Override 537 public void updateString(String columnName, String x) throws SQLException { 538 } 539 540 @Override 541 public void updateBytes(String columnName, byte x[]) throws SQLException { 542 } 543 544 @Override 545 public void updateDate(String columnName, Date x) throws SQLException { 546 } 547 548 @Override 549 public void updateTime(String columnName, Time x) throws SQLException { 550 } 551 552 @Override 553 public void updateTimestamp(String columnName, Timestamp x) throws SQLException { 554 } 555 556 @Override 557 public void updateAsciiStream(String columnName, InputStream x, int length) throws SQLException { 558 } 559 560 @Override 561 public void updateBinaryStream(String columnName, InputStream x, int length) throws SQLException { 562 } 563 564 @Override 565 public void updateCharacterStream(String columnName, Reader reader, int length) throws SQLException { 566 } 567 568 @Override 569 public void updateObject(String columnName, Object x, int scale) throws SQLException { 570 } 571 572 @Override 573 public void updateObject(String columnName, Object x) throws SQLException { 574 } 575 576 @Override 577 public void insertRow() throws SQLException { 578 } 579 580 @Override 581 public void updateRow() throws SQLException { 582 } 583 584 @Override 585 public void deleteRow() throws SQLException { 586 } 587 588 @Override 589 public void refreshRow() throws SQLException { 590 } 591 592 @Override 593 public void cancelRowUpdates() throws SQLException { 594 } 595 596 @Override 597 public void moveToInsertRow() throws SQLException { 598 } 599 600 @Override 601 public void moveToCurrentRow() throws SQLException { 602 } 603 604 @Override 605 public Object getObject(int i, Map<String, Class<?>> map) throws SQLException { 606 return rset.getObject(i, map); 607 } 608 609 @Override 610 public Ref getRef(int i) throws SQLException { 611 return rset.getRef(i); 612 } 613 614 @Override 615 public Blob getBlob(int i) throws SQLException { 616 return rset.getBlob(i); 617 } 618 619 @Override 620 public Clob getClob(int i) throws SQLException { 621 return rset.getClob(i); 622 } 623 624 @Override 625 public Array getArray(int i) throws SQLException { 626 return rset.getArray(i); 627 } 628 629 @Override 630 public Object getObject(String colName, Map<String, Class<?>> map) throws SQLException { 631 return rset.getObject(colName, map); 632 } 633 634 @Override 635 public Ref getRef(String colName) throws SQLException { 636 return rset.getRef(colName); 637 } 638 639 @Override 640 public Blob getBlob(String colName) throws SQLException { 641 return rset.getBlob(colName); 642 } 643 644 @Override 645 public Clob getClob(String colName) throws SQLException { 646 return rset.getClob(colName); 647 } 648 649 @Override 650 public Array getArray(String colName) throws SQLException { 651 return rset.getArray(colName); 652 } 653 654 @Override 655 public Date getDate(int columnIndex, Calendar cal) throws SQLException { 656 return rset.getDate(columnIndex, cal); 657 } 658 659 @Override 660 public Date getDate(String columnName, Calendar cal) throws SQLException { 661 return rset.getDate(columnName, cal); 662 } 663 664 @Override 665 public Time getTime(int columnIndex, Calendar cal) throws SQLException { 666 return rset.getTime(columnIndex, cal); 667 } 668 669 @Override 670 public Time getTime(String columnName, Calendar cal) throws SQLException { 671 return rset.getTime(columnName, cal); 672 } 673 674 @Override 675 public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { 676 return rset.getTimestamp(columnIndex, cal); 677 } 678 679 @Override 680 public Timestamp getTimestamp(String columnName, Calendar cal) throws SQLException { 681 return rset.getTimestamp(columnName, cal); 682 } 683 684 @Override 685 public URL getURL(int columnIndex) throws SQLException { 686 return rset.getURL(columnIndex); 687 } 688 689 @Override 690 public URL getURL(String columnName) throws SQLException { 691 return rset.getURL(columnName); 692 } 693 694 @Override 695 public void updateRef(int columnIndex, Ref x) throws SQLException { 696 rset.updateRef(columnIndex, x); 697 } 698 699 @Override 700 public void updateRef(String columnName, Ref x) throws SQLException { 701 rset.updateRef(columnName, x); 702 } 703 704 @Override 705 public void updateBlob(int columnIndex, Blob x) throws SQLException { 706 rset.updateBlob(columnIndex, x); 707 } 708 709 @Override 710 public void updateBlob(String columnName, Blob x) throws SQLException { 711 rset.updateBlob(columnName, x); 712 } 713 714 @Override 715 public void updateClob(int columnIndex, Clob x) throws SQLException { 716 rset.updateClob(columnIndex, x); 717 } 718 719 @Override 720 public void updateClob(String columnName, Clob x) throws SQLException { 721 rset.updateClob(columnName, x); 722 } 723 724 @Override 725 public void updateArray(int columnIndex, Array x) throws SQLException { 726 rset.updateArray(columnIndex, x); 727 } 728 729 @Override 730 public void updateArray(String columnName, Array x) throws SQLException { 731 rset.updateArray(columnName, x); 732 } 733 734 @Override 735 public RowId getRowId(int columnIndex) throws SQLException { 736 return rset.getRowId(columnIndex); 737 } 738 739 @Override 740 public RowId getRowId(String columnLabel) throws SQLException { 741 return rset.getRowId(columnLabel); 742 } 743 744 @Override 745 public void updateRowId(int columnIndex, RowId x) throws SQLException { 746 rset.updateRowId(columnIndex, x); 747 } 748 749 @Override 750 public void updateRowId(String columnLabel, RowId x) throws SQLException { 751 rset.updateRowId(columnLabel, x); 752 } 753 754 @Override 755 public int getHoldability() throws SQLException { 756 return rset.getHoldability(); 757 } 758 759 @Override 760 public boolean isClosed() throws SQLException { 761 return rset.isClosed(); 762 } 763 764 @Override 765 public void updateNString(int columnIndex, String nString) throws SQLException { 766 rset.updateNString(columnIndex, nString); 767 } 768 769 @Override 770 public void updateNString(String columnLabel, String nString) throws SQLException { 771 rset.updateNString(columnLabel, nString); 772 } 773 774 @Override 775 public void updateNClob(int columnIndex, NClob nClob) throws SQLException { 776 rset.updateNClob(columnIndex, nClob); 777 } 778 779 @Override 780 public void updateNClob(String columnLabel, NClob nClob) throws SQLException { 781 rset.updateNClob(columnLabel, nClob); 782 } 783 784 @Override 785 public NClob getNClob(int columnIndex) throws SQLException { 786 return rset.getNClob(columnIndex); 787 } 788 789 @Override 790 public NClob getNClob(String columnLabel) throws SQLException { 791 return rset.getNClob(columnLabel); 792 } 793 794 @Override 795 public SQLXML getSQLXML(int columnIndex) throws SQLException { 796 return rset.getSQLXML(columnIndex); 797 } 798 799 @Override 800 public SQLXML getSQLXML(String columnLabel) throws SQLException { 801 return rset.getSQLXML(columnLabel); 802 } 803 804 @Override 805 public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException { 806 rset.updateSQLXML(columnIndex, xmlObject); 807 } 808 809 @Override 810 public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException { 811 rset.updateSQLXML(columnLabel, xmlObject); 812 } 813 814 @Override 815 public String getNString(int columnIndex) throws SQLException { 816 return rset.getNString(columnIndex); 817 } 818 819 @Override 820 public String getNString(String columnLabel) throws SQLException { 821 return rset.getNString(columnLabel); 822 } 823 824 @Override 825 public Reader getNCharacterStream(int columnIndex) throws SQLException { 826 return rset.getNCharacterStream(columnIndex); 827 } 828 829 @Override 830 public Reader getNCharacterStream(String columnLabel) throws SQLException { 831 return rset.getNCharacterStream(columnLabel); 832 } 833 834 @Override 835 public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException { 836 rset.updateNCharacterStream(columnIndex, x, length); 837 } 838 839 @Override 840 public void updateNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { 841 rset.updateNCharacterStream(columnLabel, reader, length); 842 } 843 844 @Override 845 public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException { 846 rset.updateAsciiStream(columnIndex, x, length); 847 } 848 849 @Override 850 public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException { 851 rset.updateBinaryStream(columnIndex, x, length); 852 } 853 854 @Override 855 public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException { 856 rset.updateCharacterStream(columnIndex, x, length); 857 } 858 859 @Override 860 public void updateAsciiStream(String columnLabel, InputStream x, long length) throws SQLException { 861 rset.updateAsciiStream(columnLabel, x, length); 862 } 863 864 @Override 865 public void updateBinaryStream(String columnLabel, InputStream x, long length) throws SQLException { 866 rset.updateBinaryStream(columnLabel, x, length); 867 } 868 869 @Override 870 public void updateCharacterStream(String columnLabel, Reader reader, long length) throws SQLException { 871 rset.updateCharacterStream(columnLabel, reader, length); 872 } 873 874 @Override 875 public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException { 876 rset.updateBlob(columnIndex, inputStream, length); 877 } 878 879 @Override 880 public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException { 881 rset.updateBlob(columnLabel, inputStream, length); 882 } 883 884 @Override 885 public void updateClob(int columnIndex, Reader reader, long length) throws SQLException { 886 rset.updateClob(columnIndex, reader, length); 887 } 888 889 @Override 890 public void updateClob(String columnLabel, Reader reader, long length) throws SQLException { 891 rset.updateClob(columnLabel, reader, length); 892 } 893 894 @Override 895 public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException { 896 rset.updateNClob(columnIndex, reader, length); 897 } 898 899 @Override 900 public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException { 901 rset.updateNClob(columnLabel, reader, length); 902 } 903 904 @Override 905 public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException { 906 rset.updateNCharacterStream(columnIndex, x); 907 } 908 909 @Override 910 public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException { 911 rset.updateNCharacterStream(columnLabel, reader); 912 } 913 914 @Override 915 public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException { 916 rset.updateAsciiStream(columnIndex, x); 917 } 918 919 @Override 920 public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException { 921 rset.updateBinaryStream(columnIndex, x); 922 } 923 924 @Override 925 public void updateCharacterStream(int columnIndex, Reader x) throws SQLException { 926 rset.updateCharacterStream(columnIndex, x); 927 } 928 929 @Override 930 public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException { 931 rset.updateAsciiStream(columnLabel, x); 932 } 933 934 @Override 935 public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException { 936 rset.updateBinaryStream(columnLabel, x); 937 } 938 939 @Override 940 public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException { 941 rset.updateCharacterStream(columnLabel, reader); 942 } 943 944 @Override 945 public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException { 946 rset.updateBlob(columnIndex, inputStream); 947 } 948 949 @Override 950 public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException { 951 rset.updateBlob(columnLabel, inputStream); 952 } 953 954 @Override 955 public void updateClob(int columnIndex, Reader reader) throws SQLException { 956 rset.updateClob(columnIndex, reader); 957 } 958 959 @Override 960 public void updateClob(String columnLabel, Reader reader) throws SQLException { 961 rset.updateClob(columnLabel, reader); 962 } 963 964 @Override 965 public void updateNClob(int columnIndex, Reader reader) throws SQLException { 966 rset.updateNClob(columnIndex, reader); 967 } 968 969 @Override 970 public void updateNClob(String columnLabel, Reader reader) throws SQLException { 971 rset.updateNClob(columnLabel, reader); 972 } 973 974 @Override 975 public <T> T getObject(int columnIndex, Class<T> type) throws SQLException { 976 return rset.getObject(columnIndex, type); 977 } 978 979 @Override 980 public <T> T getObject(String columnLabel, Class<T> type) throws SQLException { 981 return rset.getObject(columnLabel, type); 982 } 983 984 @Override 985 public <T> T unwrap(Class<T> iface) throws SQLException { 986 return wrapperSupport.unwrap(iface); 987 } 988 989 @Override 990 public boolean isWrapperFor(Class<?> iface) throws SQLException { 991 return wrapperSupport.isWrapperFor(iface); 992 } 993}