# Interface RowSetReader

All Known Subinterfaces:
  `XmlReader`

public interface RowSetReader
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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `readData(RowSetInternal caller)`
  Reads the new contents of the calling `RowSet` object.

- ## Method Details

  - ### readData

    void readData(RowSetInternal caller) throws SQLException
    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`.

    Parameters:
      `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