/*
* Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package javax.sql;
import java.sql.*;
The facility that a disconnected RowSet
object calls on
to populate itself with rows of data. A reader (an object implementing the
RowSetReader
interface) may be registered with
a RowSet
object that supports the reader/writer paradigm.
When the RowSet
object's execute
method is
called, it in turn calls the reader's readData
method.
Since: 1.4
/**
* The facility that a disconnected <code>RowSet</code> object calls on
* to populate itself with rows of data. A reader (an object implementing the
* <code>RowSetReader</code> interface) may be registered with
* a <code>RowSet</code> object that supports the reader/writer paradigm.
* When the <code>RowSet</code> object's <code>execute</code> method is
* called, it in turn calls the reader's <code>readData</code> method.
*
* @since 1.4
*/
public interface RowSetReader {
Reads the new contents of the calling RowSet
object.
In order to call this method, a RowSet
object must have implemented the RowSetInternal
interface
and registered this RowSetReader
object as its reader.
The readData
method is invoked internally
by the RowSet.execute
method for rowsets that support the
reader/writer paradigm.
The readData
method adds rows to the caller.
It can be implemented in a wide variety of ways and can even
populate the caller with rows from a nonrelational data source.
In general, a reader may invoke any of the rowset's methods,
with one exception. Calling the method execute
will
cause an SQLException
to be thrown
because execute
may not be called recursively. Also,
when a reader invokes RowSet
methods, no listeners
are notified; that is, no RowSetEvent
objects are
generated and no RowSetListener
methods are invoked.
This is true because listeners are already being notified by the method
execute
.
Params: - caller – the
RowSet
object (1) that has implemented the
RowSetInternal
interface, (2) with which this reader is
registered, and (3) whose execute
method called this reader
Throws: - SQLException – if a database access error occurs or this method
invokes the
RowSet.execute
method
/**
* Reads the new contents of the calling <code>RowSet</code> object.
* In order to call this method, a <code>RowSet</code>
* object must have implemented the <code>RowSetInternal</code> interface
* and registered this <code>RowSetReader</code> object as its reader.
* The <code>readData</code> method is invoked internally
* by the <code>RowSet.execute</code> method for rowsets that support the
* reader/writer paradigm.
*
* <P>The <code>readData</code> method adds rows to the caller.
* It can be implemented in a wide variety of ways and can even
* populate the caller with rows from a nonrelational data source.
* In general, a reader may invoke any of the rowset's methods,
* with one exception. Calling the method <code>execute</code> will
* cause an <code>SQLException</code> to be thrown
* because <code>execute</code> may not be called recursively. Also,
* when a reader invokes <code>RowSet</code> methods, no listeners
* are notified; that is, no <code>RowSetEvent</code> objects are
* generated and no <code>RowSetListener</code> methods are invoked.
* This is true because listeners are already being notified by the method
* <code>execute</code>.
*
* @param caller the <code>RowSet</code> object (1) that has implemented the
* <code>RowSetInternal</code> interface, (2) with which this reader is
* registered, and (3) whose <code>execute</code> method called this reader
* @exception SQLException if a database access error occurs or this method
* invokes the <code>RowSet.execute</code> method
*/
void readData(RowSetInternal caller) throws SQLException;
}