/*
 * Copyright (c) 2000, 2020, 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} object calls on * to populate itself with rows of data. A reader (an object implementing the * {@code RowSetReader} interface) may be registered with * a {@code RowSet} object that supports the reader/writer paradigm. * When the {@code RowSet} object's {@code execute} method is * called, it in turn calls the reader's {@code readData} 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} object. * In order to call this method, a {@code RowSet} * object must have implemented the {@code RowSetInternal} interface * and registered this {@code RowSetReader} object as its reader. * The {@code readData} method is invoked internally * by the {@code RowSet.execute} method for rowsets that support the * reader/writer paradigm. * * <P>The {@code 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 {@code execute} will * cause an {@code SQLException} to be thrown * because {@code execute} may not be called recursively. Also, * when a reader invokes {@code RowSet} methods, no listeners * are notified; that is, no {@code RowSetEvent} objects are * generated and no {@code RowSetListener} methods are invoked. * This is true because listeners are already being notified by the method * {@code execute}. * * @param caller the {@code RowSet} object (1) that has implemented the * {@code RowSetInternal} interface, (2) with which this reader is * registered, and (3) whose {@code execute} method called this reader * @throws SQLException if a database access error occurs or this method * invokes the {@code RowSet.execute} method */
void readData(RowSetInternal caller) throws SQLException; }