Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/classes/com/sun/rowset/internal/SyncResolverImpl.java
38920 views
/*1* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation. Oracle designates this7* particular file as subject to the "Classpath" exception as provided8* by Oracle in the LICENSE file that accompanied this code.9*10* This code is distributed in the hope that it will be useful, but WITHOUT11* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or12* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License13* version 2 for more details (a copy is included in the LICENSE file that14* accompanied this code).15*16* You should have received a copy of the GNU General Public License version17* 2 along with this work; if not, write to the Free Software Foundation,18* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.19*20* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA21* or visit www.oracle.com if you need additional information or have any22* questions.23*/2425package com.sun.rowset.internal;2627import java.sql.*;28import javax.sql.*;29import java.util.*;30import java.math.BigDecimal;3132import javax.sql.rowset.*;33import javax.sql.rowset.spi.*;3435import com.sun.rowset.*;36import java.io.IOException;37import java.io.ObjectInputStream;3839/**40* There will be two sets of data which will be maintained by the rowset at the41* time of synchronization. The <code>SyncProvider</code> will utilize the42* <code>SyncResolver</code> to synchronize the changes back to database.43*/44public class SyncResolverImpl extends CachedRowSetImpl implements SyncResolver {45/**46* This CachedRowSet object will encapsulate a rowset47* which will be sync'ed with the datasource but will48* contain values in rows where there is conflict.49* For rows other than conflict, it will *not* contain50* any data. For rows containing conflict it will51* return either of the three values set by SyncResolver.*_CONFLICT52* from getStatus()53*/54private CachedRowSetImpl crsRes;5556/**57* This is the actual CachedRowSet object58* which is being synchronized back to59* datasource.60*/61private CachedRowSetImpl crsSync;6263/**64* This ArrayList will contain the status of a row65* from the SyncResolver.* values else it will be null.66*/67private ArrayList<?> stats;6869/**70* The RowSetWriter associated with the original71* CachedRowSet object which is being synchronized.72*/73private CachedRowSetWriter crw;7475/**76* Row number identifier77*/78private int rowStatus;7980/**81* This will contain the size of the <code>CachedRowSet</code> object82*/83private int sz;8485/**86* The <code>Connection</code> handle used to synchronize the changes87* back to datasource. This is the same connection handle as was passed88* to the CachedRowSet while fetching the data.89*/90private transient Connection con;9192/**93* The <code>CachedRowSet</code> object which will encapsulate94* a row at any time. This will be built from CachedRowSet and95* SyncResolver values. Synchronization takes place on a row by96* row basis encapsulated as a CahedRowSet.97*/98private CachedRowSet row;99100private JdbcRowSetResourceBundle resBundle;101102/**103* Public constructor104*/105public SyncResolverImpl() throws SQLException {106try {107crsSync = new CachedRowSetImpl();108crsRes = new CachedRowSetImpl();109crw = new CachedRowSetWriter();110row = new CachedRowSetImpl();111rowStatus = 1;112try {113resBundle = JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle();114} catch(IOException ioe) {115throw new RuntimeException(ioe);116}117118} catch(SQLException sqle) {119}120}121122123/**124* Retrieves the conflict status of the current row of this125* <code>SyncResolver</code>, which indicates the operationthe <code>RowSet</code>126* object was attempting when the conflict occurred.127*128* @return one of the following constants:129* <code>SyncResolver.UPDATE_ROW_CONFLICT</code>,130* <code>SyncResolver.DELETE_ROW_CONFLICT</code>, or131* <code>SyncResolver.INSERT_ROW_CONFLICT</code>132*/133public int getStatus() {134return ((Integer)stats.get(rowStatus-1)).intValue();135}136137/**138* Retrieves the value in the designated column in the current row of this139* <code>SyncResolver</code> object, which is the value that caused a conflict.140*141* @param index <code>int</code> designating the column in this row of this142* <code>SyncResolver</code> object from which to retrieve the value143* causing a conflict144*/145public Object getConflictValue(int index) throws SQLException {146try {147return crsRes.getObject(index);148} catch(SQLException sqle) {149throw new SQLException(sqle.getMessage());150}151}152153/**154* Retrieves the value in the designated column in the current row of this155* <code>SyncResolver</code> object, which is the value that caused a conflict.156*157* @param columnName a <code>String</code> object designating the column in this row of this158* <code>SyncResolver</code> object from which to retrieve the value159* causing a conflict160*/161public Object getConflictValue(String columnName) throws SQLException {162try {163return crsRes.getObject(columnName);164} catch(SQLException sqle) {165throw new SQLException(sqle.getMessage());166}167}168169/**170* Sets <i>obj</i> as the value in column <i>index</i> in the current row of the171* <code>RowSet</code> object. This value is the resolved value that is to be172* persisted in the data source.173*174* @param index an <code>int</code> giving the number of the column into which to175* set the value to be persisted176* @param obj an <code>Object</code> that is the value to be set in the data source177*/178public void setResolvedValue(int index, Object obj) throws SQLException {179// modify method to throw SQLException in spec180181/**182* When a value is resolved properly make it to null183* inside crsRes for that column.184*185* For more than one conflicts in the row,186* check for the last resolved value of the current row187* (Note: it can be resolved randomly for same row)188* then sync back immediately.189**/190try {191// check whether the index is in range192if(index<=0 || index > crsSync.getMetaData().getColumnCount() ) {193throw new SQLException(resBundle.handleGetObject("syncrsimpl.indexval").toString()+ index);194}195// check whether index col is in conflict196if(crsRes.getObject(index) == null) {197throw new SQLException(resBundle.handleGetObject("syncrsimpl.noconflict").toString());198}199} catch (SQLException sqle) {200// modify method to throw for SQLException201throw new SQLException(sqle.getMessage());202}203try {204boolean bool = true;205/** Check resolved value to be either of conflict206* or in rowset else throw sql exception.207* If we allow a value other than that in CachedRowSet or208* datasource we will end up in looping the loop of exceptions.209**/210211if( ((crsSync.getObject(index)).toString()).equals(obj.toString()) ||212((crsRes.getObject(index)).toString()).equals(obj.toString()) ) {213214/**215* Check whether this is the only conflict in the row.216* If yes, synchronize this row back217* which has been resolved, else wait218* for all conflicts of current row to be resolved219*220* Step 1: Update crsRes and make the index col as null221* i.e. resolved222* crsRes.updateObject(index, obj);223**/224crsRes.updateNull(index);225crsRes.updateRow();226227/**228* Step 2: Change the value in the CachedRowSetImpl object229* crsSync.updateObject(index, obj);230* crsSync.updateRow();231**/232if(row.size() != 1) {233row = buildCachedRow();234}235236row.updateObject(index, obj);237row.updateRow();238239for(int j=1; j < crsRes.getMetaData().getColumnCount(); j++) {240if(crsRes.getObject(j) != null) {241bool = false;242break;243// break out of loop and wait for other cols244// in same row to get resolved245} //end if246247} //end for248249if(bool) {250/**251* sync data back using CachedRowSetWriter252* construct the present row and pass it to the writer253* to write back to db.254**/255try {256/**257* Note : The use of CachedRowSetWriter to get *same* Connection handle.258* The CachedRowSetWriter uses the connection handle259* from the reader, Hence will use the same connection handle260* as of original CachedRowSetImpl261**/262263writeData(row);264265//crw.writeData( (RowSetInternal)crsRow);266//System.out.printlnt.println("12");267268} catch(SyncProviderException spe) {269/**270* This will occur if db is not allowing271* even after resolving the conflicts272* due to some reasons.273* Also will prevent from going into a loop of SPE's274**/275throw new SQLException(resBundle.handleGetObject("syncrsimpl.syncnotpos").toString());276}277} //end if(bool)278279} else {280throw new SQLException(resBundle.handleGetObject("syncrsimpl.valtores").toString());281} //end if (crs.getObject ...) block282283284} catch(SQLException sqle) {285throw new SQLException(sqle.getMessage());286}287}288289/**290* This passes a CachedRowSet as a row the the CachedRowSetWriter291* after the values have been resolved, back to the datasource.292*293* @param row a <code>CachedRowSet</code> object which will hold the294* values of a particular row after they have been resolved by295* the user to synchronize back to datasource.296* @throws SQLException if synchronization does not happen properly297* maybe beacuse <code>Connection</code> has timed out.298**/299private void writeData(CachedRowSet row) throws SQLException {300crw.updateResolvedConflictToDB(row, crw.getReader().connect((RowSetInternal)crsSync));301}302303/**304* This function builds a row as a <code>CachedRowSet</code> object305* which has been resolved and is ready to be synchrinized to the datasource306*307* @throws SQLException if there is problem in building308* the metadata of the row.309**/310private CachedRowSet buildCachedRow() throws SQLException {311int iColCount;312CachedRowSetImpl crsRow = new CachedRowSetImpl();313314RowSetMetaDataImpl rsmd = new RowSetMetaDataImpl();315RowSetMetaDataImpl rsmdWrite = (RowSetMetaDataImpl)crsSync.getMetaData();316RowSetMetaDataImpl rsmdRow = new RowSetMetaDataImpl();317318iColCount = rsmdWrite.getColumnCount();319rsmdRow.setColumnCount(iColCount);320321for(int i =1;i<=iColCount;i++) {322rsmdRow.setColumnType(i,rsmdWrite.getColumnType(i));323rsmdRow.setColumnName(i,rsmdWrite.getColumnName(i));324rsmdRow.setNullable(i,ResultSetMetaData.columnNullableUnknown);325326try {327rsmdRow.setCatalogName(i, rsmdWrite.getCatalogName(i));328rsmdRow.setSchemaName(i, rsmdWrite.getSchemaName(i));329} catch(SQLException e) {330e.printStackTrace();331}332} //end for333334crsRow.setMetaData(rsmdRow);335336crsRow.moveToInsertRow();337338for(int col=1;col<=crsSync.getMetaData().getColumnCount();col++) {339crsRow.updateObject(col, crsSync.getObject(col));340}341342crsRow.insertRow();343crsRow.moveToCurrentRow();344345crsRow.absolute(1);346crsRow.setOriginalRow();347348try {349crsRow.setUrl(crsSync.getUrl());350} catch(SQLException sqle) {351352}353354try {355crsRow.setDataSourceName(crsSync.getCommand());356} catch(SQLException sqle) {357358}359360try {361if(crsSync.getTableName()!= null){362crsRow.setTableName(crsSync.getTableName());363}364} catch(SQLException sqle) {365366}367368try {369if(crsSync.getCommand() != null)370crsRow.setCommand(crsSync.getCommand());371} catch(SQLException sqle) {372373}374375try {376crsRow.setKeyColumns(crsSync.getKeyColumns());377} catch(SQLException sqle) {378379}380return crsRow;381}382383384385/**386* Sets <i>obj</i> as the value in column <i>columnName</i> in the current row of the387* <code>RowSet</code> object. This value is the resolved value that is to be388* persisted in the data source.389*390* @param columnName a <code>String</code> object giving the name of the column391* into which to set the value to be persisted392* @param obj an <code>Object</code> that is the value to be set in the data source393*/394public void setResolvedValue(String columnName, Object obj) throws SQLException {395// modify method to throw SQLException in spec396// %%% Missing implementation!397}398399/**400* This function is package private,401* i.e. cannot be accesses outside this package.402* This is used to set the actual CachedRowSet403* which is being synchronized to the database404**/405void setCachedRowSet(CachedRowSet crs) {406crsSync = (CachedRowSetImpl)crs;407}408409/**410* This function is package private,411* i.e. cannot be accesses outside this package.412* This is used to set the CachedRowSet formed413* with conflict values.414**/415void setCachedRowSetResolver(CachedRowSet crs){416try {417crsRes = (CachedRowSetImpl)crs;418crsRes.afterLast();419sz = crsRes.size();420} catch (SQLException sqle) {421// do nothing422}423}424425/**426* This function is package private,427* i.e. cannot be accesses outside this package.428* This is used to set the status of each row429* to either of the values SyncResolver.*_CONFLICT430**/431@SuppressWarnings("rawtypes")432void setStatus(ArrayList status){433stats = status;434}435436/**437* This function is package private,438* i.e. cannot be accesses outside this package.439* This is used to set the handle to the writer object440* which will write the resolved values back to datasource441**/442void setCachedRowSetWriter(CachedRowSetWriter CRWriter) {443crw = CRWriter;444}445446/**447* Moves the cursor down one row from its current position. A <code>SyncResolver</code>448* cursor is initially positioned before the first conflict row; the first call to the449* method <code>nextConflict()</code> makes the first conflict row the current row;450* the second call makes the second conflict row the current row, and so on.451* <p>452* If an input stream is open for the current row, a call to the method next will453* implicitly close it. A <code>SyncResolver</code> object's warning chain is cleared454* when a new row455*456* @return true if the new current row is valid; false if there are no more rows457* @throws SQLException if a database access occurs458*459*/460public boolean nextConflict() throws SQLException {461/**462* The next() method will hop from463* one conflict to another464*465* Internally do a crs.next() until466* next conflict.467**/468boolean bool = false;469470crsSync.setShowDeleted(true);471while(crsSync.next()) {472crsRes.previous();473rowStatus++; //sz--;474475if((rowStatus-1) >= stats.size()) {476bool = false;477break;478}479480if(((Integer)stats.get(rowStatus-1)).intValue() == SyncResolver.NO_ROW_CONFLICT) {481// do nothing482// bool remains as false483;484} else {485bool = true;486break;487} //end if488489} //end while490491crsSync.setShowDeleted(false);492return bool;493} // end next() method494495496/**497* Moves the cursor to the previous conflict row in this <code>SyncResolver</code> object.498*499* @return <code>true</code> if the cursor is on a valid row; <code>false</code>500* if it is off the result set501* @throws SQLException if a database access error occurs or the result set type502* is TYPE_FORWARD_ONLY503*/504public boolean previousConflict() throws SQLException {505throw new UnsupportedOperationException();506}507508//-----------------------------------------------------------------------509// Properties510//-----------------------------------------------------------------------511512/**513* Sets this <code>CachedRowSetImpl</code> object's command property514* to the given <code>String</code> object and clears the parameters,515* if any, that were set for the previous command.516* <P>517* The command property may not be needed518* if the rowset is produced by a data source, such as a spreadsheet,519* that does not support commands. Thus, this property is optional520* and may be <code>null</code>.521*522* @param cmd a <code>String</code> object containing an SQL query523* that will be set as the command; may be <code>null</code>524* @throws SQLException if an error occurs525*/526public void setCommand(String cmd) throws SQLException {527throw new UnsupportedOperationException();528}529530531//---------------------------------------------------------------------532// Reading and writing data533//---------------------------------------------------------------------534535/**536* Populates this <code>CachedRowSetImpl</code> object with data from537* the given <code>ResultSet</code> object. This538* method is an alternative to the method <code>execute</code>539* for filling the rowset with data. The method <code>populate</code>540* does not require that the properties needed by the method541* <code>execute</code>, such as the <code>command</code> property,542* be set. This is true because the method <code>populate</code>543* is given the <code>ResultSet</code> object from544* which to get data and thus does not need to use the properties545* required for setting up a connection and executing this546* <code>CachedRowSetImpl</code> object's command.547* <P>548* After populating this rowset with data, the method549* <code>populate</code> sets the rowset's metadata and550* then sends a <code>RowSetChangedEvent</code> object551* to all registered listeners prior to returning.552*553* @param data the <code>ResultSet</code> object containing the data554* to be read into this <code>CachedRowSetImpl</code> object555* @throws SQLException if an error occurs; or the max row setting is556* violated while populating the RowSet557* @see #execute558*/559public void populate(ResultSet data) throws SQLException {560throw new UnsupportedOperationException();561}562563/**564* Populates this <code>CachedRowSetImpl</code> object with data,565* using the given connection to produce the result set from566* which data will be read. A second form of this method,567* which takes no arguments, uses the values from this rowset's568* user, password, and either url or data source properties to569* create a new database connection. The form of <code>execute</code>570* that is given a connection ignores these properties.571*572* @param conn A standard JDBC <code>Connection</code> object that this573* <code>CachedRowSet</code> object can pass to a synchronization provider574* to establish a connection to the data source575* @throws SQLException if an invalid <code>Connection</code> is supplied576* or an error occurs in establishing the connection to the577* data source578* @see #populate579* @see java.sql.Connection580*/581public void execute(Connection conn) throws SQLException {582throw new UnsupportedOperationException();583}584585/**586* Propagates all row update, insert, and delete changes to the587* underlying data source backing this <code>CachedRowSetImpl</code>588* object.589* <P>590* <b>Note</b>In the reference implementation an optimistic concurrency implementation591* is provided as a sample implementation of a the <code>SyncProvider</code>592* abstract class.593* <P>594* This method fails if any of the updates cannot be propagated back595* to the data source. When it fails, the caller can assume that596* none of the updates are reflected in the data source.597* When an exception is thrown, the current row598* is set to the first "updated" row that resulted in an exception599* unless the row that caused the exception is a "deleted" row.600* In that case, when deleted rows are not shown, which is usually true,601* the current row is not affected.602* <P>603* If no <code>SyncProvider</code> is configured, the reference implementation604* leverages the <code>RIOptimisticProvider</code> available which provides the605* default and reference synchronization capabilities for disconnected606* <code>RowSets</code>.607*608* @throws SQLException if the cursor is on the insert row or the underlying609* reference synchronization provider fails to commit the updates610* to the datasource611* @throws SyncProviderException if an internal error occurs within the612* <code>SyncProvider</code> instance during either during the613* process or at any time when the <code>SyncProvider</code>614* instance touches the data source.615* @see #acceptChanges(java.sql.Connection)616* @see javax.sql.RowSetWriter617* @see javax.sql.rowset.spi.SyncProvider618*/619public void acceptChanges() throws SyncProviderException {620throw new UnsupportedOperationException();621}622623/**624* Propagates all row update, insert, and delete changes to the625* data source backing this <code>CachedRowSetImpl</code> object626* using the given <code>Connection</code> object.627* <P>628* The reference implementation <code>RIOptimisticProvider</code>629* modifies its synchronization to a write back function given630* the updated connection631* The reference implementation modifies its synchronization behaviour632* via the <code>SyncProvider</code> to ensure the synchronization633* occurs according to the updated JDBC <code>Connection</code>634* properties.635*636* @param con a standard JDBC <code>Connection</code> object637* @throws SQLException if the cursor is on the insert row or the underlying638* synchronization provider fails to commit the updates639* back to the data source640* @see #acceptChanges641* @see javax.sql.RowSetWriter642* @see javax.sql.rowset.spi.SyncFactory643* @see javax.sql.rowset.spi.SyncProvider644*/645public void acceptChanges(Connection con) throws SyncProviderException{646throw new UnsupportedOperationException();647}648649/**650* Restores this <code>CachedRowSetImpl</code> object to its original state,651* that is, its state before the last set of changes.652* <P>653* Before returning, this method moves the cursor before the first row654* and sends a <code>rowSetChanged</code> event to all registered655* listeners.656* @throws SQLException if an error is occurs rolling back the RowSet657* state to the definied original value.658* @see javax.sql.RowSetListener#rowSetChanged659*/660public void restoreOriginal() throws SQLException {661throw new UnsupportedOperationException();662}663664/**665* Releases the current contents of this <code>CachedRowSetImpl</code>666* object and sends a <code>rowSetChanged</code> event object to all667* registered listeners.668*669* @throws SQLException if an error occurs flushing the contents of670* RowSet.671* @see javax.sql.RowSetListener#rowSetChanged672*/673public void release() throws SQLException {674throw new UnsupportedOperationException();675}676677/**678* Cancels deletion of the current row and notifies listeners that679* a row has changed.680* <P>681* Note: This method can be ignored if deleted rows are not being shown,682* which is the normal case.683*684* @throws SQLException if the cursor is not on a valid row685*/686public void undoDelete() throws SQLException {687throw new UnsupportedOperationException();688}689690/**691* Immediately removes the current row from this692* <code>CachedRowSetImpl</code> object if the row has been inserted, and693* also notifies listeners the a row has changed. An exception is thrown694* if the row is not a row that has been inserted or the cursor is before695* the first row, after the last row, or on the insert row.696* <P>697* This operation cannot be undone.698*699* @throws SQLException if an error occurs,700* the cursor is not on a valid row,701* or the row has not been inserted702*/703public void undoInsert() throws SQLException {704throw new UnsupportedOperationException();705}706707/**708* Immediately reverses the last update operation if the709* row has been modified. This method can be710* called to reverse updates on a all columns until all updates in a row have711* been rolled back to their originating state since the last synchronization712* (<code>acceptChanges</code>) or population. This method may also be called713* while performing updates to the insert row.714* <P>715* <code>undoUpdate</code may be called at any time during the life-time of a716* rowset, however after a synchronization has occurs this method has no717* affect until further modification to the RowSet data occurs.718*719* @throws SQLException if cursor is before the first row, after the last720* row in rowset.721* @see #undoDelete722* @see #undoInsert723* @see java.sql.ResultSet#cancelRowUpdates724*/725public void undoUpdate() throws SQLException {726throw new UnsupportedOperationException();727728}729730//--------------------------------------------------------------------731// Views732//--------------------------------------------------------------------733734/**735* Returns a new <code>RowSet</code> object backed by the same data as736* that of this <code>CachedRowSetImpl</code> object and sharing a set of cursors737* with it. This allows cursors to interate over a shared set of rows, providing738* multiple views of the underlying data.739*740* @return a <code>RowSet</code> object that is a copy of this <code>CachedRowSetImpl</code>741* object and shares a set of cursors with it742* @throws SQLException if an error occurs or cloning is743* not supported744* @see javax.sql.RowSetEvent745* @see javax.sql.RowSetListener746*/747public RowSet createShared() throws SQLException {748throw new UnsupportedOperationException();749}750751/**752* Returns a new <code>RowSet</code> object containing by the same data753* as this <code>CachedRowSetImpl</code> object. This method754* differs from the method <code>createCopy</code> in that it throws a755* <code>CloneNotSupportedException</code> object instead of an756* <code>SQLException</code> object, as the method <code>createShared</code>757* does. This <code>clone</code>758* method is called internally by the method <code>createShared</code>,759* which catches the <code>CloneNotSupportedException</code> object760* and in turn throws a new <code>SQLException</code> object.761*762* @return a copy of this <code>CachedRowSetImpl</code> object763* @throws CloneNotSupportedException if an error occurs when764* attempting to clone this <code>CachedRowSetImpl</code> object765* @see #createShared766*/767protected Object clone() throws CloneNotSupportedException {768throw new UnsupportedOperationException();769}770771/**772* Creates a <code>RowSet</code> object that is a deep copy of773* this <code>CachedRowSetImpl</code> object's data, including774* constraints. Updates made775* on a copy are not visible to the original rowset;776* a copy of a rowset is completely independent from the original.777* <P>778* Making a copy saves the cost of creating an identical rowset779* from first principles, which can be quite expensive.780* For example, it can eliminate the need to query a781* remote database server.782* @return a new <code>CachedRowSet</code> object that is a deep copy783* of this <code>CachedRowSet</code> object and is784* completely independent from this <code>CachedRowSetImpl</code>785* object.786* @throws SQLException if an error occurs in generating the copy of this787* of the <code>CachedRowSetImpl</code>788* @see #createShared789* @see javax.sql.RowSetEvent790* @see javax.sql.RowSetListener791*/792public CachedRowSet createCopy() throws SQLException {793throw new UnsupportedOperationException();794}795796/**797* Creates a <code>RowSet</code> object that is a copy of798* this <code>CachedRowSetImpl</code> object's table structure799* and the constraints only.800* There will be no data in the object being returned.801* Updates made on a copy are not visible to the original rowset.802* <P>803* This helps in getting the underlying XML schema which can804* be used as the basis for populating a <code>WebRowSet</code>.805*806* @return a new <code>CachedRowSet</code> object that is a copy807* of this <code>CachedRowSetImpl</code> object's schema and808* retains all the constraints on the original rowset but contains809* no data810* @throws SQLException if an error occurs in generating the copy811* of the <code>CachedRowSet</code> object812* @see #createShared813* @see #createCopy814* @see #createCopyNoConstraints815* @see javax.sql.RowSetEvent816* @see javax.sql.RowSetListener817*/818public CachedRowSet createCopySchema() throws SQLException {819throw new UnsupportedOperationException();820}821822/**823* Creates a <code>CachedRowSet</code> object that is a copy of824* this <code>CachedRowSetImpl</code> object's data only.825* All constraints set in this object will not be there826* in the returning object. Updates made827* on a copy are not visible to the original rowset.828*829* @return a new <code>CachedRowSet</code> object that is a deep copy830* of this <code>CachedRowSetImpl</code> object and is831* completely independent from this <code>CachedRowSetImpl</code> object832* @throws SQLException if an error occurs in generating the copy of the833* of the <code>CachedRowSet</code>834* @see #createShared835* @see #createCopy836* @see #createCopySchema837* @see javax.sql.RowSetEvent838* @see javax.sql.RowSetListener839*/840public CachedRowSet createCopyNoConstraints() throws SQLException {841throw new UnsupportedOperationException();842}843844/**845* Converts this <code>CachedRowSetImpl</code> object to a collection846* of tables. The sample implementation utilitizes the <code>TreeMap</code>847* collection type.848* This class guarantees that the map will be in ascending key order,849* sorted according to the natural order for the key's class.850*851* @return a <code>Collection</code> object consisting of tables,852* each of which is a copy of a row in this853* <code>CachedRowSetImpl</code> object854* @throws SQLException if an error occurs in generating the collection855* @see #toCollection(int)856* @see #toCollection(String)857* @see java.util.TreeMap858*/859@SuppressWarnings("rawtypes")860public Collection toCollection() throws SQLException {861throw new UnsupportedOperationException();862}863864/**865* Returns the specified column of this <code>CachedRowSetImpl</code> object866* as a <code>Collection</code> object. This method makes a copy of the867* column's data and utilitizes the <code>Vector</code> to establish the868* collection. The <code>Vector</code> class implements a growable array869* objects allowing the individual components to be accessed using an870* an integer index similar to that of an array.871*872* @return a <code>Collection</code> object that contains the value(s)873* stored in the specified column of this874* <code>CachedRowSetImpl</code>875* object876* @throws SQLException if an error occurs generated the collection; or877* an invalid column is provided.878* @see #toCollection()879* @see #toCollection(String)880* @see java.util.Vector881*/882@SuppressWarnings("rawtypes")883public Collection toCollection(int column) throws SQLException {884throw new UnsupportedOperationException();885}886887/**888* Returns the specified column of this <code>CachedRowSetImpl</code> object889* as a <code>Collection</code> object. This method makes a copy of the890* column's data and utilitizes the <code>Vector</code> to establish the891* collection. The <code>Vector</code> class implements a growable array892* objects allowing the individual components to be accessed using an893* an integer index similar to that of an array.894*895* @return a <code>Collection</code> object that contains the value(s)896* stored in the specified column of this897* <code>CachedRowSetImpl</code>898* object899* @throws SQLException if an error occurs generated the collection; or900* an invalid column is provided.901* @see #toCollection()902* @see #toCollection(int)903* @see java.util.Vector904*/905@SuppressWarnings("rawtypes")906public Collection toCollection(String column) throws SQLException {907throw new UnsupportedOperationException();908}909910//--------------------------------------------------------------------911// Advanced features912//--------------------------------------------------------------------913914915/**916* Returns the <code>SyncProvider</code> implementation being used917* with this <code>CachedRowSetImpl</code> implementation rowset.918*919* @return the SyncProvider used by the rowset. If not provider was920* set when the rowset was instantiated, the reference921* implementation (default) provider is returned.922* @throws SQLException if error occurs while return the923* <code>SyncProvider</code> instance.924*/925public SyncProvider getSyncProvider() throws SQLException {926throw new UnsupportedOperationException();927}928929/**930* Sets the active <code>SyncProvider</code> and attempts to load931* load the new provider using the <code>SyncFactory</code> SPI.932*933* @throws SQLException if an error occurs while resetting the934* <code>SyncProvider</code>.935*/936public void setSyncProvider(String providerStr) throws SQLException {937throw new UnsupportedOperationException();938}939940941//-----------------942// methods inherited from RowSet943//-----------------944945946947948949950//---------------------------------------------------------------------951// Reading and writing data952//---------------------------------------------------------------------953954/**955* Populates this <code>CachedRowSetImpl</code> object with data.956* This form of the method uses the rowset's user, password, and url or957* data source name properties to create a database958* connection. If properties that are needed959* have not been set, this method will throw an exception.960* <P>961* Another form of this method uses an existing JDBC <code>Connection</code>962* object instead of creating a new one; therefore, it ignores the963* properties used for establishing a new connection.964* <P>965* The query specified by the command property is executed to create a966* <code>ResultSet</code> object from which to retrieve data.967* The current contents of the rowset are discarded, and the968* rowset's metadata is also (re)set. If there are outstanding updates,969* they are also ignored.970* <P>971* The method <code>execute</code> closes any database connections that it972* creates.973*974* @throws SQLException if an error occurs or the975* necessary properties have not been set976*/977public void execute() throws SQLException {978throw new UnsupportedOperationException();979}980981982983//-----------------------------------984// Methods inherited from ResultSet985//-----------------------------------986987/**988* Moves the cursor down one row from its current position and989* returns <code>true</code> if the new cursor position is a990* valid row.991* The cursor for a new <code>ResultSet</code> object is initially992* positioned before the first row. The first call to the method993* <code>next</code> moves the cursor to the first row, making it994* the current row; the second call makes the second row the995* current row, and so on.996*997* <P>If an input stream from the previous row is open, it is998* implicitly closed. The <code>ResultSet</code> object's warning999* chain is cleared when a new row is read.1000*1001* @return <code>true</code> if the new current row is valid;1002* <code>false</code> if there are no more rows1003* @throws SQLException if an error occurs or1004* the cursor is not positioned in the rowset, before1005* the first row, or after the last row1006*/1007public boolean next() throws SQLException {1008throw new UnsupportedOperationException();1009}10101011/**1012* Moves this <code>CachedRowSetImpl</code> object's cursor to the next1013* row and returns <code>true</code> if the cursor is still in the rowset;1014* returns <code>false</code> if the cursor has moved to the position after1015* the last row.1016* <P>1017* This method handles the cases where the cursor moves to a row that1018* has been deleted.1019* If this rowset shows deleted rows and the cursor moves to a row1020* that has been deleted, this method moves the cursor to the next1021* row until the cursor is on a row that has not been deleted.1022* <P>1023* The method <code>internalNext</code> is called by methods such as1024* <code>next</code>, <code>absolute</code>, and <code>relative</code>,1025* and, as its name implies, is only called internally.1026* <p>1027* This is a implementation only method and is not required as a standard1028* implementation of the <code>CachedRowSet</code> interface.1029*1030* @return <code>true</code> if the cursor is on a valid row in this1031* rowset; <code>false</code> if it is after the last row1032* @throws SQLException if an error occurs1033*/1034protected boolean internalNext() throws SQLException {1035throw new UnsupportedOperationException();1036}10371038/**1039* Closes this <code>CachedRowSetImpl</code> objecy and releases any resources1040* it was using.1041*1042* @throws SQLException if an error occurs when releasing any resources in use1043* by this <code>CachedRowSetImpl</code> object1044*/1045public void close() throws SQLException {1046throw new UnsupportedOperationException();1047}10481049/**1050* Reports whether the last column read was SQL <code>NULL</code>.1051* Note that you must first call the method <code>getXXX</code>1052* on a column to try to read its value and then call the method1053* <code>wasNull</code> to determine whether the value was1054* SQL <code>NULL</code>.1055*1056* @return <code>true</code> if the value in the last column read1057* was SQL <code>NULL</code>; <code>false</code> otherwise1058* @throws SQLException if an error occurs1059*/1060public boolean wasNull() throws SQLException {1061throw new UnsupportedOperationException();1062}10631064/**1065* Returns the insert row or the current row of this1066* <code>CachedRowSetImpl</code>object.1067*1068* @return the <code>Row</code> object on which this <code>CachedRowSetImpl</code>1069* objects's cursor is positioned1070*/1071protected BaseRow getCurrentRow() {1072throw new UnsupportedOperationException();1073}10741075/**1076* Removes the row on which the cursor is positioned.1077* <p>1078* This is a implementation only method and is not required as a standard1079* implementation of the <code>CachedRowSet</code> interface.1080*1081* @throws SQLException if the cursor is positioned on the insert1082* row1083*/1084protected void removeCurrentRow() {1085throw new UnsupportedOperationException();1086}108710881089/**1090* Retrieves the value of the designated column in the current row1091* of this <code>CachedRowSetImpl</code> object as a1092* <code>String</code> object.1093*1094* @param columnIndex the first column is <code>1</code>, the second1095* is <code>2</code>, and so on; must be <code>1</code> or larger1096* and equal to or less than the number of columns in the rowset1097* @return the column value; if the value is SQL <code>NULL</code>, the1098* result is <code>null</code>1099* @throws SQLException if (1) the given column index is out of bounds,1100* (2) the cursor is not on one of this rowset's rows or its1101* insert row, or (3) the designated column does not store an1102* SQL <code>TINYINT, SMALLINT, INTEGER, BIGINT, REAL,1103* FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, <b>CHAR</b>, <b>VARCHAR</b></code>1104* or <code>LONGVARCHAR</code> value. The bold SQL type designates the1105* recommended return type.1106*/1107public String getString(int columnIndex) throws SQLException {1108throw new UnsupportedOperationException();1109}11101111/**1112* Retrieves the value of the designated column in the current row1113* of this <code>CachedRowSetImpl</code> object as a1114* <code>boolean</code> value.1115*1116* @param columnIndex the first column is <code>1</code>, the second1117* is <code>2</code>, and so on; must be <code>1</code> or larger1118* and equal to or less than the number of columns in the rowset1119* @return the column value as a <code>boolean</code> in the Java progamming language;1120* if the value is SQL <code>NULL</code>, the result is <code>false</code>1121* @throws SQLException if (1) the given column index is out of bounds,1122* (2) the cursor is not on one of this rowset's rows or its1123* insert row, or (3) the designated column does not store an1124* SQL <code>BOOLEAN</code> value1125* @see #getBoolean(String)1126*/1127public boolean getBoolean(int columnIndex) throws SQLException {1128throw new UnsupportedOperationException();1129}11301131/**1132* Retrieves the value of the designated column in the current row1133* of this <code>CachedRowSetImpl</code> object as a1134* <code>byte</code> value.1135*1136* @param columnIndex the first column is <code>1</code>, the second1137* is <code>2</code>, and so on; must be <code>1</code> or larger1138* and equal to or less than the number of columns in the rowset1139* @return the column value as a <code>byte</code> in the Java programming1140* language; if the value is SQL <code>NULL</code>, the result is <code>0</code>1141* @throws SQLException if (1) the given column index is out of bounds,1142* (2) the cursor is not on one of this rowset's rows or its1143* insert row, or (3) the designated column does not store an1144* SQL <code><b>TINYINT</b>, SMALLINT, INTEGER, BIGINT, REAL,1145* FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code>1146* or <code>LONGVARCHAR</code> value. The bold SQL type1147* designates the recommended return type.1148* @see #getByte(String)1149*/1150public byte getByte(int columnIndex) throws SQLException {1151throw new UnsupportedOperationException();1152}11531154/**1155* Retrieves the value of the designated column in the current row1156* of this <code>CachedRowSetImpl</code> object as a1157* <code>short</code> value.1158*1159* @param columnIndex the first column is <code>1</code>, the second1160* is <code>2</code>, and so on; must be <code>1</code> or larger1161* and equal to or less than the number of columns in the rowset1162* @return the column value; if the value is SQL <code>NULL</code>, the1163* result is <code>0</code>1164* @throws SQLException if (1) the given column index is out of bounds,1165* (2) the cursor is not on one of this rowset's rows or its1166* insert row, or (3) the designated column does not store an1167* SQL <code>TINYINT, <b>SMALLINT</b>, INTEGER, BIGINT, REAL1168* FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code>1169* or <code>LONGVARCHAR</code> value. The bold SQL type designates the1170* recommended return type.1171* @see #getShort(String)1172*/1173public short getShort(int columnIndex) throws SQLException {1174throw new UnsupportedOperationException();1175}11761177/**1178* Retrieves the value of the designated column in the current row1179* of this <code>CachedRowSetImpl</code> object as an1180* <code>int</code> value.1181*1182* @param columnIndex the first column is <code>1</code>, the second1183* is <code>2</code>, and so on; must be <code>1</code> or larger1184* and equal to or less than the number of columns in the rowset1185* @return the column value; if the value is SQL <code>NULL</code>, the1186* result is <code>0</code>1187* @throws SQLException if (1) the given column index is out of bounds,1188* (2) the cursor is not on one of this rowset's rows or its1189* insert row, or (3) the designated column does not store an1190* SQL <code>TINYINT, SMALLINT, <b>INTEGER</b>, BIGINT, REAL1191* FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code>1192* or <code>LONGVARCHAR</code> value. The bold SQL type designates the1193* recommended return type.1194*/1195public int getInt(int columnIndex) throws SQLException {1196throw new UnsupportedOperationException();1197}11981199/**1200* Retrieves the value of the designated column in the current row1201* of this <code>CachedRowSetImpl</code> object as a1202* <code>long</code> value.1203*1204* @param columnIndex the first column is <code>1</code>, the second1205* is <code>2</code>, and so on; must be <code>1</code> or larger1206* and equal to or less than the number of columns in the rowset1207* @return the column value; if the value is SQL <code>NULL</code>, the1208* result is <code>0</code>1209* @throws SQLException if (1) the given column index is out of bounds,1210* (2) the cursor is not on one of this rowset's rows or its1211* insert row, or (3) the designated column does not store an1212* SQL <code>TINYINT, SMALLINT, INTEGER, <b>BIGINT</b>, REAL1213* FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code>1214* or <code>LONGVARCHAR</code> value. The bold SQL type designates the1215* recommended return type.1216* @see #getLong(String)1217*/1218public long getLong(int columnIndex) throws SQLException {1219throw new UnsupportedOperationException();1220}12211222/**1223* Retrieves the value of the designated column in the current row1224* of this <code>CachedRowSetImpl</code> object as a1225* <code>float</code> value.1226*1227* @param columnIndex the first column is <code>1</code>, the second1228* is <code>2</code>, and so on; must be <code>1</code> or larger1229* and equal to or less than the number of columns in the rowset1230* @return the column value; if the value is SQL <code>NULL</code>, the1231* result is <code>0</code>1232* @throws SQLException if (1) the given column index is out of bounds,1233* (2) the cursor is not on one of this rowset's rows or its1234* insert row, or (3) the designated column does not store an1235* SQL <code>TINYINT, SMALLINT, INTEGER, BIGINT, <b>REAL</b>,1236* FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code>1237* or <code>LONGVARCHAR</code> value. The bold SQL type designates the1238* recommended return type.1239* @see #getFloat(String)1240*/1241public float getFloat(int columnIndex) throws SQLException {1242throw new UnsupportedOperationException();1243}12441245/**1246* Retrieves the value of the designated column in the current row1247* of this <code>CachedRowSetImpl</code> object as a1248* <code>double</code> value.1249*1250* @param columnIndex the first column is <code>1</code>, the second1251* is <code>2</code>, and so on; must be <code>1</code> or larger1252* and equal to or less than the number of columns in the rowset1253* @return the column value; if the value is SQL <code>NULL</code>, the1254* result is <code>0</code>1255* @throws SQLException if (1) the given column index is out of bounds,1256* (2) the cursor is not on one of this rowset's rows or its1257* insert row, or (3) the designated column does not store an1258* SQL <code>TINYINT, SMALLINT, INTEGER, BIGINT, REAL,1259* <b>FLOAT</b>, <b>DOUBLE</b>, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code>1260* or <code>LONGVARCHAR</code> value. The bold SQL type designates the1261* recommended return type.1262* @see #getDouble(String)1263*1264*/1265public double getDouble(int columnIndex) throws SQLException {1266throw new UnsupportedOperationException();1267}12681269/**1270* Retrieves the value of the designated column in the current row1271* of this <code>CachedRowSetImpl</code> object as a1272* <code>java.math.BigDecimal</code> object.1273* <P>1274* This method is deprecated; use the version of <code>getBigDecimal</code>1275* that does not take a scale parameter and returns a value with full1276* precision.1277*1278* @param columnIndex the first column is <code>1</code>, the second1279* is <code>2</code>, and so on; must be <code>1</code> or larger1280* and equal to or less than the number of columns in the rowset1281* @param scale the number of digits to the right of the decimal point in the1282* value returned1283* @return the column value with the specified number of digits to the right1284* of the decimal point; if the value is SQL <code>NULL</code>, the1285* result is <code>null</code>1286* @throws SQLException if the given column index is out of bounds,1287* the cursor is not on a valid row, or this method fails1288* @deprecated1289*/1290@Deprecated1291public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException {1292throw new UnsupportedOperationException();1293}12941295/**1296* Retrieves the value of the designated column in the current row1297* of this <code>CachedRowSetImpl</code> object as a1298* <code>byte</code> array value.1299*1300* @param columnIndex the first column is <code>1</code>, the second1301* is <code>2</code>, and so on; must be <code>1</code> or larger1302* and equal to or less than the number of columns in the rowset1303* @return the column value as a <code>byte</code> array in the Java programming1304* language; if the value is SQL <code>NULL</code>, the1305* result is <code>null</code>1306*1307* @throws SQLException if (1) the given column index is out of bounds,1308* (2) the cursor is not on one of this rowset's rows or its1309* insert row, or (3) the designated column does not store an1310* SQL <code><b>BINARY</b>, <b>VARBINARY</b> or1311* LONGVARBINARY</code> value.1312* The bold SQL type designates the recommended return type.1313* @see #getBytes(String)1314*/1315public byte[] getBytes(int columnIndex) throws SQLException {1316throw new UnsupportedOperationException();1317}13181319/**1320* Retrieves the value of the designated column in the current row1321* of this <code>CachedRowSetImpl</code> object as a1322* <code>java.sql.Date</code> object.1323*1324* @param columnIndex the first column is <code>1</code>, the second1325* is <code>2</code>, and so on; must be <code>1</code> or larger1326* and equal to or less than the number of columns in the rowset1327* @return the column value as a <code>java.sql.Data</code> object; if1328* the value is SQL <code>NULL</code>, the1329* result is <code>null</code>1330* @throws SQLException if the given column index is out of bounds,1331* the cursor is not on a valid row, or this method fails1332*/1333public java.sql.Date getDate(int columnIndex) throws SQLException {1334throw new UnsupportedOperationException();1335}13361337/**1338* Retrieves the value of the designated column in the current row1339* of this <code>CachedRowSetImpl</code> object as a1340* <code>java.sql.Time</code> object.1341*1342* @param columnIndex the first column is <code>1</code>, the second1343* is <code>2</code>, and so on; must be <code>1</code> or larger1344* and equal to or less than the number of columns in the rowset1345* @return the column value; if the value is SQL <code>NULL</code>, the1346* result is <code>null</code>1347* @throws SQLException if the given column index is out of bounds,1348* the cursor is not on a valid row, or this method fails1349*/1350public java.sql.Time getTime(int columnIndex) throws SQLException {1351throw new UnsupportedOperationException();1352}13531354/**1355* Retrieves the value of the designated column in the current row1356* of this <code>CachedRowSetImpl</code> object as a1357* <code>java.sql.Timestamp</code> object.1358*1359* @param columnIndex the first column is <code>1</code>, the second1360* is <code>2</code>, and so on; must be <code>1</code> or larger1361* and equal to or less than the number of columns in the rowset1362* @return the column value; if the value is SQL <code>NULL</code>, the1363* result is <code>null</code>1364* @throws SQLException if the given column index is out of bounds,1365* the cursor is not on a valid row, or this method fails1366*/1367public java.sql.Timestamp getTimestamp(int columnIndex) throws SQLException {1368throw new UnsupportedOperationException();1369}13701371/**1372* Retrieves the value of the designated column in the current row of this1373* <code>CachedRowSetImpl</code> object as a <code>java.io.InputStream</code>1374* object.1375*1376* A column value can be retrieved as a stream of ASCII characters1377* and then read in chunks from the stream. This method is particularly1378* suitable for retrieving large <code>LONGVARCHAR</code> values. The JDBC1379* driver will do any necessary conversion from the database format into ASCII.1380*1381* <P><B>Note:</B> All the data in the returned stream must be1382* read prior to getting the value of any other column. The next1383* call to a get method implicitly closes the stream. . Also, a1384* stream may return <code>0</code> for <code>CachedRowSetImpl.available()</code>1385* whether there is data available or not.1386*1387* @param columnIndex the first column is <code>1</code>, the second1388* is <code>2</code>, and so on; must be <code>1</code> or larger1389* and equal to or less than the number of columns in this rowset1390* @return a Java input stream that delivers the database column value1391* as a stream of one-byte ASCII characters. If the value is SQL1392* <code>NULL</code>, the result is <code>null</code>.1393* @throws SQLException if (1) the given column index is out of bounds,1394* (2) the cursor is not on one of this rowset's rows or its1395* insert row, or (3) the designated column does not store an1396* SQL <code>CHAR, VARCHAR</code>, <code><b>LONGVARCHAR</b></code>1397* <code>BINARY, VARBINARY</code> or <code>LONGVARBINARY</code> value. The1398* bold SQL type designates the recommended return types that this method is1399* used to retrieve.1400* @see #getAsciiStream(String)1401*/1402public java.io.InputStream getAsciiStream(int columnIndex) throws SQLException {1403throw new UnsupportedOperationException();1404}14051406/**1407* A column value can be retrieved as a stream of Unicode characters1408* and then read in chunks from the stream. This method is particularly1409* suitable for retrieving large LONGVARCHAR values. The JDBC driver will1410* do any necessary conversion from the database format into Unicode.1411*1412* <P><B>Note:</B> All the data in the returned stream must be1413* read prior to getting the value of any other column. The next1414* call to a get method implicitly closes the stream. . Also, a1415* stream may return 0 for available() whether there is data1416* available or not.1417*1418* @param columnIndex the first column is <code>1</code>, the second1419* is <code>2</code>, and so on; must be <code>1</code> or larger1420* and equal to or less than the number of columns in this rowset1421* @return a Java input stream that delivers the database column value1422* as a stream of two byte Unicode characters. If the value is SQL NULL1423* then the result is null.1424* @throws SQLException if an error occurs1425* @deprecated1426*/1427@Deprecated1428public java.io.InputStream getUnicodeStream(int columnIndex) throws SQLException {1429throw new UnsupportedOperationException();1430}14311432/**1433* Retrieves the value of the designated column in the current row of this1434* <code>CachedRowSetImpl</code> object as a <code>java.io.InputStream</code>1435* object.1436* <P>1437* A column value can be retrieved as a stream of uninterpreted bytes1438* and then read in chunks from the stream. This method is particularly1439* suitable for retrieving large <code>LONGVARBINARY</code> values.1440*1441* <P><B>Note:</B> All the data in the returned stream must be1442* read prior to getting the value of any other column. The next1443* call to a get method implicitly closes the stream. Also, a1444* stream may return <code>0</code> for1445* <code>CachedRowSetImpl.available()</code> whether there is data1446* available or not.1447*1448* @param columnIndex the first column is <code>1</code>, the second1449* is <code>2</code>, and so on; must be <code>1</code> or larger1450* and equal to or less than the number of columns in the rowset1451* @return a Java input stream that delivers the database column value1452* as a stream of uninterpreted bytes. If the value is SQL <code>NULL</code>1453* then the result is <code>null</code>.1454* @throws SQLException if (1) the given column index is out of bounds,1455* (2) the cursor is not on one of this rowset's rows or its1456* insert row, or (3) the designated column does not store an1457* SQL <code>BINARY, VARBINARY</code> or <code><b>LONGVARBINARY</b></code>1458* The bold type indicates the SQL type that this method is recommened1459* to retrieve.1460* @see #getBinaryStream(String)1461*/1462public java.io.InputStream getBinaryStream(int columnIndex) throws SQLException {1463throw new UnsupportedOperationException();14641465}146614671468//======================================================================1469// Methods for accessing results by column name1470//======================================================================14711472/**1473* Retrieves the value stored in the designated column1474* of the current row as a <code>String</code> object.1475*1476* @param columnName a <code>String</code> object giving the SQL name of1477* a column in this <code>CachedRowSetImpl</code> object1478* @return the column value; if the value is SQL <code>NULL</code>,1479* the result is <code>null</code>1480* @throws SQLException if (1) the given column name is not the name of1481* a column in this rowset, (2) the cursor is not on one of1482* this rowset's rows or its insert row, or (3) the designated1483* column does not store an SQL <code>TINYINT, SMALLINT, INTEGER1484* BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, <b>CHAR</b>,1485* <b>VARCHAR</b></code> or <code>LONGVARCHAR<</code> value. The bold SQL type1486* designates the recommended return type.1487*/1488public String getString(String columnName) throws SQLException {1489throw new UnsupportedOperationException();1490}14911492/**1493* Retrieves the value stored in the designated column1494* of the current row as a <code>boolean</code> value.1495*1496* @param columnName a <code>String</code> object giving the SQL name of1497* a column in this <code>CachedRowSetImpl</code> object1498* @return the column value as a <code>boolean</code> in the Java programming1499* language; if the value is SQL <code>NULL</code>,1500* the result is <code>false</code>1501* @throws SQLException if (1) the given column name is not the name of1502* a column in this rowset, (2) the cursor is not on one of1503* this rowset's rows or its insert row, or (3) the designated1504* column does not store an SQL <code>BOOLEAN</code> value1505* @see #getBoolean(int)1506*/1507public boolean getBoolean(String columnName) throws SQLException {1508throw new UnsupportedOperationException();1509}15101511/**1512* Retrieves the value stored in the designated column1513* of the current row as a <code>byte</code> value.1514*1515* @param columnName a <code>String</code> object giving the SQL name of1516* a column in this <code>CachedRowSetImpl</code> object1517* @return the column value as a <code>byte</code> in the Java programming1518* language; if the value is SQL <code>NULL</code>, the result is <code>0</code>1519* @throws SQLException if (1) the given column name is not the name of1520* a column in this rowset, (2) the cursor is not on one of1521* this rowset's rows or its insert row, or (3) the designated1522* column does not store an SQL <code><B>TINYINT</B>, SMALLINT, INTEGER,1523* BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,1524* VARCHAR</code> or <code>LONGVARCHAR</code> value. The1525* bold type designates the recommended return type1526*/1527public byte getByte(String columnName) throws SQLException {1528throw new UnsupportedOperationException();1529}15301531/**1532* Retrieves the value stored in the designated column1533* of the current row as a <code>short</code> value.1534*1535* @param columnName a <code>String</code> object giving the SQL name of1536* a column in this <code>CachedRowSetImpl</code> object1537* @return the column value; if the value is SQL <code>NULL</code>,1538* the result is <code>0</code>1539* @throws SQLException if (1) the given column name is not the name of1540* a column in this rowset, (2) the cursor is not on one of1541* this rowset's rows or its insert row, or (3) the designated1542* column does not store an SQL <code>TINYINT, <b>SMALLINT</b>, INTEGER1543* BIGINT, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,1544* VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type1545* designates the recommended return type.1546* @see #getShort(int)1547*/1548public short getShort(String columnName) throws SQLException {1549throw new UnsupportedOperationException();1550}15511552/**1553* Retrieves the value stored in the designated column1554* of the current row as an <code>int</code> value.1555*1556* @param columnName a <code>String</code> object giving the SQL name of1557* a column in this <code>CachedRowSetImpl</code> object1558* @return the column value; if the value is SQL <code>NULL</code>,1559* the result is <code>0</code>1560* @throws SQLException if (1) the given column name is not the name1561* of a column in this rowset,1562* (2) the cursor is not on one of this rowset's rows or its1563* insert row, or (3) the designated column does not store an1564* SQL <code>TINYINT, SMALLINT, <b>INTEGER</b>, BIGINT, REAL1565* FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR, VARCHAR</code>1566* or <code>LONGVARCHAR</code> value. The bold SQL type designates the1567* recommended return type.1568*/1569public int getInt(String columnName) throws SQLException {1570throw new UnsupportedOperationException();1571}15721573/**1574* Retrieves the value stored in the designated column1575* of the current row as a <code>long</code> value.1576*1577* @param columnName a <code>String</code> object giving the SQL name of1578* a column in this <code>CachedRowSetImpl</code> object1579* @return the column value; if the value is SQL <code>NULL</code>,1580* the result is <code>0</code>1581* @throws SQLException if (1) the given column name is not the name of1582* a column in this rowset, (2) the cursor is not on one of1583* this rowset's rows or its insert row, or (3) the designated1584* column does not store an SQL <code>TINYINT, SMALLINT, INTEGER1585* <b>BIGINT</b>, REAL, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,1586* VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type1587* designates the recommended return type.1588* @see #getLong(int)1589*/1590public long getLong(String columnName) throws SQLException {1591throw new UnsupportedOperationException();1592}15931594/**1595* Retrieves the value stored in the designated column1596* of the current row as a <code>float</code> value.1597*1598* @param columnName a <code>String</code> object giving the SQL name of1599* a column in this <code>CachedRowSetImpl</code> object1600* @return the column value; if the value is SQL <code>NULL</code>,1601* the result is <code>0</code>1602* @throws SQLException if (1) the given column name is not the name of1603* a column in this rowset, (2) the cursor is not on one of1604* this rowset's rows or its insert row, or (3) the designated1605* column does not store an SQL <code>TINYINT, SMALLINT, INTEGER1606* BIGINT, <b>REAL</b>, FLOAT, DOUBLE, DECIMAL, NUMERIC, BIT, CHAR,1607* VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type1608* designates the recommended return type.1609* @see #getFloat(String)1610*/1611public float getFloat(String columnName) throws SQLException {1612throw new UnsupportedOperationException();1613}16141615/**1616* Retrieves the value stored in the designated column1617* of the current row of this <code>CachedRowSetImpl</code> object1618* as a <code>double</code> value.1619*1620* @param columnName a <code>String</code> object giving the SQL name of1621* a column in this <code>CachedRowSetImpl</code> object1622* @return the column value; if the value is SQL <code>NULL</code>,1623* the result is <code>0</code>1624* @throws SQLException if (1) the given column name is not the name of1625* a column in this rowset, (2) the cursor is not on one of1626* this rowset's rows or its insert row, or (3) the designated1627* column does not store an SQL <code>TINYINT, SMALLINT, INTEGER1628* BIGINT, REAL, <b>FLOAT</b>, <b>DOUBLE</b>, DECIMAL, NUMERIC, BIT, CHAR,1629* VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type1630* designates the recommended return types.1631* @see #getDouble(int)1632*/1633public double getDouble(String columnName) throws SQLException {1634throw new UnsupportedOperationException();1635}16361637/**1638* Retrieves the value stored in the designated column1639* of the current row as a <code>java.math.BigDecimal</code> object.1640*1641* @param columnName a <code>String</code> object giving the SQL name of1642* a column in this <code>CachedRowSetImpl</code> object1643* @param scale the number of digits to the right of the decimal point1644* @return a java.math.BugDecimal object with <code><i>scale</i></code>1645* number of digits to the right of the decimal point.1646* @throws SQLException if (1) the given column name is not the name of1647* a column in this rowset, (2) the cursor is not on one of1648* this rowset's rows or its insert row, or (3) the designated1649* column does not store an SQL <code>TINYINT, SMALLINT, INTEGER1650* BIGINT, REAL, FLOAT, DOUBLE, <b>DECIMAL</b>, <b>NUMERIC</b>, BIT CHAR,1651* VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type1652* designates the recommended return type that this method is used to1653* retrieve.1654* @deprecated Use the <code>getBigDecimal(String columnName)</code>1655* method instead1656*/1657@Deprecated1658public BigDecimal getBigDecimal(String columnName, int scale) throws SQLException {1659throw new UnsupportedOperationException();1660}16611662/**1663* Retrieves the value stored in the designated column1664* of the current row as a <code>byte</code> array.1665* The bytes represent the raw values returned by the driver.1666*1667* @param columnName a <code>String</code> object giving the SQL name of1668* a column in this <code>CachedRowSetImpl</code> object1669* @return the column value as a <code>byte</code> array in the Java programming1670* language; if the value is SQL <code>NULL</code>, the result is <code>null</code>1671* @throws SQLException if (1) the given column name is not the name of1672* a column in this rowset, (2) the cursor is not on one of1673* this rowset's rows or its insert row, or (3) the designated1674* column does not store an SQL <code><b>BINARY</b>, <b>VARBINARY</b>1675* </code> or <code>LONGVARBINARY</code> values1676* The bold SQL type designates the recommended return type.1677* @see #getBytes(int)1678*/1679public byte[] getBytes(String columnName) throws SQLException {1680throw new UnsupportedOperationException();1681}16821683/**1684* Retrieves the value stored in the designated column1685* of the current row as a <code>java.sql.Date</code> object.1686*1687* @param columnName a <code>String</code> object giving the SQL name of1688* a column in this <code>CachedRowSetImpl</code> object1689* @return the column value; if the value is SQL <code>NULL</code>,1690* the result is <code>null</code>1691* @throws SQLException if (1) the given column name is not the name of1692* a column in this rowset, (2) the cursor is not on one of1693* this rowset's rows or its insert row, or (3) the designated1694* column does not store an SQL <code>DATE</code> or1695* <code>TIMESTAMP</code> value1696*/1697public java.sql.Date getDate(String columnName) throws SQLException {1698throw new UnsupportedOperationException();1699}17001701/**1702* Retrieves the value stored in the designated column1703* of the current row as a <code>java.sql.Time</code> object.1704*1705* @param columnName a <code>String</code> object giving the SQL name of1706* a column in this <code>CachedRowSetImpl</code> object1707* @return the column value; if the value is SQL <code>NULL</code>,1708* the result is <code>null</code>1709* @throws SQLException if the given column name does not match one of1710* this rowset's column names or the cursor is not on one of1711* this rowset's rows or its insert row1712*/1713public java.sql.Time getTime(String columnName) throws SQLException {1714throw new UnsupportedOperationException();1715}17161717/**1718* Retrieves the value stored in the designated column1719* of the current row as a <code>java.sql.Timestamp</code> object.1720*1721* @param columnName a <code>String</code> object giving the SQL name of1722* a column in this <code>CachedRowSetImpl</code> object1723* @return the column value; if the value is SQL <code>NULL</code>,1724* the result is <code>null</code>1725* @throws SQLException if the given column name does not match one of1726* this rowset's column names or the cursor is not on one of1727* this rowset's rows or its insert row1728*/1729public java.sql.Timestamp getTimestamp(String columnName) throws SQLException {1730throw new UnsupportedOperationException();1731}17321733/**1734* Retrieves the value of the designated column in the current row of this1735* <code>CachedRowSetImpl</code> object as a <code>java.io.InputStream</code>1736* object.1737*1738* A column value can be retrieved as a stream of ASCII characters1739* and then read in chunks from the stream. This method is particularly1740* suitable for retrieving large <code>LONGVARCHAR</code> values. The1741* <code>SyncProvider</code> will rely on the JDBC driver to do any necessary1742* conversion from the database format into ASCII format.1743*1744* <P><B>Note:</B> All the data in the returned stream must1745* be read prior to getting the value of any other column. The1746* next call to a <code>getXXX</code> method implicitly closes the stream.1747*1748* @param columnName a <code>String</code> object giving the SQL name of1749* a column in this <code>CachedRowSetImpl</code> object1750* @return a Java input stream that delivers the database column value1751* as a stream of one-byte ASCII characters. If the value is SQL1752* <code>NULL</code>, the result is <code>null</code>.1753* @throws SQLException if (1) the given column name is not the name of1754* a column in this rowset1755* (2) the cursor is not on one of this rowset's rows or its1756* insert row, or (3) the designated column does not store an1757* SQL <code>CHAR, VARCHAR</code>, <code><b>LONGVARCHAR</b></code>1758* <code>BINARY, VARBINARY</code> or <code>LONGVARBINARY</code> value. The1759* bold SQL type designates the recommended return types that this method is1760* used to retrieve.1761* @see #getAsciiStream(int)1762*/1763public java.io.InputStream getAsciiStream(String columnName) throws SQLException {1764throw new UnsupportedOperationException();17651766}17671768/**1769* A column value can be retrieved as a stream of Unicode characters1770* and then read in chunks from the stream. This method is particularly1771* suitable for retrieving large <code>LONGVARCHAR</code> values.1772* The JDBC driver will do any necessary conversion from the database1773* format into Unicode.1774*1775* <P><B>Note:</B> All the data in the returned stream must1776* be read prior to getting the value of any other column. The1777* next call to a <code>getXXX</code> method implicitly closes the stream.1778*1779* @param columnName a <code>String</code> object giving the SQL name of1780* a column in this <code>CachedRowSetImpl</code> object1781* @return a Java input stream that delivers the database column value1782* as a stream of two-byte Unicode characters. If the value is1783* SQL <code>NULL</code>, the result is <code>null</code>.1784* @throws SQLException if the given column name does not match one of1785* this rowset's column names or the cursor is not on one of1786* this rowset's rows or its insert row1787* @deprecated use the method <code>getCharacterStream</code> instead1788*/1789@Deprecated1790public java.io.InputStream getUnicodeStream(String columnName) throws SQLException {1791throw new UnsupportedOperationException();1792}17931794/**1795* Retrieves the value of the designated column in the current row of this1796* <code>CachedRowSetImpl</code> object as a <code>java.io.InputStream</code>1797* object.1798* <P>1799* A column value can be retrieved as a stream of uninterpreted bytes1800* and then read in chunks from the stream. This method is particularly1801* suitable for retrieving large <code>LONGVARBINARY</code> values.1802*1803* <P><B>Note:</B> All the data in the returned stream must be1804* read prior to getting the value of any other column. The next1805* call to a get method implicitly closes the stream. Also, a1806* stream may return <code>0</code> for <code>CachedRowSetImpl.available()</code>1807* whether there is data available or not.1808*1809* @param columnName a <code>String</code> object giving the SQL name of1810* a column in this <code>CachedRowSetImpl</code> object1811* @return a Java input stream that delivers the database column value1812* as a stream of uninterpreted bytes. If the value is SQL1813* <code>NULL</code>, the result is <code>null</code>.1814* @throws SQLException if (1) the given column name is unknown,1815* (2) the cursor is not on one of this rowset's rows or its1816* insert row, or (3) the designated column does not store an1817* SQL <code>BINARY, VARBINARY</code> or <code><b>LONGVARBINARY</b></code>1818* The bold type indicates the SQL type that this method is recommened1819* to retrieve.1820* @see #getBinaryStream(int)1821*1822*/1823public java.io.InputStream getBinaryStream(String columnName) throws SQLException {1824throw new UnsupportedOperationException();1825}182618271828//=====================================================================1829// Advanced features:1830//=====================================================================18311832/**1833* The first warning reported by calls on this <code>CachedRowSetImpl</code>1834* object is returned. Subsequent <code>CachedRowSetImpl</code> warnings will1835* be chained to this <code>SQLWarning</code>.1836*1837* <P>The warning chain is automatically cleared each time a new1838* row is read.1839*1840* <P><B>Note:</B> This warning chain only covers warnings caused1841* by <code>ResultSet</code> methods. Any warning caused by statement1842* methods (such as reading OUT parameters) will be chained on the1843* <code>Statement</code> object.1844*1845* @return the first SQLWarning or null1846*/1847public SQLWarning getWarnings() {1848throw new UnsupportedOperationException();1849}18501851/**1852* Clears all the warnings reporeted for the <code>CachedRowSetImpl</code>1853* object. After a call to this method, the <code>getWarnings</code> method1854* returns <code>null</code> until a new warning is reported for this1855* <code>CachedRowSetImpl</code> object.1856*/1857public void clearWarnings() {1858throw new UnsupportedOperationException();1859}18601861/**1862* Retrieves the name of the SQL cursor used by this1863* <code>CachedRowSetImpl</code> object.1864*1865* <P>In SQL, a result table is retrieved through a cursor that is1866* named. The current row of a <code>ResultSet</code> can be updated or deleted1867* using a positioned update/delete statement that references the1868* cursor name. To ensure that the cursor has the proper isolation1869* level to support an update operation, the cursor's <code>SELECT</code>1870* statement should be of the form <code>select for update</code>.1871* If the <code>for update</code> clause1872* is omitted, positioned updates may fail.1873*1874* <P>JDBC supports this SQL feature by providing the name of the1875* SQL cursor used by a <code>ResultSet</code> object. The current row1876* of a result set is also the current row of this SQL cursor.1877*1878* <P><B>Note:</B> If positioned updates are not supported, an1879* <code>SQLException</code> is thrown.1880*1881* @return the SQL cursor name for this <code>CachedRowSetImpl</code> object's1882* cursor1883* @throws SQLException if an error occurs1884*/1885public String getCursorName() throws SQLException {1886throw new UnsupportedOperationException();1887}18881889/**1890* Retrieves a <code>ResultSetMetaData</code> object instance that1891* contains information about the <code>CachedRowSet</code> object.1892* However, applications should cast the returned object to a1893* <code>RowSetMetaData</code> interface implementation. In the1894* reference implementation, this cast can be done on the1895* <code>RowSetMetaDataImpl</code> class.1896* <P>1897* For example:1898* <pre>1899* CachedRowSet crs = new CachedRowSetImpl();1900* RowSetMetaDataImpl metaData =1901* (RowSetMetaDataImpl)crs.getMetaData();1902* // Set the number of columns in the RowSet object for1903* // which this RowSetMetaDataImpl object was created to the1904* // given number.1905* metaData.setColumnCount(3);1906* crs.setMetaData(metaData);1907* </pre>1908*1909* @return the <code>ResultSetMetaData</code> object that describes this1910* <code>CachedRowSetImpl</code> object's columns1911* @throws SQLException if an error occurs in generating the RowSet1912* meta data; or if the <code>CachedRowSetImpl</code> is empty.1913* @see javax.sql.RowSetMetaData1914*/1915public ResultSetMetaData getMetaData() throws SQLException {1916throw new UnsupportedOperationException();1917}191819191920/**1921* Retrieves the value of the designated column in the current row1922* of this <code>CachedRowSetImpl</code> object as an1923* <code>Object</code> value.1924* <P>1925* The type of the <code>Object</code> will be the default1926* Java object type corresponding to the column's SQL type,1927* following the mapping for built-in types specified in the JDBC 3.01928* specification.1929* <P>1930* This method may also be used to read datatabase-specific1931* abstract data types.1932* <P>1933* This implementation of the method <code>getObject</code> extends its1934* behavior so that it gets the attributes of an SQL structured type1935* as an array of <code>Object</code> values. This method also custom1936* maps SQL user-defined types to classes in the Java programming language.1937* When the specified column contains1938* a structured or distinct value, the behavior of this method is as1939* if it were a call to the method <code>getObject(columnIndex,1940* this.getStatement().getConnection().getTypeMap())</code>.1941*1942* @param columnIndex the first column is <code>1</code>, the second1943* is <code>2</code>, and so on; must be <code>1</code> or larger1944* and equal to or less than the number of columns in the rowset1945* @return a <code>java.lang.Object</code> holding the column value;1946* if the value is SQL <code>NULL</code>, the result is <code>null</code>1947* @throws SQLException if the given column index is out of bounds,1948* the cursor is not on a valid row, or there is a problem getting1949* the <code>Class</code> object for a custom mapping1950* @see #getObject(String)1951*/1952public Object getObject(int columnIndex) throws SQLException {1953throw new UnsupportedOperationException();1954}19551956/**1957* Retrieves the value of the designated column in the current row1958* of this <code>CachedRowSetImpl</code> object as an1959* <code>Object</code> value.1960* <P>1961* The type of the <code>Object</code> will be the default1962* Java object type corresponding to the column's SQL type,1963* following the mapping for built-in types specified in the JDBC 3.01964* specification.1965* <P>1966* This method may also be used to read datatabase-specific1967* abstract data types.1968* <P>1969* This implementation of the method <code>getObject</code> extends its1970* behavior so that it gets the attributes of an SQL structured type1971* as an array of <code>Object</code> values. This method also custom1972* maps SQL user-defined types to classes1973* in the Java programming language. When the specified column contains1974* a structured or distinct value, the behavior of this method is as1975* if it were a call to the method <code>getObject(columnIndex,1976* this.getStatement().getConnection().getTypeMap())</code>.1977*1978* @param columnName a <code>String</code> object that must match the1979* SQL name of a column in this rowset, ignoring case1980* @return a <code>java.lang.Object</code> holding the column value;1981* if the value is SQL <code>NULL</code>, the result is <code>null</code>1982* @throws SQLException if (1) the given column name does not match one of1983* this rowset's column names, (2) the cursor is not1984* on a valid row, or (3) there is a problem getting1985* the <code>Class</code> object for a custom mapping1986* @see #getObject(int)1987*/1988public Object getObject(String columnName) throws SQLException {1989throw new UnsupportedOperationException();1990}19911992//----------------------------------------------------------------19931994/**1995* Maps the given column name for one of this <code>CachedRowSetImpl</code>1996* object's columns to its column number.1997*1998* @param columnName a <code>String</code> object that must match the1999* SQL name of a column in this rowset, ignoring case2000* @return the column index of the given column name2001* @throws SQLException if the given column name does not match one2002* of this rowset's column names2003*/2004public int findColumn(String columnName) throws SQLException {2005throw new UnsupportedOperationException();2006}20072008//--------------------------JDBC 2.0-----------------------------------20092010//---------------------------------------------------------------------2011// Getter's and Setter's2012//---------------------------------------------------------------------20132014/**2015* Retrieves the value stored in the designated column2016* of the current row as a <code>java.io.Reader</code> object.2017*2018* <P><B>Note:</B> All the data in the returned stream must2019* be read prior to getting the value of any other column. The2020* next call to a <code>getXXX</code> method implicitly closes the stream.2021*2022* @param columnIndex the first column is <code>1</code>, the second2023* is <code>2</code>, and so on; must be <code>1</code> or larger2024* and equal to or less than the number of columns in the rowset2025* @return a Java character stream that delivers the database column value2026* as a stream of two-byte unicode characters in a2027* <code>java.io.Reader</code> object. If the value is2028* SQL <code>NULL</code>, the result is <code>null</code>.2029* @throws SQLException if (1) the given column index is out of bounds,2030* (2) the cursor is not on one of this rowset's rows or its2031* insert row, or (3) the designated column does not store an2032* SQL <code>CHAR, VARCHAR, <b>LONGVARCHAR</b>, BINARY, VARBINARY</code> or2033* <code>LONGVARBINARY</code> value.2034* The bold SQL type designates the recommended return type.2035* @see #getCharacterStream(String)2036*/2037public java.io.Reader getCharacterStream(int columnIndex) throws SQLException{2038throw new UnsupportedOperationException();2039}20402041/**2042* Retrieves the value stored in the designated column2043* of the current row as a <code>java.io.Reader</code> object.2044*2045* <P><B>Note:</B> All the data in the returned stream must2046* be read prior to getting the value of any other column. The2047* next call to a <code>getXXX</code> method implicitly closes the stream.2048*2049* @param columnName a <code>String</code> object giving the SQL name of2050* a column in this <code>CachedRowSetImpl</code> object2051* @return a Java input stream that delivers the database column value2052* as a stream of two-byte Unicode characters. If the value is2053* SQL <code>NULL</code>, the result is <code>null</code>.2054* @throws SQLException if (1) the given column name is not the name of2055* a column in this rowset, (2) the cursor is not on one of2056* this rowset's rows or its insert row, or (3) the designated2057* column does not store an SQL <code>CHAR, VARCHAR, <b>LONGVARCHAR</b>,2058* BINARY, VARYBINARY</code> or <code>LONGVARBINARY</code> value.2059* The bold SQL type designates the recommended return type.2060*/2061public java.io.Reader getCharacterStream(String columnName) throws SQLException {2062throw new UnsupportedOperationException();2063}20642065/**2066* Retrieves the value of the designated column in the current row2067* of this <code>CachedRowSetImpl</code> object as a2068* <code>java.math.BigDecimal</code> object.2069*2070* @param columnIndex the first column is <code>1</code>, the second2071* is <code>2</code>, and so on; must be <code>1</code> or larger2072* and equal to or less than the number of columns in the rowset2073* @return a <code>java.math.BigDecimal</code> value with full precision;2074* if the value is SQL <code>NULL</code>, the result is <code>null</code>2075* @throws SQLException if (1) the given column index is out of bounds,2076* (2) the cursor is not on one of this rowset's rows or its2077* insert row, or (3) the designated column does not store an2078* SQL <code>TINYINT, SMALLINT, INTEGER, BIGINT, REAL,2079* FLOAT, DOUBLE, <b>DECIMAL</b>, <b>NUMERIC</b>, BIT, CHAR, VARCHAR</code>2080* or <code>LONGVARCHAR</code> value. The bold SQL type designates the2081* recommended return types that this method is used to retrieve.2082* @see #getBigDecimal(String)2083*/2084public BigDecimal getBigDecimal(int columnIndex) throws SQLException {2085throw new UnsupportedOperationException();2086}20872088/**2089* Retrieves the value of the designated column in the current row2090* of this <code>CachedRowSetImpl</code> object as a2091* <code>java.math.BigDecimal</code> object.2092*2093* @param columnName a <code>String</code> object that must match the2094* SQL name of a column in this rowset, ignoring case2095* @return a <code>java.math.BigDecimal</code> value with full precision;2096* if the value is SQL <code>NULL</code>, the result is <code>null</code>2097* @throws SQLException if (1) the given column name is not the name of2098* a column in this rowset, (2) the cursor is not on one of2099* this rowset's rows or its insert row, or (3) the designated2100* column does not store an SQL <code>TINYINT, SMALLINT, INTEGER2101* BIGINT, REAL, FLOAT, DOUBLE, <b>DECIMAL</b>, <b>NUMERIC</b>, BIT CHAR,2102* VARCHAR</code> or <code>LONGVARCHAR</code> value. The bold SQL type2103* designates the recommended return type that this method is used to2104* retrieve2105* @see #getBigDecimal(int)2106*/2107public BigDecimal getBigDecimal(String columnName) throws SQLException {2108throw new UnsupportedOperationException();2109}21102111//---------------------------------------------------------------------2112// Traversal/Positioning2113//---------------------------------------------------------------------21142115/**2116* Returns the number of rows in this <code>CachedRowSetImpl</code> object.2117*2118* @return number of rows in the rowset2119*/2120public int size() {2121throw new UnsupportedOperationException();2122}21232124/**2125* Indicates whether the cursor is before the first row in this2126* <code>CachedRowSetImpl</code> object.2127*2128* @return <code>true</code> if the cursor is before the first row;2129* <code>false</code> otherwise or if the rowset contains no rows2130* @throws SQLException if an error occurs2131*/2132public boolean isBeforeFirst() throws SQLException {2133throw new UnsupportedOperationException();2134}21352136/**2137* Indicates whether the cursor is after the last row in this2138* <code>CachedRowSetImpl</code> object.2139*2140* @return <code>true</code> if the cursor is after the last row;2141* <code>false</code> otherwise or if the rowset contains no rows2142* @throws SQLException if an error occurs2143*/2144public boolean isAfterLast() throws SQLException {2145throw new UnsupportedOperationException();2146}21472148/**2149* Indicates whether the cursor is on the first row in this2150* <code>CachedRowSetImpl</code> object.2151*2152* @return <code>true</code> if the cursor is on the first row;2153* <code>false</code> otherwise or if the rowset contains no rows2154* @throws SQLException if an error occurs2155*/2156public boolean isFirst() throws SQLException {2157throw new UnsupportedOperationException();2158}21592160/**2161* Indicates whether the cursor is on the last row in this2162* <code>CachedRowSetImpl</code> object.2163* <P>2164* Note: Calling the method <code>isLast</code> may be expensive2165* because the JDBC driver might need to fetch ahead one row in order2166* to determine whether the current row is the last row in this rowset.2167*2168* @return <code>true</code> if the cursor is on the last row;2169* <code>false</code> otherwise or if this rowset contains no rows2170* @throws SQLException if an error occurs2171*/2172public boolean isLast() throws SQLException {2173throw new UnsupportedOperationException();2174}21752176/**2177* Moves this <code>CachedRowSetImpl</code> object's cursor to the front of2178* the rowset, just before the first row. This method has no effect if2179* this rowset contains no rows.2180*2181* @throws SQLException if an error occurs or the type of this rowset2182* is <code>ResultSet.TYPE_FORWARD_ONLY</code>2183*/2184public void beforeFirst() throws SQLException {2185throw new UnsupportedOperationException();2186}21872188/**2189* Moves this <code>CachedRowSetImpl</code> object's cursor to the end of2190* the rowset, just after the last row. This method has no effect if2191* this rowset contains no rows.2192*2193* @throws SQLException if an error occurs2194*/2195public void afterLast() throws SQLException {2196throw new UnsupportedOperationException();2197}21982199/**2200* Moves this <code>CachedRowSetImpl</code> object's cursor to the first row2201* and returns <code>true</code> if the operation was successful. This2202* method also notifies registered listeners that the cursor has moved.2203*2204* @return <code>true</code> if the cursor is on a valid row;2205* <code>false</code> otherwise or if there are no rows in this2206* <code>CachedRowSetImpl</code> object2207* @throws SQLException if the type of this rowset2208* is <code>ResultSet.TYPE_FORWARD_ONLY</code>2209*/2210public boolean first() throws SQLException {2211throw new UnsupportedOperationException();2212}22132214/**2215* Moves this <code>CachedRowSetImpl</code> object's cursor to the first2216* row and returns <code>true</code> if the operation is successful.2217* <P>2218* This method is called internally by the methods <code>first</code>,2219* <code>isFirst</code>, and <code>absolute</code>.2220* It in turn calls the method <code>internalNext</code> in order to2221* handle the case where the first row is a deleted row that is not visible.2222* <p>2223* This is a implementation only method and is not required as a standard2224* implementation of the <code>CachedRowSet</code> interface.2225*2226* @return <code>true</code> if the cursor moved to the first row;2227* <code>false</code> otherwise2228* @throws SQLException if an error occurs2229*/2230protected boolean internalFirst() throws SQLException {2231throw new UnsupportedOperationException();2232}22332234/**2235* Moves this <code>CachedRowSetImpl</code> object's cursor to the last row2236* and returns <code>true</code> if the operation was successful. This2237* method also notifies registered listeners that the cursor has moved.2238*2239* @return <code>true</code> if the cursor is on a valid row;2240* <code>false</code> otherwise or if there are no rows in this2241* <code>CachedRowSetImpl</code> object2242* @throws SQLException if the type of this rowset2243* is <code>ResultSet.TYPE_FORWARD_ONLY</code>2244*/2245public boolean last() throws SQLException {2246throw new UnsupportedOperationException();2247}22482249/**2250* Moves this <code>CachedRowSetImpl</code> object's cursor to the last2251* row and returns <code>true</code> if the operation is successful.2252* <P>2253* This method is called internally by the method <code>last</code>2254* when rows have been deleted and the deletions are not visible.2255* The method <code>internalLast</code> handles the case where the2256* last row is a deleted row that is not visible by in turn calling2257* the method <code>internalPrevious</code>.2258* <p>2259* This is a implementation only method and is not required as a standard2260* implementation of the <code>CachedRowSet</code> interface.2261*2262* @return <code>true</code> if the cursor moved to the last row;2263* <code>false</code> otherwise2264* @throws SQLException if an error occurs2265*/2266protected boolean internalLast() throws SQLException {2267throw new UnsupportedOperationException();2268}22692270/**2271* Returns the number of the current row in this <code>CachedRowSetImpl</code>2272* object. The first row is number 1, the second number 2, and so on.2273*2274* @return the number of the current row; <code>0</code> if there is no2275* current row2276* @throws SQLException if an error occurs; or if the <code>CacheRowSetImpl</code>2277* is empty2278*/2279public int getRow() throws SQLException {2280return crsSync.getRow();2281}22822283/**2284* Moves this <code>CachedRowSetImpl</code> object's cursor to the row number2285* specified.2286*2287* <p>If the number is positive, the cursor moves to an absolute row with2288* respect to the beginning of the rowset. The first row is row 1, the second2289* is row 2, and so on. For example, the following command, in which2290* <code>crs</code> is a <code>CachedRowSetImpl</code> object, moves the cursor2291* to the fourth row, starting from the beginning of the rowset.2292* <PRE><code>2293*2294* crs.absolute(4);2295*2296* </code> </PRE>2297* <P>2298* If the number is negative, the cursor moves to an absolute row position2299* with respect to the end of the rowset. For example, calling2300* <code>absolute(-1)</code> positions the cursor on the last row,2301* <code>absolute(-2)</code> moves it on the next-to-last row, and so on.2302* If the <code>CachedRowSetImpl</code> object <code>crs</code> has five rows,2303* the following command moves the cursor to the fourth-to-last row, which2304* in the case of a rowset with five rows, is also the second row, counting2305* from the beginning.2306* <PRE><code>2307*2308* crs.absolute(-4);2309*2310* </code> </PRE>2311*2312* If the number specified is larger than the number of rows, the cursor2313* will move to the position after the last row. If the number specified2314* would move the cursor one or more rows before the first row, the cursor2315* moves to the position before the first row.2316* <P>2317* Note: Calling <code>absolute(1)</code> is the same as calling the2318* method <code>first()</code>. Calling <code>absolute(-1)</code> is the2319* same as calling <code>last()</code>.2320*2321* @param row a positive number to indicate the row, starting row numbering from2322* the first row, which is <code>1</code>; a negative number to indicate2323* the row, starting row numbering from the last row, which is2324* <code>-1</code>; it must not be <code>0</code>2325* @return <code>true</code> if the cursor is on the rowset; <code>false</code>2326* otherwise2327* @throws SQLException if the given cursor position is <code>0</code> or the2328* type of this rowset is <code>ResultSet.TYPE_FORWARD_ONLY</code>2329*/2330public boolean absolute( int row ) throws SQLException {2331throw new UnsupportedOperationException();2332}23332334/**2335* Moves the cursor the specified number of rows from the current2336* position, with a positive number moving it forward and a2337* negative number moving it backward.2338* <P>2339* If the number is positive, the cursor moves the specified number of2340* rows toward the end of the rowset, starting at the current row.2341* For example, the following command, in which2342* <code>crs</code> is a <code>CachedRowSetImpl</code> object with 100 rows,2343* moves the cursor forward four rows from the current row. If the2344* current row is 50, the cursor would move to row 54.2345* <PRE><code>2346*2347* crs.relative(4);2348*2349* </code> </PRE>2350* <P>2351* If the number is negative, the cursor moves back toward the beginning2352* the specified number of rows, starting at the current row.2353* For example, calling the method2354* <code>absolute(-1)</code> positions the cursor on the last row,2355* <code>absolute(-2)</code> moves it on the next-to-last row, and so on.2356* If the <code>CachedRowSetImpl</code> object <code>crs</code> has five rows,2357* the following command moves the cursor to the fourth-to-last row, which2358* in the case of a rowset with five rows, is also the second row2359* from the beginning.2360* <PRE><code>2361*2362* crs.absolute(-4);2363*2364* </code> </PRE>2365*2366* If the number specified is larger than the number of rows, the cursor2367* will move to the position after the last row. If the number specified2368* would move the cursor one or more rows before the first row, the cursor2369* moves to the position before the first row. In both cases, this method2370* throws an <code>SQLException</code>.2371* <P>2372* Note: Calling <code>absolute(1)</code> is the same as calling the2373* method <code>first()</code>. Calling <code>absolute(-1)</code> is the2374* same as calling <code>last()</code>. Calling <code>relative(0)</code>2375* is valid, but it does not change the cursor position.2376*2377* @param rows an <code>int</code> indicating the number of rows to move2378* the cursor, starting at the current row; a positive number2379* moves the cursor forward; a negative number moves the cursor2380* backward; must not move the cursor past the valid2381* rows2382* @return <code>true</code> if the cursor is on a row in this2383* <code>CachedRowSetImpl</code> object; <code>false</code>2384* otherwise2385* @throws SQLException if there are no rows in this rowset, the cursor is2386* positioned either before the first row or after the last row, or2387* the rowset is type <code>ResultSet.TYPE_FORWARD_ONLY</code>2388*/2389public boolean relative(int rows) throws SQLException {2390throw new UnsupportedOperationException();2391}23922393/**2394* Moves this <code>CachedRowSetImpl</code> object's cursor to the2395* previous row and returns <code>true</code> if the cursor is on2396* a valid row or <code>false</code> if it is not.2397* This method also notifies all listeners registered with this2398* <code>CachedRowSetImpl</code> object that its cursor has moved.2399* <P>2400* Note: calling the method <code>previous()</code> is not the same2401* as calling the method <code>relative(-1)</code>. This is true2402* because it is possible to call <code>previous()</code> from the insert2403* row, from after the last row, or from the current row, whereas2404* <code>relative</code> may only be called from the current row.2405* <P>2406* The method <code>previous</code> may used in a <code>while</code>2407* loop to iterate through a rowset starting after the last row2408* and moving toward the beginning. The loop ends when <code>previous</code>2409* returns <code>false</code>, meaning that there are no more rows.2410* For example, the following code fragment retrieves all the data in2411* the <code>CachedRowSetImpl</code> object <code>crs</code>, which has2412* three columns. Note that the cursor must initially be positioned2413* after the last row so that the first call to the method2414* <code>previous</code> places the cursor on the last line.2415* <PRE> <code>2416*2417* crs.afterLast();2418* while (previous()) {2419* String name = crs.getString(1);2420* int age = crs.getInt(2);2421* short ssn = crs.getShort(3);2422* System.out.println(name + " " + age + " " + ssn);2423* }2424*2425* </code> </PRE>2426* This method throws an <code>SQLException</code> if the cursor is not2427* on a row in the rowset, before the first row, or after the last row.2428*2429* @return <code>true</code> if the cursor is on a valid row;2430* <code>false</code> if it is before the first row or after the2431* last row2432* @throws SQLException if the cursor is not on a valid position or the2433* type of this rowset is <code>ResultSet.TYPE_FORWARD_ONLY</code>2434*/2435public boolean previous() throws SQLException {2436throw new UnsupportedOperationException();2437}24382439/**2440* Moves the cursor to the previous row in this <code>CachedRowSetImpl</code>2441* object, skipping past deleted rows that are not visible; returns2442* <code>true</code> if the cursor is on a row in this rowset and2443* <code>false</code> when the cursor goes before the first row.2444* <P>2445* This method is called internally by the method <code>previous</code>.2446* <P>2447* This is a implementation only method and is not required as a standard2448* implementation of the <code>CachedRowSet</code> interface.2449*2450* @return <code>true</code> if the cursor is on a row in this rowset;2451* <code>false</code> when the cursor reaches the position before2452* the first row2453* @throws SQLException if an error occurs2454*/2455protected boolean internalPrevious() throws SQLException {2456throw new UnsupportedOperationException();2457}245824592460//---------------------------------------------------------------------2461// Updates2462//---------------------------------------------------------------------24632464/**2465* Indicates whether the current row of this <code>CachedRowSetImpl</code>2466* object has been updated. The value returned2467* depends on whether this rowset can detect updates: <code>false</code>2468* will always be returned if it does not detect updates.2469*2470* @return <code>true</code> if the row has been visibly updated2471* by the owner or another and updates are detected;2472* <code>false</code> otherwise2473* @throws SQLException if the cursor is on the insert row or not2474* not on a valid row2475*2476* @see DatabaseMetaData#updatesAreDetected2477*/2478public boolean rowUpdated() throws SQLException {2479throw new UnsupportedOperationException();2480}24812482/**2483* Indicates whether the designated column of the current row of2484* this <code>CachedRowSetImpl</code> object has been updated. The2485* value returned depends on whether this rowset can detcted updates:2486* <code>false</code> will always be returned if it does not detect updates.2487*2488* @param idx the index identifier of the column that may be have been updated.2489* @return <code>true</code> is the designated column has been updated2490* and the rowset detects updates; <code>false</code> if the rowset has not2491* been updated or the rowset does not detect updates2492* @throws SQLException if the cursor is on the insert row or not2493* on a valid row2494* @see DatabaseMetaData#updatesAreDetected2495*/2496public boolean columnUpdated(int idx) throws SQLException {2497throw new UnsupportedOperationException();2498}24992500/**2501* Indicates whether the designated column of the current row of2502* this <code>CachedRowSetImpl</code> object has been updated. The2503* value returned depends on whether this rowset can detcted updates:2504* <code>false</code> will always be returned if it does not detect updates.2505*2506* @param columnName the <code>String</code> column name column that may be have2507* been updated.2508* @return <code>true</code> is the designated column has been updated2509* and the rowset detects updates; <code>false</code> if the rowset has not2510* been updated or the rowset does not detect updates2511* @throws SQLException if the cursor is on the insert row or not2512* on a valid row2513* @see DatabaseMetaData#updatesAreDetected2514*/2515public boolean columnUpdated(String columnName) throws SQLException {2516throw new UnsupportedOperationException();2517}25182519/**2520* Indicates whether the current row has been inserted. The value returned2521* depends on whether or not the rowset can detect visible inserts.2522*2523* @return <code>true</code> if a row has been inserted and inserts are detected;2524* <code>false</code> otherwise2525* @throws SQLException if the cursor is on the insert row or not2526* not on a valid row2527*2528* @see DatabaseMetaData#insertsAreDetected2529*/2530public boolean rowInserted() throws SQLException {2531throw new UnsupportedOperationException();2532}25332534/**2535* Indicates whether the current row has been deleted. A deleted row2536* may leave a visible "hole" in a rowset. This method can be used to2537* detect such holes if the rowset can detect deletions. This method2538* will always return <code>false</code> if this rowset cannot detect2539* deletions.2540*2541* @return <code>true</code> if (1)the current row is blank, indicating that2542* the row has been deleted, and (2)deletions are detected;2543* <code>false</code> otherwise2544* @throws SQLException if the cursor is on a valid row in this rowset2545* @see DatabaseMetaData#deletesAreDetected2546*/2547public boolean rowDeleted() throws SQLException {2548throw new UnsupportedOperationException();2549}25502551/**2552* Sets the designated nullable column in the current row or the2553* insert row of this <code>CachedRowSetImpl</code> object with2554* <code>null</code> value.2555* <P>2556* This method updates a column value in the current row or the insert2557* row of this rowset; however, another method must be called to complete2558* the update process. If the cursor is on a row in the rowset, the2559* method {@link #updateRow} must be called to mark the row as updated2560* and to notify listeners that the row has changed.2561* If the cursor is on the insert row, the method {@link #insertRow}2562* must be called to insert the new row into this rowset and to notify2563* listeners that a row has changed.2564* <P>2565* In order to propagate updates in this rowset to the underlying2566* data source, an application must call the method {@link #acceptChanges}2567* after it calls either <code>updateRow</code> or <code>insertRow</code>.2568*2569* @param columnIndex the first column is <code>1</code>, the second2570* is <code>2</code>, and so on; must be <code>1</code> or larger2571* and equal to or less than the number of columns in this rowset2572* @throws SQLException if (1) the given column index is out of bounds,2573* (2) the cursor is not on one of this rowset's rows or its2574* insert row, or (3) this rowset is2575* <code>ResultSet.CONCUR_READ_ONLY</code>2576*/2577public void updateNull(int columnIndex) throws SQLException {2578throw new UnsupportedOperationException();2579}25802581/**2582* Sets the designated column in either the current row or the insert2583* row of this <code>CachedRowSetImpl</code> object with the given2584* <code>boolean</code> value.2585* <P>2586* This method updates a column value in the current row or the insert2587* row of this rowset, but it does not update the database.2588* If the cursor is on a row in the rowset, the2589* method {@link #updateRow} must be called to update the database.2590* If the cursor is on the insert row, the method {@link #insertRow}2591* must be called, which will insert the new row into both this rowset2592* and the database. Both of these methods must be called before the2593* cursor moves to another row.2594*2595* @param columnIndex the first column is <code>1</code>, the second2596* is <code>2</code>, and so on; must be <code>1</code> or larger2597* and equal to or less than the number of columns in this rowset2598* @param x the new column value2599* @throws SQLException if (1) the given column index is out of bounds,2600* (2) the cursor is not on one of this rowset's rows or its2601* insert row, or (3) this rowset is2602* <code>ResultSet.CONCUR_READ_ONLY</code>2603*/2604public void updateBoolean(int columnIndex, boolean x) throws SQLException {2605throw new UnsupportedOperationException();2606}26072608/**2609* Sets the designated column in either the current row or the insert2610* row of this <code>CachedRowSetImpl</code> object with the given2611* <code>byte</code> value.2612* <P>2613* This method updates a column value in the current row or the insert2614* row of this rowset, but it does not update the database.2615* If the cursor is on a row in the rowset, the2616* method {@link #updateRow} must be called to update the database.2617* If the cursor is on the insert row, the method {@link #insertRow}2618* must be called, which will insert the new row into both this rowset2619* and the database. Both of these methods must be called before the2620* cursor moves to another row.2621*2622* @param columnIndex the first column is <code>1</code>, the second2623* is <code>2</code>, and so on; must be <code>1</code> or larger2624* and equal to or less than the number of columns in this rowset2625* @param x the new column value2626* @throws SQLException if (1) the given column index is out of bounds,2627* (2) the cursor is not on one of this rowset's rows or its2628* insert row, or (3) this rowset is2629* <code>ResultSet.CONCUR_READ_ONLY</code>2630*/2631public void updateByte(int columnIndex, byte x) throws SQLException {2632throw new UnsupportedOperationException();2633}26342635/**2636* Sets the designated column in either the current row or the insert2637* row of this <code>CachedRowSetImpl</code> object with the given2638* <code>short</code> value.2639* <P>2640* This method updates a column value in the current row or the insert2641* row of this rowset, but it does not update the database.2642* If the cursor is on a row in the rowset, the2643* method {@link #updateRow} must be called to update the database.2644* If the cursor is on the insert row, the method {@link #insertRow}2645* must be called, which will insert the new row into both this rowset2646* and the database. Both of these methods must be called before the2647* cursor moves to another row.2648*2649* @param columnIndex the first column is <code>1</code>, the second2650* is <code>2</code>, and so on; must be <code>1</code> or larger2651* and equal to or less than the number of columns in this rowset2652* @param x the new column value2653* @throws SQLException if (1) the given column index is out of bounds,2654* (2) the cursor is not on one of this rowset's rows or its2655* insert row, or (3) this rowset is2656* <code>ResultSet.CONCUR_READ_ONLY</code>2657*/2658public void updateShort(int columnIndex, short x) throws SQLException {2659throw new UnsupportedOperationException();2660}26612662/**2663* Sets the designated column in either the current row or the insert2664* row of this <code>CachedRowSetImpl</code> object with the given2665* <code>int</code> value.2666* <P>2667* This method updates a column value in the current row or the insert2668* row of this rowset, but it does not update the database.2669* If the cursor is on a row in the rowset, the2670* method {@link #updateRow} must be called to update the database.2671* If the cursor is on the insert row, the method {@link #insertRow}2672* must be called, which will insert the new row into both this rowset2673* and the database. Both of these methods must be called before the2674* cursor moves to another row.2675*2676* @param columnIndex the first column is <code>1</code>, the second2677* is <code>2</code>, and so on; must be <code>1</code> or larger2678* and equal to or less than the number of columns in this rowset2679* @param x the new column value2680* @throws SQLException if (1) the given column index is out of bounds,2681* (2) the cursor is not on one of this rowset's rows or its2682* insert row, or (3) this rowset is2683* <code>ResultSet.CONCUR_READ_ONLY</code>2684*/2685public void updateInt(int columnIndex, int x) throws SQLException {2686throw new UnsupportedOperationException();2687}26882689/**2690* Sets the designated column in either the current row or the insert2691* row of this <code>CachedRowSetImpl</code> object with the given2692* <code>long</code> value.2693* <P>2694* This method updates a column value in the current row or the insert2695* row of this rowset, but it does not update the database.2696* If the cursor is on a row in the rowset, the2697* method {@link #updateRow} must be called to update the database.2698* If the cursor is on the insert row, the method {@link #insertRow}2699* must be called, which will insert the new row into both this rowset2700* and the database. Both of these methods must be called before the2701* cursor moves to another row.2702*2703* @param columnIndex the first column is <code>1</code>, the second2704* is <code>2</code>, and so on; must be <code>1</code> or larger2705* and equal to or less than the number of columns in this rowset2706* @param x the new column value2707* @throws SQLException if (1) the given column index is out of bounds,2708* (2) the cursor is not on one of this rowset's rows or its2709* insert row, or (3) this rowset is2710* <code>ResultSet.CONCUR_READ_ONLY</code>2711*/2712public void updateLong(int columnIndex, long x) throws SQLException {2713throw new UnsupportedOperationException();27142715}27162717/**2718* Sets the designated column in either the current row or the insert2719* row of this <code>CachedRowSetImpl</code> object with the given2720* <code>float</code> value.2721* <P>2722* This method updates a column value in the current row or the insert2723* row of this rowset, but it does not update the database.2724* If the cursor is on a row in the rowset, the2725* method {@link #updateRow} must be called to update the database.2726* If the cursor is on the insert row, the method {@link #insertRow}2727* must be called, which will insert the new row into both this rowset2728* and the database. Both of these methods must be called before the2729* cursor moves to another row.2730*2731* @param columnIndex the first column is <code>1</code>, the second2732* is <code>2</code>, and so on; must be <code>1</code> or larger2733* and equal to or less than the number of columns in this rowset2734* @param x the new column value2735* @throws SQLException if (1) the given column index is out of bounds,2736* (2) the cursor is not on one of this rowset's rows or its2737* insert row, or (3) this rowset is2738* <code>ResultSet.CONCUR_READ_ONLY</code>2739*/2740public void updateFloat(int columnIndex, float x) throws SQLException {2741throw new UnsupportedOperationException();2742}27432744/**2745* Sets the designated column in either the current row or the insert2746* row of this <code>CachedRowSetImpl</code> object with the given2747* <code>double</code> value.2748*2749* This method updates a column value in either the current row or2750* the insert row of this rowset, but it does not update the2751* database. If the cursor is on a row in the rowset, the2752* method {@link #updateRow} must be called to update the database.2753* If the cursor is on the insert row, the method {@link #insertRow}2754* must be called, which will insert the new row into both this rowset2755* and the database. Both of these methods must be called before the2756* cursor moves to another row.2757*2758* @param columnIndex the first column is <code>1</code>, the second2759* is <code>2</code>, and so on; must be <code>1</code> or larger2760* and equal to or less than the number of columns in this rowset2761* @param x the new column value2762* @throws SQLException if (1) the given column index is out of bounds,2763* (2) the cursor is not on one of this rowset's rows or its2764* insert row, or (3) this rowset is2765* <code>ResultSet.CONCUR_READ_ONLY</code>2766*/2767public void updateDouble(int columnIndex, double x) throws SQLException {2768throw new UnsupportedOperationException();2769}27702771/**2772* Sets the designated column in either the current row or the insert2773* row of this <code>CachedRowSetImpl</code> object with the given2774* <code>java.math.BigDecimal</code> object.2775* <P>2776* This method updates a column value in the current row or the insert2777* row of this rowset, but it does not update the database.2778* If the cursor is on a row in the rowset, the2779* method {@link #updateRow} must be called to update the database.2780* If the cursor is on the insert row, the method {@link #insertRow}2781* must be called, which will insert the new row into both this rowset2782* and the database. Both of these methods must be called before the2783* cursor moves to another row.2784*2785* @param columnIndex the first column is <code>1</code>, the second2786* is <code>2</code>, and so on; must be <code>1</code> or larger2787* and equal to or less than the number of columns in this rowset2788* @param x the new column value2789* @throws SQLException if (1) the given column index is out of bounds,2790* (2) the cursor is not on one of this rowset's rows or its2791* insert row, or (3) this rowset is2792* <code>ResultSet.CONCUR_READ_ONLY</code>2793*/2794public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException {2795throw new UnsupportedOperationException();2796}27972798/**2799* Sets the designated column in either the current row or the insert2800* row of this <code>CachedRowSetImpl</code> object with the given2801* <code>String</code> object.2802* <P>2803* This method updates a column value in either the current row or2804* the insert row of this rowset, but it does not update the2805* database. If the cursor is on a row in the rowset, the2806* method {@link #updateRow} must be called to mark the row as updated.2807* If the cursor is on the insert row, the method {@link #insertRow}2808* must be called to insert the new row into this rowset and mark it2809* as inserted. Both of these methods must be called before the2810* cursor moves to another row.2811* <P>2812* The method <code>acceptChanges</code> must be called if the2813* updated values are to be written back to the underlying database.2814*2815* @param columnIndex the first column is <code>1</code>, the second2816* is <code>2</code>, and so on; must be <code>1</code> or larger2817* and equal to or less than the number of columns in this rowset2818* @param x the new column value2819* @throws SQLException if (1) the given column index is out of bounds,2820* (2) the cursor is not on one of this rowset's rows or its2821* insert row, or (3) this rowset is2822* <code>ResultSet.CONCUR_READ_ONLY</code>2823*/2824public void updateString(int columnIndex, String x) throws SQLException {2825throw new UnsupportedOperationException();2826}28272828/**2829* Sets the designated column in either the current row or the insert2830* row of this <code>CachedRowSetImpl</code> object with the given2831* <code>byte</code> array.2832*2833* This method updates a column value in either the current row or2834* the insert row of this rowset, but it does not update the2835* database. If the cursor is on a row in the rowset, the2836* method {@link #updateRow} must be called to update the database.2837* If the cursor is on the insert row, the method {@link #insertRow}2838* must be called, which will insert the new row into both this rowset2839* and the database. Both of these methods must be called before the2840* cursor moves to another row.2841*2842* @param columnIndex the first column is <code>1</code>, the second2843* is <code>2</code>, and so on; must be <code>1</code> or larger2844* and equal to or less than the number of columns in this rowset2845* @param x the new column value2846* @throws SQLException if (1) the given column index is out of bounds,2847* (2) the cursor is not on one of this rowset's rows or its2848* insert row, or (3) this rowset is2849* <code>ResultSet.CONCUR_READ_ONLY</code>2850*/2851public void updateBytes(int columnIndex, byte x[]) throws SQLException {2852throw new UnsupportedOperationException();2853}28542855/**2856* Sets the designated column in either the current row or the insert2857* row of this <code>CachedRowSetImpl</code> object with the given2858* <code>Date</code> object.2859*2860* This method updates a column value in either the current row or2861* the insert row of this rowset, but it does not update the2862* database. If the cursor is on a row in the rowset, the2863* method {@link #updateRow} must be called to update the database.2864* If the cursor is on the insert row, the method {@link #insertRow}2865* must be called, which will insert the new row into both this rowset2866* and the database. Both of these methods must be called before the2867* cursor moves to another row.2868*2869* @param columnIndex the first column is <code>1</code>, the second2870* is <code>2</code>, and so on; must be <code>1</code> or larger2871* and equal to or less than the number of columns in this rowset2872* @param x the new column value2873* @throws SQLException if (1) the given column index is out of bounds,2874* (2) the cursor is not on one of this rowset's rows or its2875* insert row, (3) the type of the designated column is not2876* an SQL <code>DATE</code> or <code>TIMESTAMP</code>, or2877* (4) this rowset is <code>ResultSet.CONCUR_READ_ONLY</code>2878*/2879public void updateDate(int columnIndex, java.sql.Date x) throws SQLException {2880throw new UnsupportedOperationException();2881}28822883/**2884* Sets the designated column in either the current row or the insert2885* row of this <code>CachedRowSetImpl</code> object with the given2886* <code>Time</code> object.2887*2888* This method updates a column value in either the current row or2889* the insert row of this rowset, but it does not update the2890* database. If the cursor is on a row in the rowset, the2891* method {@link #updateRow} must be called to update the database.2892* If the cursor is on the insert row, the method {@link #insertRow}2893* must be called, which will insert the new row into both this rowset2894* and the database. Both of these methods must be called before the2895* cursor moves to another row.2896*2897* @param columnIndex the first column is <code>1</code>, the second2898* is <code>2</code>, and so on; must be <code>1</code> or larger2899* and equal to or less than the number of columns in this rowset2900* @param x the new column value2901* @throws SQLException if (1) the given column index is out of bounds,2902* (2) the cursor is not on one of this rowset's rows or its2903* insert row, (3) the type of the designated column is not2904* an SQL <code>TIME</code> or <code>TIMESTAMP</code>, or2905* (4) this rowset is <code>ResultSet.CONCUR_READ_ONLY</code>2906*/2907public void updateTime(int columnIndex, java.sql.Time x) throws SQLException {2908throw new UnsupportedOperationException();2909}29102911/**2912* Sets the designated column in either the current row or the insert2913* row of this <code>CachedRowSetImpl</code> object with the given2914* <code>Timestamp</code> object.2915*2916* This method updates a column value in either the current row or2917* the insert row of this rowset, but it does not update the2918* database. If the cursor is on a row in the rowset, the2919* method {@link #updateRow} must be called to update the database.2920* If the cursor is on the insert row, the method {@link #insertRow}2921* must be called, which will insert the new row into both this rowset2922* and the database. Both of these methods must be called before the2923* cursor moves to another row.2924*2925* @param columnIndex the first column is <code>1</code>, the second2926* is <code>2</code>, and so on; must be <code>1</code> or larger2927* and equal to or less than the number of columns in this rowset2928* @param x the new column value2929* @throws SQLException if (1) the given column index is out of bounds,2930* (2) the cursor is not on one of this rowset's rows or its2931* insert row, (3) the type of the designated column is not2932* an SQL <code>DATE</code>, <code>TIME</code>, or2933* <code>TIMESTAMP</code>, or (4) this rowset is2934* <code>ResultSet.CONCUR_READ_ONLY</code>2935*/2936public void updateTimestamp(int columnIndex, java.sql.Timestamp x) throws SQLException {2937throw new UnsupportedOperationException();2938}29392940/**2941* Sets the designated column in either the current row or the insert2942* row of this <code>CachedRowSetImpl</code> object with the given2943* ASCII stream value.2944* <P>2945* This method updates a column value in either the current row or2946* the insert row of this rowset, but it does not update the2947* database. If the cursor is on a row in the rowset, the2948* method {@link #updateRow} must be called to update the database.2949* If the cursor is on the insert row, the method {@link #insertRow}2950* must be called, which will insert the new row into both this rowset2951* and the database. Both of these methods must be called before the2952* cursor moves to another row.2953*2954* @param columnIndex the first column is <code>1</code>, the second2955* is <code>2</code>, and so on; must be <code>1</code> or larger2956* and equal to or less than the number of columns in this rowset2957* @param x the new column value2958* @param length the number of one-byte ASCII characters in the stream2959* @throws SQLException if this method is invoked2960*/2961public void updateAsciiStream(int columnIndex, java.io.InputStream x, int length) throws SQLException {2962throw new UnsupportedOperationException();2963}29642965/**2966* Sets the designated column in either the current row or the insert2967* row of this <code>CachedRowSetImpl</code> object with the given2968* <code>java.io.InputStream</code> object.2969* <P>2970* This method updates a column value in either the current row or2971* the insert row of this rowset, but it does not update the2972* database. If the cursor is on a row in the rowset, the2973* method {@link #updateRow} must be called to update the database.2974* If the cursor is on the insert row, the method {@link #insertRow}2975* must be called, which will insert the new row into both this rowset2976* and the database. Both of these methods must be called before the2977* cursor moves to another row.2978*2979* @param columnIndex the first column is <code>1</code>, the second2980* is <code>2</code>, and so on; must be <code>1</code> or larger2981* and equal to or less than the number of columns in this rowset2982* @param x the new column value; must be a <code>java.io.InputStream</code>2983* containing <code>BINARY</code>, <code>VARBINARY</code>, or2984* <code>LONGVARBINARY</code> data2985* @param length the length of the stream in bytes2986* @throws SQLException if (1) the given column index is out of bounds,2987* (2) the cursor is not on one of this rowset's rows or its2988* insert row, (3) the data in the stream is not binary, or2989* (4) this rowset is <code>ResultSet.CONCUR_READ_ONLY</code>2990*/2991public void updateBinaryStream(int columnIndex, java.io.InputStream x,int length) throws SQLException {2992throw new UnsupportedOperationException();2993}29942995/**2996* Sets the designated column in either the current row or the insert2997* row of this <code>CachedRowSetImpl</code> object with the given2998* <code>java.io.Reader</code> object.2999* <P>3000* This method updates a column value in either the current row or3001* the insert row of this rowset, but it does not update the3002* database. If the cursor is on a row in the rowset, the3003* method {@link #updateRow} must be called to update the database.3004* If the cursor is on the insert row, the method {@link #insertRow}3005* must be called, which will insert the new row into both this rowset3006* and the database. Both of these methods must be called before the3007* cursor moves to another row.3008*3009* @param columnIndex the first column is <code>1</code>, the second3010* is <code>2</code>, and so on; must be <code>1</code> or larger3011* and equal to or less than the number of columns in this rowset3012* @param x the new column value; must be a <code>java.io.Reader</code>3013* containing <code>BINARY</code>, <code>VARBINARY</code>,3014* <code>LONGVARBINARY</code>, <code>CHAR</code>, <code>VARCHAR</code>,3015* or <code>LONGVARCHAR</code> data3016* @param length the length of the stream in characters3017* @throws SQLException if (1) the given column index is out of bounds,3018* (2) the cursor is not on one of this rowset's rows or its3019* insert row, (3) the data in the stream is not a binary or3020* character type, or (4) this rowset is3021* <code>ResultSet.CONCUR_READ_ONLY</code>3022*/3023public void updateCharacterStream(int columnIndex, java.io.Reader x, int length) throws SQLException {3024throw new UnsupportedOperationException();3025}30263027/**3028* Sets the designated column in either the current row or the insert3029* row of this <code>CachedRowSetImpl</code> object with the given3030* <code>Object</code> value. The <code>scale</code> parameter indicates3031* the number of digits to the right of the decimal point and is ignored3032* if the new column value is not a type that will be mapped to an SQL3033* <code>DECIMAL</code> or <code>NUMERIC</code> value.3034* <P>3035* This method updates a column value in either the current row or3036* the insert row of this rowset, but it does not update the3037* database. If the cursor is on a row in the rowset, the3038* method {@link #updateRow} must be called to update the database.3039* If the cursor is on the insert row, the method {@link #insertRow}3040* must be called, which will insert the new row into both this rowset3041* and the database. Both of these methods must be called before the3042* cursor moves to another row.3043*3044* @param columnIndex the first column is <code>1</code>, the second3045* is <code>2</code>, and so on; must be <code>1</code> or larger3046* and equal to or less than the number of columns in this rowset3047* @param x the new column value3048* @param scale the number of digits to the right of the decimal point (for3049* <code>DECIMAL</code> and <code>NUMERIC</code> types only)3050* @throws SQLException if (1) the given column index is out of bounds,3051* (2) the cursor is not on one of this rowset's rows or its3052* insert row, or (3) this rowset is3053* <code>ResultSet.CONCUR_READ_ONLY</code>3054*/3055public void updateObject(int columnIndex, Object x, int scale) throws SQLException {3056throw new UnsupportedOperationException();3057}30583059/**3060* Sets the designated column in either the current row or the insert3061* row of this <code>CachedRowSetImpl</code> object with the given3062* <code>Object</code> value.3063* <P>3064* This method updates a column value in either the current row or3065* the insert row of this rowset, but it does not update the3066* database. If the cursor is on a row in the rowset, the3067* method {@link #updateRow} must be called to update the database.3068* If the cursor is on the insert row, the method {@link #insertRow}3069* must be called, which will insert the new row into both this rowset3070* and the database. Both of these methods must be called before the3071* cursor moves to another row.3072*3073* @param columnIndex the first column is <code>1</code>, the second3074* is <code>2</code>, and so on; must be <code>1</code> or larger3075* and equal to or less than the number of columns in this rowset3076* @param x the new column value3077* @throws SQLException if (1) the given column index is out of bounds,3078* (2) the cursor is not on one of this rowset's rows or its3079* insert row, or (3) this rowset is3080* <code>ResultSet.CONCUR_READ_ONLY</code>3081*/3082public void updateObject(int columnIndex, Object x) throws SQLException {3083throw new UnsupportedOperationException();3084}308530863087/**3088* Sets the designated nullable column in the current row or the3089* insert row of this <code>CachedRowSetImpl</code> object with3090* <code>null</code> value.3091* <P>3092* This method updates a column value in the current row or the insert3093* row of this rowset, but it does not update the database.3094* If the cursor is on a row in the rowset, the3095* method {@link #updateRow} must be called to update the database.3096* If the cursor is on the insert row, the method {@link #insertRow}3097* must be called, which will insert the new row into both this rowset3098* and the database.3099*3100* @param columnName a <code>String</code> object that must match the3101* SQL name of a column in this rowset, ignoring case3102* @throws SQLException if (1) the given column name does not match the3103* name of a column in this rowset, (2) the cursor is not on3104* one of this rowset's rows or its insert row, or (3) this3105* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3106*/3107public void updateNull(String columnName) throws SQLException {3108throw new UnsupportedOperationException();3109}31103111/**3112* Sets the designated column in either the current row or the insert3113* row of this <code>CachedRowSetImpl</code> object with the given3114* <code>boolean</code> value.3115* <P>3116* This method updates a column value in the current row or the insert3117* row of this rowset, but it does not update the database.3118* If the cursor is on a row in the rowset, the3119* method {@link #updateRow} must be called to update the database.3120* If the cursor is on the insert row, the method {@link #insertRow}3121* must be called, which will insert the new row into both this rowset3122* and the database. Both of these methods must be called before the3123* cursor moves to another row.3124*3125* @param columnName a <code>String</code> object that must match the3126* SQL name of a column in this rowset, ignoring case3127* @param x the new column value3128* @throws SQLException if (1) the given column name does not match the3129* name of a column in this rowset, (2) the cursor is not on3130* one of this rowset's rows or its insert row, or (3) this3131* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3132*/3133public void updateBoolean(String columnName, boolean x) throws SQLException {3134throw new UnsupportedOperationException();3135}31363137/**3138* Sets the designated column in either the current row or the insert3139* row of this <code>CachedRowSetImpl</code> object with the given3140* <code>byte</code> value.3141* <P>3142* This method updates a column value in the current row or the insert3143* row of this rowset, but it does not update the database.3144* If the cursor is on a row in the rowset, the3145* method {@link #updateRow} must be called to update the database.3146* If the cursor is on the insert row, the method {@link #insertRow}3147* must be called, which will insert the new row into both this rowset3148* and the database. Both of these methods must be called before the3149* cursor moves to another row.3150*3151* @param columnName a <code>String</code> object that must match the3152* SQL name of a column in this rowset, ignoring case3153* @param x the new column value3154* @throws SQLException if (1) the given column name does not match the3155* name of a column in this rowset, (2) the cursor is not on3156* one of this rowset's rows or its insert row, or (3) this3157* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3158*/3159public void updateByte(String columnName, byte x) throws SQLException {3160throw new UnsupportedOperationException();3161}31623163/**3164* Sets the designated column in either the current row or the insert3165* row of this <code>CachedRowSetImpl</code> object with the given3166* <code>short</code> value.3167* <P>3168* This method updates a column value in the current row or the insert3169* row of this rowset, but it does not update the database.3170* If the cursor is on a row in the rowset, the3171* method {@link #updateRow} must be called to update the database.3172* If the cursor is on the insert row, the method {@link #insertRow}3173* must be called, which will insert the new row into both this rowset3174* and the database. Both of these methods must be called before the3175* cursor moves to another row.3176*3177* @param columnName a <code>String</code> object that must match the3178* SQL name of a column in this rowset, ignoring case3179* @param x the new column value3180* @throws SQLException if (1) the given column name does not match the3181* name of a column in this rowset, (2) the cursor is not on3182* one of this rowset's rows or its insert row, or (3) this3183* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3184*/3185public void updateShort(String columnName, short x) throws SQLException {3186throw new UnsupportedOperationException();3187}31883189/**3190* Sets the designated column in either the current row or the insert3191* row of this <code>CachedRowSetImpl</code> object with the given3192* <code>int</code> value.3193* <P>3194* This method updates a column value in the current row or the insert3195* row of this rowset, but it does not update the database.3196* If the cursor is on a row in the rowset, the3197* method {@link #updateRow} must be called to update the database.3198* If the cursor is on the insert row, the method {@link #insertRow}3199* must be called, which will insert the new row into both this rowset3200* and the database. Both of these methods must be called before the3201* cursor moves to another row.3202*3203* @param columnName a <code>String</code> object that must match the3204* SQL name of a column in this rowset, ignoring case3205* @param x the new column value3206* @throws SQLException if (1) the given column name does not match the3207* name of a column in this rowset, (2) the cursor is not on3208* one of this rowset's rows or its insert row, or (3) this3209* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3210*/3211public void updateInt(String columnName, int x) throws SQLException {3212throw new UnsupportedOperationException();3213}32143215/**3216* Sets the designated column in either the current row or the insert3217* row of this <code>CachedRowSetImpl</code> object with the given3218* <code>long</code> value.3219* <P>3220* This method updates a column value in the current row or the insert3221* row of this rowset, but it does not update the database.3222* If the cursor is on a row in the rowset, the3223* method {@link #updateRow} must be called to update the database.3224* If the cursor is on the insert row, the method {@link #insertRow}3225* must be called, which will insert the new row into both this rowset3226* and the database. Both of these methods must be called before the3227* cursor moves to another row.3228*3229* @param columnName a <code>String</code> object that must match the3230* SQL name of a column in this rowset, ignoring case3231* @param x the new column value3232* @throws SQLException if (1) the given column name does not match the3233* name of a column in this rowset, (2) the cursor is not on3234* one of this rowset's rows or its insert row, or (3) this3235* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3236*/3237public void updateLong(String columnName, long x) throws SQLException {3238throw new UnsupportedOperationException();3239}32403241/**3242* Sets the designated column in either the current row or the insert3243* row of this <code>CachedRowSetImpl</code> object with the given3244* <code>float</code> value.3245* <P>3246* This method updates a column value in the current row or the insert3247* row of this rowset, but it does not update the database.3248* If the cursor is on a row in the rowset, the3249* method {@link #updateRow} must be called to update the database.3250* If the cursor is on the insert row, the method {@link #insertRow}3251* must be called, which will insert the new row into both this rowset3252* and the database. Both of these methods must be called before the3253* cursor moves to another row.3254*3255* @param columnName a <code>String</code> object that must match the3256* SQL name of a column in this rowset, ignoring case3257* @param x the new column value3258* @throws SQLException if (1) the given column name does not match the3259* name of a column in this rowset, (2) the cursor is not on3260* one of this rowset's rows or its insert row, or (3) this3261* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3262*/3263public void updateFloat(String columnName, float x) throws SQLException {3264throw new UnsupportedOperationException();3265}32663267/**3268* Sets the designated column in either the current row or the insert3269* row of this <code>CachedRowSetImpl</code> object with the given3270* <code>double</code> value.3271*3272* This method updates a column value in either the current row or3273* the insert row of this rowset, but it does not update the3274* database. If the cursor is on a row in the rowset, the3275* method {@link #updateRow} must be called to update the database.3276* If the cursor is on the insert row, the method {@link #insertRow}3277* must be called, which will insert the new row into both this rowset3278* and the database. Both of these methods must be called before the3279* cursor moves to another row.3280*3281* @param columnName a <code>String</code> object that must match the3282* SQL name of a column in this rowset, ignoring case3283* @param x the new column value3284* @throws SQLException if (1) the given column name does not match the3285* name of a column in this rowset, (2) the cursor is not on3286* one of this rowset's rows or its insert row, or (3) this3287* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3288*/3289public void updateDouble(String columnName, double x) throws SQLException {3290throw new UnsupportedOperationException();3291}32923293/**3294* Sets the designated column in either the current row or the insert3295* row of this <code>CachedRowSetImpl</code> object with the given3296* <code>java.math.BigDecimal</code> object.3297* <P>3298* This method updates a column value in the current row or the insert3299* row of this rowset, but it does not update the database.3300* If the cursor is on a row in the rowset, the3301* method {@link #updateRow} must be called to update the database.3302* If the cursor is on the insert row, the method {@link #insertRow}3303* must be called, which will insert the new row into both this rowset3304* and the database. Both of these methods must be called before the3305* cursor moves to another row.3306*3307* @param columnName a <code>String</code> object that must match the3308* SQL name of a column in this rowset, ignoring case3309* @param x the new column value3310* @throws SQLException if (1) the given column name does not match the3311* name of a column in this rowset, (2) the cursor is not on3312* one of this rowset's rows or its insert row, or (3) this3313* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3314*/3315public void updateBigDecimal(String columnName, BigDecimal x) throws SQLException {3316throw new UnsupportedOperationException();3317}33183319/**3320* Sets the designated column in either the current row or the insert3321* row of this <code>CachedRowSetImpl</code> object with the given3322* <code>String</code> object.3323*3324* This method updates a column value in either the current row or3325* the insert row of this rowset, but it does not update the3326* database. If the cursor is on a row in the rowset, the3327* method {@link #updateRow} must be called to update the database.3328* If the cursor is on the insert row, the method {@link #insertRow}3329* must be called, which will insert the new row into both this rowset3330* and the database. Both of these methods must be called before the3331* cursor moves to another row.3332*3333* @param columnName a <code>String</code> object that must match the3334* SQL name of a column in this rowset, ignoring case3335* @param x the new column value3336* @throws SQLException if (1) the given column name does not match the3337* name of a column in this rowset, (2) the cursor is not on3338* one of this rowset's rows or its insert row, or (3) this3339* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3340*/3341public void updateString(String columnName, String x) throws SQLException {3342throw new UnsupportedOperationException();3343}33443345/**3346* Sets the designated column in either the current row or the insert3347* row of this <code>CachedRowSetImpl</code> object with the given3348* <code>byte</code> array.3349*3350* This method updates a column value in either the current row or3351* the insert row of this rowset, but it does not update the3352* database. If the cursor is on a row in the rowset, the3353* method {@link #updateRow} must be called to update the database.3354* If the cursor is on the insert row, the method {@link #insertRow}3355* must be called, which will insert the new row into both this rowset3356* and the database. Both of these methods must be called before the3357* cursor moves to another row.3358*3359* @param columnName a <code>String</code> object that must match the3360* SQL name of a column in this rowset, ignoring case3361* @param x the new column value3362* @throws SQLException if (1) the given column name does not match the3363* name of a column in this rowset, (2) the cursor is not on3364* one of this rowset's rows or its insert row, or (3) this3365* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3366*/3367public void updateBytes(String columnName, byte x[]) throws SQLException {3368throw new UnsupportedOperationException();3369}33703371/**3372* Sets the designated column in either the current row or the insert3373* row of this <code>CachedRowSetImpl</code> object with the given3374* <code>Date</code> object.3375*3376* This method updates a column value in either the current row or3377* the insert row of this rowset, but it does not update the3378* database. If the cursor is on a row in the rowset, the3379* method {@link #updateRow} must be called to update the database.3380* If the cursor is on the insert row, the method {@link #insertRow}3381* must be called, which will insert the new row into both this rowset3382* and the database. Both of these methods must be called before the3383* cursor moves to another row.3384*3385* @param columnName a <code>String</code> object that must match the3386* SQL name of a column in this rowset, ignoring case3387* @param x the new column value3388* @throws SQLException if (1) the given column name does not match the3389* name of a column in this rowset, (2) the cursor is not on3390* one of this rowset's rows or its insert row, (3) the type3391* of the designated column is not an SQL <code>DATE</code> or3392* <code>TIMESTAMP</code>, or (4) this rowset is3393* <code>ResultSet.CONCUR_READ_ONLY</code>3394*/3395public void updateDate(String columnName, java.sql.Date x) throws SQLException {3396throw new UnsupportedOperationException();3397}33983399/**3400* Sets the designated column in either the current row or the insert3401* row of this <code>CachedRowSetImpl</code> object with the given3402* <code>Time</code> object.3403*3404* This method updates a column value in either the current row or3405* the insert row of this rowset, but it does not update the3406* database. If the cursor is on a row in the rowset, the3407* method {@link #updateRow} must be called to update the database.3408* If the cursor is on the insert row, the method {@link #insertRow}3409* must be called, which will insert the new row into both this rowset3410* and the database. Both of these methods must be called before the3411* cursor moves to another row.3412*3413* @param columnName a <code>String</code> object that must match the3414* SQL name of a column in this rowset, ignoring case3415* @param x the new column value3416* @throws SQLException if (1) the given column name does not match the3417* name of a column in this rowset, (2) the cursor is not on3418* one of this rowset's rows or its insert row, (3) the type3419* of the designated column is not an SQL <code>TIME</code> or3420* <code>TIMESTAMP</code>, or (4) this rowset is3421* <code>ResultSet.CONCUR_READ_ONLY</code>3422*/3423public void updateTime(String columnName, java.sql.Time x) throws SQLException {3424throw new UnsupportedOperationException();3425}34263427/**3428* Sets the designated column in either the current row or the insert3429* row of this <code>CachedRowSetImpl</code> object with the given3430* <code>Timestamp</code> object.3431*3432* This method updates a column value in either the current row or3433* the insert row of this rowset, but it does not update the3434* database. If the cursor is on a row in the rowset, the3435* method {@link #updateRow} must be called to update the database.3436* If the cursor is on the insert row, the method {@link #insertRow}3437* must be called, which will insert the new row into both this rowset3438* and the database. Both of these methods must be called before the3439* cursor moves to another row.3440*3441* @param columnName a <code>String</code> object that must match the3442* SQL name of a column in this rowset, ignoring case3443* @param x the new column value3444* @throws SQLException if the given column index is out of bounds or3445* the cursor is not on one of this rowset's rows or its3446* insert row3447* @throws SQLException if (1) the given column name does not match the3448* name of a column in this rowset, (2) the cursor is not on3449* one of this rowset's rows or its insert row, (3) the type3450* of the designated column is not an SQL <code>DATE</code>,3451* <code>TIME</code>, or <code>TIMESTAMP</code>, or (4) this3452* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3453*/3454public void updateTimestamp(String columnName, java.sql.Timestamp x) throws SQLException {3455throw new UnsupportedOperationException();3456}34573458/**3459* Sets the designated column in either the current row or the insert3460* row of this <code>CachedRowSetImpl</code> object with the given3461* ASCII stream value.3462* <P>3463* This method updates a column value in either the current row or3464* the insert row of this rowset, but it does not update the3465* database. If the cursor is on a row in the rowset, the3466* method {@link #updateRow} must be called to update the database.3467* If the cursor is on the insert row, the method {@link #insertRow}3468* must be called, which will insert the new row into both this rowset3469* and the database. Both of these methods must be called before the3470* cursor moves to another row.3471*3472* @param columnName a <code>String</code> object that must match the3473* SQL name of a column in this rowset, ignoring case3474* @param x the new column value3475* @param length the number of one-byte ASCII characters in the stream3476*/3477public void updateAsciiStream(String columnName,3478java.io.InputStream x,3479int length) throws SQLException {3480throw new UnsupportedOperationException();3481}34823483/**3484* Sets the designated column in either the current row or the insert3485* row of this <code>CachedRowSetImpl</code> object with the given3486* <code>java.io.InputStream</code> object.3487* <P>3488* This method updates a column value in either the current row or3489* the insert row of this rowset, but it does not update the3490* database. If the cursor is on a row in the rowset, the3491* method {@link #updateRow} must be called to update the database.3492* If the cursor is on the insert row, the method {@link #insertRow}3493* must be called, which will insert the new row into both this rowset3494* and the database. Both of these methods must be called before the3495* cursor moves to another row.3496*3497* @param columnName a <code>String</code> object that must match the3498* SQL name of a column in this rowset, ignoring case3499* @param x the new column value; must be a <code>java.io.InputStream</code>3500* containing <code>BINARY</code>, <code>VARBINARY</code>, or3501* <code>LONGVARBINARY</code> data3502* @param length the length of the stream in bytes3503* @throws SQLException if (1) the given column name does not match the3504* name of a column in this rowset, (2) the cursor is not on3505* one of this rowset's rows or its insert row, (3) the data3506* in the stream is not binary, or (4) this rowset is3507* <code>ResultSet.CONCUR_READ_ONLY</code>3508*/3509public void updateBinaryStream(String columnName, java.io.InputStream x, int length) throws SQLException {3510throw new UnsupportedOperationException();3511}35123513/**3514* Sets the designated column in either the current row or the insert3515* row of this <code>CachedRowSetImpl</code> object with the given3516* <code>java.io.Reader</code> object.3517* <P>3518* This method updates a column value in either the current row or3519* the insert row of this rowset, but it does not update the3520* database. If the cursor is on a row in the rowset, the3521* method {@link #updateRow} must be called to update the database.3522* If the cursor is on the insert row, the method {@link #insertRow}3523* must be called, which will insert the new row into both this rowset3524* and the database. Both of these methods must be called before the3525* cursor moves to another row.3526*3527* @param columnName a <code>String</code> object that must match the3528* SQL name of a column in this rowset, ignoring case3529* @param reader the new column value; must be a3530* <code>java.io.Reader</code> containing <code>BINARY</code>,3531* <code>VARBINARY</code>, <code>LONGVARBINARY</code>, <code>CHAR</code>,3532* <code>VARCHAR</code>, or <code>LONGVARCHAR</code> data3533* @param length the length of the stream in characters3534* @throws SQLException if (1) the given column name does not match the3535* name of a column in this rowset, (2) the cursor is not on3536* one of this rowset's rows or its insert row, (3) the data3537* in the stream is not a binary or character type, or (4) this3538* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3539*/3540public void updateCharacterStream(String columnName,3541java.io.Reader reader,3542int length) throws SQLException {3543throw new UnsupportedOperationException();3544}35453546/**3547* Sets the designated column in either the current row or the insert3548* row of this <code>CachedRowSetImpl</code> object with the given3549* <code>Object</code> value. The <code>scale</code> parameter3550* indicates the number of digits to the right of the decimal point3551* and is ignored if the new column value is not a type that will be3552* mapped to an SQL <code>DECIMAL</code> or <code>NUMERIC</code> value.3553* <P>3554* This method updates a column value in either the current row or3555* the insert row of this rowset, but it does not update the3556* database. If the cursor is on a row in the rowset, the3557* method {@link #updateRow} must be called to update the database.3558* If the cursor is on the insert row, the method {@link #insertRow}3559* must be called, which will insert the new row into both this rowset3560* and the database. Both of these methods must be called before the3561* cursor moves to another row.3562*3563* @param columnName a <code>String</code> object that must match the3564* SQL name of a column in this rowset, ignoring case3565* @param x the new column value3566* @param scale the number of digits to the right of the decimal point (for3567* <code>DECIMAL</code> and <code>NUMERIC</code> types only)3568* @throws SQLException if (1) the given column name does not match the3569* name of a column in this rowset, (2) the cursor is not on3570* one of this rowset's rows or its insert row, or (3) this3571* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3572*/3573public void updateObject(String columnName, Object x, int scale) throws SQLException {3574throw new UnsupportedOperationException();3575}35763577/**3578* Sets the designated column in either the current row or the insert3579* row of this <code>CachedRowSetImpl</code> object with the given3580* <code>Object</code> value.3581* <P>3582* This method updates a column value in either the current row or3583* the insert row of this rowset, but it does not update the3584* database. If the cursor is on a row in the rowset, the3585* method {@link #updateRow} must be called to update the database.3586* If the cursor is on the insert row, the method {@link #insertRow}3587* must be called, which will insert the new row into both this rowset3588* and the database. Both of these methods must be called before the3589* cursor moves to another row.3590*3591* @param columnName a <code>String</code> object that must match the3592* SQL name of a column in this rowset, ignoring case3593* @param x the new column value3594* @throws SQLException if (1) the given column name does not match the3595* name of a column in this rowset, (2) the cursor is not on3596* one of this rowset's rows or its insert row, or (3) this3597* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3598*/3599public void updateObject(String columnName, Object x) throws SQLException {3600throw new UnsupportedOperationException();3601}36023603/**3604* Inserts the contents of this <code>CachedRowSetImpl</code> object's insert3605* row into this rowset immediately following the current row.3606* If the current row is the3607* position after the last row or before the first row, the new row will3608* be inserted at the end of the rowset. This method also notifies3609* listeners registered with this rowset that the row has changed.3610* <P>3611* The cursor must be on the insert row when this method is called.3612*3613* @throws SQLException if (1) the cursor is not on the insert row,3614* (2) one or more of the non-nullable columns in the insert3615* row has not been given a value, or (3) this rowset is3616* <code>ResultSet.CONCUR_READ_ONLY</code>3617*/3618public void insertRow() throws SQLException {3619throw new UnsupportedOperationException();3620}36213622/**3623* Marks the current row of this <code>CachedRowSetImpl</code> object as3624* updated and notifies listeners registered with this rowset that the3625* row has changed.3626* <P>3627* This method cannot be called when the cursor is on the insert row, and3628* it should be called before the cursor moves to another row. If it is3629* called after the cursor moves to another row, this method has no effect,3630* and the updates made before the cursor moved will be lost.3631*3632* @throws SQLException if the cursor is on the insert row or this3633* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>3634*/3635public void updateRow() throws SQLException {3636throw new UnsupportedOperationException();3637}36383639/**3640* Deletes the current row from this <code>CachedRowSetImpl</code> object and3641* notifies listeners registered with this rowset that a row has changed.3642* This method cannot be called when the cursor is on the insert row.3643* <P>3644* This method marks the current row as deleted, but it does not delete3645* the row from the underlying data source. The method3646* <code>acceptChanges</code> must be called to delete the row in3647* the data source.3648*3649* @throws SQLException if (1) this method is called when the cursor3650* is on the insert row, before the first row, or after the3651* last row or (2) this rowset is3652* <code>ResultSet.CONCUR_READ_ONLY</code>3653*/3654public void deleteRow() throws SQLException {3655throw new UnsupportedOperationException();3656}36573658/**3659* Sets the current row with its original value and marks the row as3660* not updated, thus undoing any changes made to the row since the3661* last call to the methods <code>updateRow</code> or <code>deleteRow</code>.3662* This method should be called only when the cursor is on a row in3663* this rowset.3664*3665* @throws SQLException if the cursor is on the insert row, before the3666* first row, or after the last row3667*/3668public void refreshRow() throws SQLException {3669throw new UnsupportedOperationException();3670}36713672/**3673* Rolls back any updates made to the current row of this3674* <code>CachedRowSetImpl</code> object and notifies listeners that3675* a row has changed. To have an effect, this method3676* must be called after an <code>updateXXX</code> method has been3677* called and before the method <code>updateRow</code> has been called.3678* If no updates have been made or the method <code>updateRow</code>3679* has already been called, this method has no effect.3680*3681* @throws SQLException if the cursor is on the insert row, before the3682* first row, or after the last row3683*/3684public void cancelRowUpdates() throws SQLException {3685throw new UnsupportedOperationException();3686}36873688/**3689* Moves the cursor for this <code>CachedRowSetImpl</code> object3690* to the insert row. The current row in the rowset is remembered3691* while the cursor is on the insert row.3692* <P>3693* The insert row is a special row associated with an updatable3694* rowset. It is essentially a buffer where a new row may3695* be constructed by calling the appropriate <code>updateXXX</code>3696* methods to assign a value to each column in the row. A complete3697* row must be constructed; that is, every column that is not nullable3698* must be assigned a value. In order for the new row to become part3699* of this rowset, the method <code>insertRow</code> must be called3700* before the cursor is moved back to the rowset.3701* <P>3702* Only certain methods may be invoked while the cursor is on the insert3703* row; many methods throw an exception if they are called while the3704* cursor is there. In addition to the <code>updateXXX</code>3705* and <code>insertRow</code> methods, only the <code>getXXX</code> methods3706* may be called when the cursor is on the insert row. A <code>getXXX</code>3707* method should be called on a column only after an <code>updateXXX</code>3708* method has been called on that column; otherwise, the value returned is3709* undetermined.3710*3711* @throws SQLException if this <code>CachedRowSetImpl</code> object is3712* <code>ResultSet.CONCUR_READ_ONLY</code>3713*/3714public void moveToInsertRow() throws SQLException {3715throw new UnsupportedOperationException();3716}37173718/**3719* Moves the cursor for this <code>CachedRowSetImpl</code> object to3720* the current row. The current row is the row the cursor was on3721* when the method <code>moveToInsertRow</code> was called.3722* <P>3723* Calling this method has no effect unless it is called while the3724* cursor is on the insert row.3725*3726* @throws SQLException if an error occurs3727*/3728public void moveToCurrentRow() throws SQLException {3729throw new UnsupportedOperationException();3730}37313732/**3733* Returns <code>null</code>.3734*3735* @return <code>null</code>3736* @throws SQLException if an error occurs3737*/3738public Statement getStatement() throws SQLException {3739throw new UnsupportedOperationException();3740}37413742/**3743* Retrieves the value of the designated column in this3744* <code>CachedRowSetImpl</code> object as an <code>Object</code> in3745* the Java programming language, using the given3746* <code>java.util.Map</code> object to custom map the value if3747* appropriate.3748*3749* @param columnIndex the first column is <code>1</code>, the second3750* is <code>2</code>, and so on; must be <code>1</code> or larger3751* and equal to or less than the number of columns in this rowset3752* @param map a <code>java.util.Map</code> object showing the mapping3753* from SQL type names to classes in the Java programming3754* language3755* @return an <code>Object</code> representing the SQL value3756* @throws SQLException if the given column index is out of bounds or3757* the cursor is not on one of this rowset's rows or its3758* insert row3759*/3760public Object getObject(int columnIndex,3761java.util.Map<String,Class<?>> map)3762throws SQLException3763{3764throw new UnsupportedOperationException();3765}37663767/**3768* Retrieves the value of the designated column in this3769* <code>CachedRowSetImpl</code> object as a <code>Ref</code> object3770* in the Java programming language.3771*3772* @param columnIndex the first column is <code>1</code>, the second3773* is <code>2</code>, and so on; must be <code>1</code> or larger3774* and equal to or less than the number of columns in this rowset3775* @return a <code>Ref</code> object representing an SQL<code> REF</code> value3776* @throws SQLException if (1) the given column index is out of bounds,3777* (2) the cursor is not on one of this rowset's rows or its3778* insert row, or (3) the designated column does not store an3779* SQL <code>REF</code> value3780* @see #getRef(String)3781*/3782public Ref getRef(int columnIndex) throws SQLException {3783throw new UnsupportedOperationException();3784}37853786/**3787* Retrieves the value of the designated column in this3788* <code>CachedRowSetImpl</code> object as a <code>Blob</code> object3789* in the Java programming language.3790*3791* @param columnIndex the first column is <code>1</code>, the second3792* is <code>2</code>, and so on; must be <code>1</code> or larger3793* and equal to or less than the number of columns in this rowset3794* @return a <code>Blob</code> object representing an SQL <code>BLOB</code> value3795* @throws SQLException if (1) the given column index is out of bounds,3796* (2) the cursor is not on one of this rowset's rows or its3797* insert row, or (3) the designated column does not store an3798* SQL <code>BLOB</code> value3799* @see #getBlob(String)3800*/3801public Blob getBlob(int columnIndex) throws SQLException {3802throw new UnsupportedOperationException();3803}38043805/**3806* Retrieves the value of the designated column in this3807* <code>CachedRowSetImpl</code> object as a <code>Clob</code> object3808* in the Java programming language.3809*3810* @param columnIndex the first column is <code>1</code>, the second3811* is <code>2</code>, and so on; must be <code>1</code> or larger3812* and equal to or less than the number of columns in this rowset3813* @return a <code>Clob</code> object representing an SQL <code>CLOB</code> value3814* @throws SQLException if (1) the given column index is out of bounds,3815* (2) the cursor is not on one of this rowset's rows or its3816* insert row, or (3) the designated column does not store an3817* SQL <code>CLOB</code> value3818* @see #getClob(String)3819*/3820public Clob getClob(int columnIndex) throws SQLException {3821throw new UnsupportedOperationException();3822}38233824/**3825* Retrieves the value of the designated column in this3826* <code>CachedRowSetImpl</code> object as an <code>Array</code> object3827* in the Java programming language.3828*3829* @param columnIndex the first column is <code>1</code>, the second3830* is <code>2</code>, and so on; must be <code>1</code> or larger3831* and equal to or less than the number of columns in this rowset3832* @return an <code>Array</code> object representing an SQL3833* <code>ARRAY</code> value3834* @throws SQLException if (1) the given column index is out of bounds,3835* (2) the cursor is not on one of this rowset's rows or its3836* insert row, or (3) the designated column does not store an3837* SQL <code>ARRAY</code> value3838* @see #getArray(String)3839*/3840public Array getArray(int columnIndex) throws SQLException {3841throw new UnsupportedOperationException();3842}38433844/**3845* Retrieves the value of the designated column in this3846* <code>CachedRowSetImpl</code> object as an <code>Object</code> in3847* the Java programming language, using the given3848* <code>java.util.Map</code> object to custom map the value if3849* appropriate.3850*3851* @param columnName a <code>String</code> object that must match the3852* SQL name of a column in this rowset, ignoring case3853* @param map a <code>java.util.Map</code> object showing the mapping3854* from SQL type names to classes in the Java programming3855* language3856* @return an <code>Object</code> representing the SQL value3857* @throws SQLException if the given column name is not the name of3858* a column in this rowset or the cursor is not on one of3859* this rowset's rows or its insert row3860*/3861public Object getObject(String columnName,3862java.util.Map<String,Class<?>> map)3863throws SQLException {3864throw new UnsupportedOperationException();3865}38663867/**3868* Retrieves the value of the designated column in this3869* <code>CachedRowSetImpl</code> object as a <code>Ref</code> object3870* in the Java programming language.3871*3872* @param colName a <code>String</code> object that must match the3873* SQL name of a column in this rowset, ignoring case3874* @return a <code>Ref</code> object representing an SQL<code> REF</code> value3875* @throws SQLException if (1) the given column name is not the name of3876* a column in this rowset, (2) the cursor is not on one of3877* this rowset's rows or its insert row, or (3) the column value3878* is not an SQL <code>REF</code> value3879* @see #getRef(int)3880*/3881public Ref getRef(String colName) throws SQLException {3882throw new UnsupportedOperationException();3883}38843885/**3886* Retrieves the value of the designated column in this3887* <code>CachedRowSetImpl</code> object as a <code>Blob</code> object3888* in the Java programming language.3889*3890* @param colName a <code>String</code> object that must match the3891* SQL name of a column in this rowset, ignoring case3892* @return a <code>Blob</code> object representing an SQL <code>BLOB</code> value3893* @throws SQLException if (1) the given column name is not the name of3894* a column in this rowset, (2) the cursor is not on one of3895* this rowset's rows or its insert row, or (3) the designated3896* column does not store an SQL <code>BLOB</code> value3897* @see #getBlob(int)3898*/3899public Blob getBlob(String colName) throws SQLException {3900throw new UnsupportedOperationException();3901}39023903/**3904* Retrieves the value of the designated column in this3905* <code>CachedRowSetImpl</code> object as a <code>Clob</code> object3906* in the Java programming language.3907*3908* @param colName a <code>String</code> object that must match the3909* SQL name of a column in this rowset, ignoring case3910* @return a <code>Clob</code> object representing an SQL3911* <code>CLOB</code> value3912* @throws SQLException if (1) the given column name is not the name of3913* a column in this rowset, (2) the cursor is not on one of3914* this rowset's rows or its insert row, or (3) the designated3915* column does not store an SQL <code>CLOB</code> value3916* @see #getClob(int)3917*/3918public Clob getClob(String colName) throws SQLException {3919throw new UnsupportedOperationException();3920}39213922/**3923* Retrieves the value of the designated column in this3924* <code>CachedRowSetImpl</code> object as an <code>Array</code> object3925* in the Java programming langugage.3926*3927* @param colName a <code>String</code> object that must match the3928* SQL name of a column in this rowset, ignoring case3929* @return an <code>Array</code> object representing an SQL3930* <code>ARRAY</code> value3931* @throws SQLException if (1) the given column name is not the name of3932* a column in this rowset, (2) the cursor is not on one of3933* this rowset's rows or its insert row, or (3) the designated3934* column does not store an SQL <code>ARRAY</code> value3935* @see #getArray(int)3936*/3937public Array getArray(String colName) throws SQLException {3938throw new UnsupportedOperationException();3939}39403941/**3942* Retrieves the value of the designated column in the current row3943* of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Date</code>3944* object, using the given <code>Calendar</code> object to construct an3945* appropriate millisecond value for the date.3946*3947* @param columnIndex the first column is <code>1</code>, the second3948* is <code>2</code>, and so on; must be <code>1</code> or larger3949* and equal to or less than the number of columns in the rowset3950* @param cal the <code>java.util.Calendar</code> object to use in3951* constructing the date3952* @return the column value; if the value is SQL <code>NULL</code>,3953* the result is <code>null</code>3954* @throws SQLException if (1) the given column name is not the name of3955* a column in this rowset, (2) the cursor is not on one of3956* this rowset's rows or its insert row, or (3) the designated3957* column does not store an SQL <code>DATE</code> or3958* <code>TIMESTAMP</code> value3959*/3960public java.sql.Date getDate(int columnIndex, Calendar cal) throws SQLException {3961throw new UnsupportedOperationException();3962}39633964/**3965* Retrieves the value of the designated column in the current row3966* of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Date</code>3967* object, using the given <code>Calendar</code> object to construct an3968* appropriate millisecond value for the date.3969*3970* @param columnName a <code>String</code> object that must match the3971* SQL name of a column in this rowset, ignoring case3972* @param cal the <code>java.util.Calendar</code> object to use in3973* constructing the date3974* @return the column value; if the value is SQL <code>NULL</code>,3975* the result is <code>null</code>3976* @throws SQLException if (1) the given column name is not the name of3977* a column in this rowset, (2) the cursor is not on one of3978* this rowset's rows or its insert row, or (3) the designated3979* column does not store an SQL <code>DATE</code> or3980* <code>TIMESTAMP</code> value3981*/3982public java.sql.Date getDate(String columnName, Calendar cal) throws SQLException {3983throw new UnsupportedOperationException();3984}39853986/**3987* Retrieves the value of the designated column in the current row3988* of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Time</code>3989* object, using the given <code>Calendar</code> object to construct an3990* appropriate millisecond value for the date.3991*3992* @param columnIndex the first column is <code>1</code>, the second3993* is <code>2</code>, and so on; must be <code>1</code> or larger3994* and equal to or less than the number of columns in the rowset3995* @param cal the <code>java.util.Calendar</code> object to use in3996* constructing the date3997* @return the column value; if the value is SQL <code>NULL</code>,3998* the result is <code>null</code>3999* @throws SQLException if (1) the given column name is not the name of4000* a column in this rowset, (2) the cursor is not on one of4001* this rowset's rows or its insert row, or (3) the designated4002* column does not store an SQL <code>TIME</code> or4003* <code>TIMESTAMP</code> value4004*/4005public java.sql.Time getTime(int columnIndex, Calendar cal) throws SQLException {4006throw new UnsupportedOperationException();4007}40084009/**4010* Retrieves the value of the designated column in the current row4011* of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Time</code>4012* object, using the given <code>Calendar</code> object to construct an4013* appropriate millisecond value for the date.4014*4015* @param columnName a <code>String</code> object that must match the4016* SQL name of a column in this rowset, ignoring case4017* @param cal the <code>java.util.Calendar</code> object to use in4018* constructing the date4019* @return the column value; if the value is SQL <code>NULL</code>,4020* the result is <code>null</code>4021* @throws SQLException if (1) the given column name is not the name of4022* a column in this rowset, (2) the cursor is not on one of4023* this rowset's rows or its insert row, or (3) the designated4024* column does not store an SQL <code>TIME</code> or4025* <code>TIMESTAMP</code> value4026*/4027public java.sql.Time getTime(String columnName, Calendar cal) throws SQLException {4028throw new UnsupportedOperationException();4029}40304031/**4032* Retrieves the value of the designated column in the current row4033* of this <code>CachedRowSetImpl</code> object as a <code>java.sql.Timestamp</code>4034* object, using the given <code>Calendar</code> object to construct an4035* appropriate millisecond value for the date.4036*4037* @param columnIndex the first column is <code>1</code>, the second4038* is <code>2</code>, and so on; must be <code>1</code> or larger4039* and equal to or less than the number of columns in the rowset4040* @param cal the <code>java.util.Calendar</code> object to use in4041* constructing the date4042* @return the column value; if the value is SQL <code>NULL</code>,4043* the result is <code>null</code>4044* @throws SQLException if (1) the given column name is not the name of4045* a column in this rowset, (2) the cursor is not on one of4046* this rowset's rows or its insert row, or (3) the designated4047* column does not store an SQL <code>TIME</code> or4048* <code>TIMESTAMP</code> value4049*/4050public java.sql.Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException {4051throw new UnsupportedOperationException();4052}40534054/**4055* Retrieves the value of the designated column in the current row4056* of this <code>CachedRowSetImpl</code> object as a4057* <code>java.sql.Timestamp</code> object, using the given4058* <code>Calendar</code> object to construct an appropriate4059* millisecond value for the date.4060*4061* @param columnName a <code>String</code> object that must match the4062* SQL name of a column in this rowset, ignoring case4063* @param cal the <code>java.util.Calendar</code> object to use in4064* constructing the date4065* @return the column value; if the value is SQL <code>NULL</code>,4066* the result is <code>null</code>4067* @throws SQLException if (1) the given column name is not the name of4068* a column in this rowset, (2) the cursor is not on one of4069* this rowset's rows or its insert row, or (3) the designated4070* column does not store an SQL <code>DATE</code>,4071* <code>TIME</code>, or <code>TIMESTAMP</code> value4072*/4073public java.sql.Timestamp getTimestamp(String columnName, Calendar cal) throws SQLException {4074throw new UnsupportedOperationException();4075}40764077/*4078* RowSetInternal Interface4079*/40804081/**4082* Retrieves the <code>Connection</code> object passed to this4083* <code>CachedRowSetImpl</code> object. This connection may be4084* used to populate this rowset with data or to write data back4085* to its underlying data source.4086*4087* @return the <code>Connection</code> object passed to this rowset;4088* may be <code>null</code> if there is no connection4089* @throws SQLException if an error occurs4090*/4091public Connection getConnection() throws SQLException{4092throw new UnsupportedOperationException();4093}40944095/**4096* Sets the metadata for this <code>CachedRowSetImpl</code> object4097* with the given <code>RowSetMetaData</code> object.4098*4099* @param md a <code>RowSetMetaData</code> object instance containing4100* metadata about the columsn in the rowset4101* @throws SQLException if invalid meta data is supplied to the4102* rowset4103*/4104public void setMetaData(RowSetMetaData md) throws SQLException {4105throw new UnsupportedOperationException();4106}41074108/**4109* Returns a result set containing the original value of the rowset. The4110* original value is the state of the <code>CachedRowSetImpl</code> after the4111* last population or synchronization (whichever occurred most recently) with4112* the data source.4113* <p>4114* The cursor is positioned before the first row in the result set.4115* Only rows contained in the result set returned by <code>getOriginal()</code>4116* are said to have an original value.4117*4118* @return the original result set of the rowset4119* @throws SQLException if an error occurs produce the4120* <code>ResultSet</code> object4121*/4122public ResultSet getOriginal() throws SQLException {4123throw new UnsupportedOperationException();4124}41254126/**4127* Returns a result set containing the original value of the current4128* row only.4129* The original value is the state of the <code>CachedRowSetImpl</code> after4130* the last population or synchronization (whichever occurred most recently)4131* with the data source.4132*4133* @return the original result set of the row4134* @throws SQLException if there is no current row4135* @see #setOriginalRow4136*/4137public ResultSet getOriginalRow() throws SQLException {4138throw new UnsupportedOperationException();41394140}41414142/**4143* Marks the current row in this rowset as being an original row.4144*4145* @throws SQLException if there is no current row4146* @see #getOriginalRow4147*/4148public void setOriginalRow() throws SQLException {4149throw new UnsupportedOperationException();4150}41514152/**4153* Marks all rows in this rowset as being original rows. Any updates4154* made to the rows become the original values for the rowset.4155* Calls to the method <code>setOriginal</code> connot be reversed.4156*4157* @throws SQLException if an error occurs4158*/4159public void setOriginal() throws SQLException {4160throw new UnsupportedOperationException();4161}41624163/**4164* Returns an identifier for the object (table) that was used to create this4165* rowset.4166*4167* @return a <code>String</code> object that identifies the table from4168* which this <code>CachedRowSetImpl</code> object was derived4169* @throws SQLException if an error occurs4170*/4171public String getTableName() throws SQLException {4172throw new UnsupportedOperationException();4173}41744175/**4176* Sets the identifier for the table from which this rowset was derived4177* to the given table name.4178*4179* @param tabName a <code>String</code> object that identifies the4180* table from which this <code>CachedRowSetImpl</code> object4181* was derived4182* @throws SQLException if an error occurs4183*/4184public void setTableName(String tabName) throws SQLException {4185throw new UnsupportedOperationException();4186}41874188/**4189* Returns the columns that make a key to uniquely identify a4190* row in this <code>CachedRowSetImpl</code> object.4191*4192* @return an array of column numbers that constitutes a primary4193* key for this rowset. This array should be empty4194* if no column is representitive of a primary key4195* @throws SQLException if the rowset is empty or no columns4196* are designated as primary keys4197* @see #setKeyColumns4198*/4199public int[] getKeyColumns() throws SQLException {4200throw new UnsupportedOperationException();4201}420242034204/**4205* Sets this <code>CachedRowSetImpl</code> object's4206* <code>keyCols</code> field with the given array of column4207* numbers, which forms a key for uniquely identifying a row4208* in this rowset.4209*4210* @param keys an array of <code>int</code> indicating the4211* columns that form a primary key for this4212* <code>CachedRowSetImpl</code> object; every4213* element in the array must be greater than4214* <code>0</code> and less than or equal to the number4215* of columns in this rowset4216* @throws SQLException if any of the numbers in the4217* given array is not valid for this rowset4218* @see #getKeyColumns4219*/4220public void setKeyColumns(int [] keys) throws SQLException {4221throw new UnsupportedOperationException();4222}42234224/**4225* Sets the designated column in either the current row or the insert4226* row of this <code>CachedRowSetImpl</code> object with the given4227* <code>double</code> value.4228*4229* This method updates a column value in either the current row or4230* the insert row of this rowset, but it does not update the4231* database. If the cursor is on a row in the rowset, the4232* method {@link #updateRow} must be called to update the database.4233* If the cursor is on the insert row, the method {@link #insertRow}4234* must be called, which will insert the new row into both this rowset4235* and the database. Both of these methods must be called before the4236* cursor moves to another row.4237*4238* @param columnIndex the first column is <code>1</code>, the second4239* is <code>2</code>, and so on; must be <code>1</code> or larger4240* and equal to or less than the number of columns in this rowset4241* @param ref the new column <code>java.sql.Ref</code> value4242* @throws SQLException if (1) the given column index is out of bounds,4243* (2) the cursor is not on one of this rowset's rows or its4244* insert row, or (3) this rowset is4245* <code>ResultSet.CONCUR_READ_ONLY</code>4246*/4247public void updateRef(int columnIndex, java.sql.Ref ref) throws SQLException {4248throw new UnsupportedOperationException();4249}42504251/**4252* Sets the designated column in either the current row or the insert4253* row of this <code>CachedRowSetImpl</code> object with the given4254* <code>double</code> value.4255*4256* This method updates a column value in either the current row or4257* the insert row of this rowset, but it does not update the4258* database. If the cursor is on a row in the rowset, the4259* method {@link #updateRow} must be called to update the database.4260* If the cursor is on the insert row, the method {@link #insertRow}4261* must be called, which will insert the new row into both this rowset4262* and the database. Both of these methods must be called before the4263* cursor moves to another row.4264*4265* @param columnName a <code>String</code> object that must match the4266* SQL name of a column in this rowset, ignoring case4267* @param ref the new column <code>java.sql.Ref</code> value4268* @throws SQLException if (1) the given column name does not match the4269* name of a column in this rowset, (2) the cursor is not on4270* one of this rowset's rows or its insert row, or (3) this4271* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>4272*/4273public void updateRef(String columnName, java.sql.Ref ref) throws SQLException {4274throw new UnsupportedOperationException();4275}42764277/**4278* Sets the designated column in either the current row or the insert4279* row of this <code>CachedRowSetImpl</code> object with the given4280* <code>double</code> value.4281*4282* This method updates a column value in either the current row or4283* the insert row of this rowset, but it does not update the4284* database. If the cursor is on a row in the rowset, the4285* method {@link #updateRow} must be called to update the database.4286* If the cursor is on the insert row, the method {@link #insertRow}4287* must be called, which will insert the new row into both this rowset4288* and the database. Both of these methods must be called before the4289* cursor moves to another row.4290*4291* @param columnIndex the first column is <code>1</code>, the second4292* is <code>2</code>, and so on; must be <code>1</code> or larger4293* and equal to or less than the number of columns in this rowset4294* @param c the new column <code>Clob value4295* @throws SQLException if (1) the given column index is out of bounds,4296* (2) the cursor is not on one of this rowset's rows or its4297* insert row, or (3) this rowset is4298* <code>ResultSet.CONCUR_READ_ONLY</code>4299*/4300public void updateClob(int columnIndex, Clob c) throws SQLException {4301throw new UnsupportedOperationException();4302}43034304/**4305* Sets the designated column in either the current row or the insert4306* row of this <code>CachedRowSetImpl</code> object with the given4307* <code>double</code> value.4308*4309* This method updates a column value in either the current row or4310* the insert row of this rowset, but it does not update the4311* database. If the cursor is on a row in the rowset, the4312* method {@link #updateRow} must be called to update the database.4313* If the cursor is on the insert row, the method {@link #insertRow}4314* must be called, which will insert the new row into both this rowset4315* and the database. Both of these methods must be called before the4316* cursor moves to another row.4317*4318* @param columnName a <code>String</code> object that must match the4319* SQL name of a column in this rowset, ignoring case4320* @param c the new column <code>Clob</code>value4321* @throws SQLException if (1) the given column name does not match the4322* name of a column in this rowset, (2) the cursor is not on4323* one of this rowset's rows or its insert row, or (3) this4324* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>4325*/4326public void updateClob(String columnName, Clob c) throws SQLException {4327throw new UnsupportedOperationException();4328}43294330/**4331* Sets the designated column in either the current row or the insert4332* row of this <code>CachedRowSetImpl</code> object with the given4333* <code>java.sql.Blob</code> value.4334*4335* This method updates a column value in either the current row or4336* the insert row of this rowset, but it does not update the4337* database. If the cursor is on a row in the rowset, the4338* method {@link #updateRow} must be called to update the database.4339* If the cursor is on the insert row, the method {@link #insertRow}4340* must be called, which will insert the new row into both this rowset4341* and the database. Both of these methods must be called before the4342* cursor moves to another row.4343*4344* @param columnIndex the first column is <code>1</code>, the second4345* is <code>2</code>, and so on; must be <code>1</code> or larger4346* and equal to or less than the number of columns in this rowset4347* @param b the new column <code>Blob</code> value4348* @throws SQLException if (1) the given column index is out of bounds,4349* (2) the cursor is not on one of this rowset's rows or its4350* insert row, or (3) this rowset is4351* <code>ResultSet.CONCUR_READ_ONLY</code>4352*/4353public void updateBlob(int columnIndex, Blob b) throws SQLException {4354throw new UnsupportedOperationException();4355}43564357/**4358* Sets the designated column in either the current row or the insert4359* row of this <code>CachedRowSetImpl</code> object with the given4360* <code>java.sql.Blob </code> value.4361*4362* This method updates a column value in either the current row or4363* the insert row of this rowset, but it does not update the4364* database. If the cursor is on a row in the rowset, the4365* method {@link #updateRow} must be called to update the database.4366* If the cursor is on the insert row, the method {@link #insertRow}4367* must be called, which will insert the new row into both this rowset4368* and the database. Both of these methods must be called before the4369* cursor moves to another row.4370*4371* @param columnName a <code>String</code> object that must match the4372* SQL name of a column in this rowset, ignoring case4373* @param b the new column <code>Blob</code> value4374* @throws SQLException if (1) the given column name does not match the4375* name of a column in this rowset, (2) the cursor is not on4376* one of this rowset's rows or its insert row, or (3) this4377* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>4378*/4379public void updateBlob(String columnName, Blob b) throws SQLException {4380throw new UnsupportedOperationException();4381}43824383/**4384* Sets the designated column in either the current row or the insert4385* row of this <code>CachedRowSetImpl</code> object with the given4386* <code>java.sql.Array</code> values.4387*4388* This method updates a column value in either the current row or4389* the insert row of this rowset, but it does not update the4390* database. If the cursor is on a row in the rowset, the4391* method {@link #updateRow} must be called to update the database.4392* If the cursor is on the insert row, the method {@link #insertRow}4393* must be called, which will insert the new row into both this rowset4394* and the database. Both of these methods must be called before the4395* cursor moves to another row.4396*4397* @param columnIndex the first column is <code>1</code>, the second4398* is <code>2</code>, and so on; must be <code>1</code> or larger4399* and equal to or less than the number of columns in this rowset4400* @param a the new column <code>Array</code> value4401* @throws SQLException if (1) the given column index is out of bounds,4402* (2) the cursor is not on one of this rowset's rows or its4403* insert row, or (3) this rowset is4404* <code>ResultSet.CONCUR_READ_ONLY</code>4405*/4406public void updateArray(int columnIndex, Array a) throws SQLException {4407throw new UnsupportedOperationException();4408}44094410/**4411* Sets the designated column in either the current row or the insert4412* row of this <code>CachedRowSetImpl</code> object with the given4413* <code>java.sql.Array</code> value.4414*4415* This method updates a column value in either the current row or4416* the insert row of this rowset, but it does not update the4417* database. If the cursor is on a row in the rowset, the4418* method {@link #updateRow} must be called to update the database.4419* If the cursor is on the insert row, the method {@link #insertRow}4420* must be called, which will insert the new row into both this rowset4421* and the database. Both of these methods must be called before the4422* cursor moves to another row.4423*4424* @param columnName a <code>String</code> object that must match the4425* SQL name of a column in this rowset, ignoring case4426* @param a the new column <code>Array</code> value4427* @throws SQLException if (1) the given column name does not match the4428* name of a column in this rowset, (2) the cursor is not on4429* one of this rowset's rows or its insert row, or (3) this4430* rowset is <code>ResultSet.CONCUR_READ_ONLY</code>4431*/4432public void updateArray(String columnName, Array a) throws SQLException {4433throw new UnsupportedOperationException();4434}443544364437/**4438* Retrieves the value of the designated column in this4439* <code>CachedRowSetImpl</code> object as a <code>java.net.URL</code> object4440* in the Java programming language.4441*4442* @return a java.net.URL object containing the resource reference described by4443* the URL4444* @throws SQLException if (1) the given column index is out of bounds,4445* (2) the cursor is not on one of this rowset's rows or its4446* insert row, or (3) the designated column does not store an4447* SQL <code>DATALINK</code> value.4448* @see #getURL(String)4449*/4450public java.net.URL getURL(int columnIndex) throws SQLException {4451throw new UnsupportedOperationException();4452}44534454/**4455* Retrieves the value of the designated column in this4456* <code>CachedRowSetImpl</code> object as a <code>java.net.URL</code> object4457* in the Java programming language.4458*4459* @return a java.net.URL object containing the resource reference described by4460* the URL4461* @throws SQLException if (1) the given column name not the name of a column4462* in this rowset, or4463* (2) the cursor is not on one of this rowset's rows or its4464* insert row, or (3) the designated column does not store an4465* SQL <code>DATALINK</code> value.4466* @see #getURL(int)4467*/4468public java.net.URL getURL(String columnName) throws SQLException {4469throw new UnsupportedOperationException();44704471}44724473/**4474* The first warning reported by calls on this <code>CachedRowSetImpl</code>4475* object is returned. Subsequent <code>CachedRowSetImpl</code> warnings will4476* be chained to this <code>SQLWarning</code>. All <code>RowSetWarnings</code>4477* warnings are generated in the disconnected environment and remain a4478* seperate warning chain to that provided by the <code>getWarnings</code>4479* method.4480*4481* <P>The warning chain is automatically cleared each time a new4482* row is read.4483*4484* <P><B>Note:</B> This warning chain only covers warnings caused4485* by <code>CachedRowSet</code> (and their child interface)4486* methods. All <code>SQLWarnings</code> can be obtained using the4487* <code>getWarnings</code> method which tracks warnings generated4488* by the underlying JDBC driver.4489* @return the first SQLWarning or null4490*4491*/4492public RowSetWarning getRowSetWarnings() {4493throw new UnsupportedOperationException();4494}44954496/**4497* Commits all changes performed by the <code>acceptChanges()</code>4498* methods4499*4500* @see java.sql.Connection#commit4501*/4502public void commit() throws SQLException {4503throw new UnsupportedOperationException();4504}45054506/**4507* Rolls back all changes performed by the <code>acceptChanges()</code>4508* methods4509*4510* @see java.sql.Connection#rollback4511*/4512public void rollback() throws SQLException {4513throw new UnsupportedOperationException();4514}45154516/**4517* Rolls back all changes performed by the <code>acceptChanges()</code>4518* to the last <code>Savepoint</code> transaction marker.4519*4520* @see java.sql.Connection#rollback(Savepoint)4521*/4522public void rollback(Savepoint s) throws SQLException {4523throw new UnsupportedOperationException();4524}45254526/**4527* Unsets the designated parameter to the given int array.4528* This was set using <code>setMatchColumn</code>4529* as the column which will form the basis of the join.4530* <P>4531* The parameter value unset by this method should be same4532* as was set.4533*4534* @param columnIdxes the index into this rowset4535* object's internal representation of parameter values4536* @throws SQLException if an error occurs or the4537* parameter index is out of bounds or if the columnIdx is4538* not the same as set using <code>setMatchColumn(int [])</code>4539*/4540public void unsetMatchColumn(int[] columnIdxes) throws SQLException {4541throw new UnsupportedOperationException();4542}45434544/**4545* Unsets the designated parameter to the given String array.4546* This was set using <code>setMatchColumn</code>4547* as the column which will form the basis of the join.4548* <P>4549* The parameter value unset by this method should be same4550* as was set.4551*4552* @param columnIdxes the index into this rowset4553* object's internal representation of parameter values4554* @throws SQLException if an error occurs or the4555* parameter index is out of bounds or if the columnName is4556* not the same as set using <code>setMatchColumn(String [])</code>4557*/4558public void unsetMatchColumn(String[] columnIdxes) throws SQLException {4559throw new UnsupportedOperationException();4560}45614562/**4563* Retrieves the column name as <code>String</code> array4564* that was set using <code>setMatchColumn(String [])</code>4565* for this rowset.4566*4567* @return a <code>String</code> array object that contains the column names4568* for the rowset which has this the match columns4569*4570* @throws SQLException if an error occurs or column name is not set4571*/4572public String[] getMatchColumnNames() throws SQLException {4573throw new UnsupportedOperationException();4574}45754576/**4577* Retrieves the column id as <code>int</code> array that was set using4578* <code>setMatchColumn(int [])</code> for this rowset.4579*4580* @return a <code>int</code> array object that contains the column ids4581* for the rowset which has this as the match columns.4582*4583* @throws SQLException if an error occurs or column index is not set4584*/4585public int[] getMatchColumnIndexes() throws SQLException {4586throw new UnsupportedOperationException();4587}45884589/**4590* Sets the designated parameter to the given int array.4591* This forms the basis of the join for the4592* <code>JoinRowSet</code> as the column which will form the basis of the4593* join.4594* <P>4595* The parameter value set by this method is stored internally and4596* will be supplied as the appropriate parameter in this rowset's4597* command when the method <code>getMatchColumnIndexes</code> is called.4598*4599* @param columnIdxes the indexes into this rowset4600* object's internal representation of parameter values; the4601* first parameter is 0, the second is 1, and so on; must be4602* <code>0</code> or greater4603* @throws SQLException if an error occurs or the4604* parameter index is out of bounds4605*/4606public void setMatchColumn(int[] columnIdxes) throws SQLException {4607throw new UnsupportedOperationException();4608}46094610/**4611* Sets the designated parameter to the given String array.4612* This forms the basis of the join for the4613* <code>JoinRowSet</code> as the column which will form the basis of the4614* join.4615* <P>4616* The parameter value set by this method is stored internally and4617* will be supplied as the appropriate parameter in this rowset's4618* command when the method <code>getMatchColumn</code> is called.4619*4620* @param columnNames the name of the column into this rowset4621* object's internal representation of parameter values4622* @throws SQLException if an error occurs or the4623* parameter index is out of bounds4624*/4625public void setMatchColumn(String[] columnNames) throws SQLException {4626throw new UnsupportedOperationException();4627}462846294630/**4631* Sets the designated parameter to the given <code>int</code>4632* object. This forms the basis of the join for the4633* <code>JoinRowSet</code> as the column which will form the basis of the4634* join.4635* <P>4636* The parameter value set by this method is stored internally and4637* will be supplied as the appropriate parameter in this rowset's4638* command when the method <code>getMatchColumn</code> is called.4639*4640* @param columnIdx the index into this rowset4641* object's internal representation of parameter values; the4642* first parameter is 0, the second is 1, and so on; must be4643* <code>0</code> or greater4644* @throws SQLException if an error occurs or the4645* parameter index is out of bounds4646*/4647public void setMatchColumn(int columnIdx) throws SQLException {4648throw new UnsupportedOperationException();4649}46504651/**4652* Sets the designated parameter to the given <code>String</code>4653* object. This forms the basis of the join for the4654* <code>JoinRowSet</code> as the column which will form the basis of the4655* join.4656* <P>4657* The parameter value set by this method is stored internally and4658* will be supplied as the appropriate parameter in this rowset's4659* command when the method <code>getMatchColumn</code> is called.4660*4661* @param columnName the name of the column into this rowset4662* object's internal representation of parameter values4663* @throws SQLException if an error occurs or the4664* parameter index is out of bounds4665*/4666public void setMatchColumn(String columnName) throws SQLException {4667throw new UnsupportedOperationException();4668}46694670/**4671* Unsets the designated parameter to the given <code>int</code>4672* object. This was set using <code>setMatchColumn</code>4673* as the column which will form the basis of the join.4674* <P>4675* The parameter value unset by this method should be same4676* as was set.4677*4678* @param columnIdx the index into this rowset4679* object's internal representation of parameter values4680* @throws SQLException if an error occurs or the4681* parameter index is out of bounds or if the columnIdx is4682* not the same as set using <code>setMatchColumn(int)</code>4683*/4684public void unsetMatchColumn(int columnIdx) throws SQLException {4685throw new UnsupportedOperationException();4686}46874688/**4689* Unsets the designated parameter to the given <code>String</code>4690* object. This was set using <code>setMatchColumn</code>4691* as the column which will form the basis of the join.4692* <P>4693* The parameter value unset by this method should be same4694* as was set.4695*4696* @param columnName the index into this rowset4697* object's internal representation of parameter values4698* @throws SQLException if an error occurs or the4699* parameter index is out of bounds or if the columnName is4700* not the same as set using <code>setMatchColumn(String)</code>4701*/4702public void unsetMatchColumn(String columnName) throws SQLException {4703throw new UnsupportedOperationException();4704}47054706/**4707* Notifies registered listeners that a RowSet object in the given RowSetEvent4708* object has populated a number of additional rows. The <code>numRows</code> parameter4709* ensures that this event will only be fired every <code>numRow</code>.4710* <p>4711* The source of the event can be retrieved with the method event.getSource.4712*4713* @param event a <code>RowSetEvent</code> object that contains the4714* <code>RowSet</code> object that is the source of the events4715* @param numRows when populating, the number of rows interval on which the4716* <code>CachedRowSet</code> populated should fire; the default value4717* is zero; cannot be less than <code>fetchSize</code> or zero4718*/4719public void rowSetPopulated(RowSetEvent event, int numRows) throws SQLException {4720throw new UnsupportedOperationException();4721}47224723/**4724* Populates this <code>CachedRowSet</code> object with data from4725* the given <code>ResultSet</code> object. While related to the <code>populate(ResultSet)</code>4726* method, an additional parameter is provided to allow starting position within4727* the <code>ResultSet</code> from where to populate the CachedRowSet4728* instance.4729*4730* This method is an alternative to the method <code>execute</code>4731* for filling the rowset with data. The method <code>populate</code>4732* does not require that the properties needed by the method4733* <code>execute</code>, such as the <code>command</code> property,4734* be set. This is true because the method <code>populate</code>4735* is given the <code>ResultSet</code> object from4736* which to get data and thus does not need to use the properties4737* required for setting up a connection and executing this4738* <code>CachedRowSetImpl</code> object's command.4739* <P>4740* After populating this rowset with data, the method4741* <code>populate</code> sets the rowset's metadata and4742* then sends a <code>RowSetChangedEvent</code> object4743* to all registered listeners prior to returning.4744*4745* @param data the <code>ResultSet</code> object containing the data4746* to be read into this <code>CachedRowSetImpl</code> object4747* @param start the integer specifing the position in the4748* <code>ResultSet</code> object to popultate the4749* <code>CachedRowSetImpl</code> object.4750* @throws SQLException if an error occurs; or the max row setting is4751* violated while populating the RowSet.Also id the start position4752* is negative.4753* @see #execute4754*/4755public void populate(ResultSet data, int start) throws SQLException{4756throw new UnsupportedOperationException();47574758}47594760/**4761* The nextPage gets the next page, that is a <code>CachedRowSetImpl</code> object4762* containing the number of rows specified by page size.4763* @return boolean value true indicating whether there are more pages to come and4764* false indicating that this is the last page.4765* @throws SQLException if an error occurs or this called before calling populate.4766*/4767public boolean nextPage() throws SQLException {4768throw new UnsupportedOperationException();4769}47704771/**4772* This is the setter function for setting the size of the page, which specifies4773* how many rows have to be retrived at a time.4774*4775* @param size which is the page size4776* @throws SQLException if size is less than zero or greater than max rows.4777*/4778public void setPageSize (int size) throws SQLException {4779throw new UnsupportedOperationException();4780}47814782/**4783* This is the getter function for the size of the page.4784*4785* @return an integer that is the page size.4786*/4787public int getPageSize() {4788throw new UnsupportedOperationException();4789}479047914792/**4793* Retrieves the data present in the page prior to the page from where it is4794* called.4795* @return boolean value true if it retrieves the previous page, flase if it4796* is on the first page.4797* @throws SQLException if it is called before populate is called or ResultSet4798* is of type <code>ResultSet.TYPE_FORWARD_ONLY</code> or if an error4799* occurs.4800*/4801public boolean previousPage() throws SQLException {4802throw new UnsupportedOperationException();4803}48044805/**4806* Updates the designated column with a character stream value, which will4807* have the specified number of bytes. The driver does the necessary conversion4808* from Java character format to the national character set in the database.4809* It is intended for use when updating NCHAR,NVARCHAR and LONGNVARCHAR columns.4810* The updater methods are used to update column values in the current row or4811* the insert row. The updater methods do not update the underlying database;4812* instead the updateRow or insertRow methods are called to update the database.4813*4814* @param columnIndex - the first column is 1, the second is 2, ...4815* @param x - the new column value4816* @param length - the length of the stream4817* @exception SQLException if a database access error occurs4818* @since 1.64819*/4820public void updateNCharacterStream(int columnIndex,4821java.io.Reader x,4822int length)4823throws SQLException {4824throw new UnsupportedOperationException("Operation not yet supported");4825}48264827/**4828* Updates the designated column with a character stream value, which will4829* have the specified number of bytes. The driver does the necessary conversion4830* from Java character format to the national character set in the database.4831* It is intended for use when updating NCHAR,NVARCHAR and LONGNVARCHAR columns.4832* The updater methods are used to update column values in the current row or4833* the insert row. The updater methods do not update the underlying database;4834* instead the updateRow or insertRow methods are called to update the database.4835*4836* @param columnName - name of the Column4837* @param x - the new column value4838* @param length - the length of the stream4839* @exception SQLException if a database access error occurs4840* @since 1.64841*/4842public void updateNCharacterStream(String columnName,4843java.io.Reader x,4844int length)4845throws SQLException {4846throw new UnsupportedOperationException("Operation not yet supported");4847}48484849/**4850* This method re populates the resBundle4851* during the deserialization process4852*4853*/4854private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {4855// Default state initialization happens here4856ois.defaultReadObject();4857// Initialization of transient Res Bundle happens here .4858try {4859resBundle = JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle();4860} catch(IOException ioe) {4861throw new RuntimeException(ioe);4862}48634864}48654866static final long serialVersionUID = -3345004441725080251L;4867} //end class486848694870