Package org.firebirdsql.gds.ng.listeners

## Interface StatementListener

- All Known Implementing Classes:
    `DefaultStatementListener`, `StatementListenerDispatcher`

      public interface StatementListener

  Listener interface for receiving rows and related information as retrieved by an `FbStatement.fetchRows(int)`, or `FbStatement.execute(RowValue)` with a singleton result.
  Since:
    3.0
  Author:
    Mark Rotteveel

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `allRowsFetched​(FbStatement sender)` | Method to be notified when all rows have been fetched.
    `void` | `receivedRow​(FbStatement sender, RowValue rowValue)` | Method to be notified of a new row of data.
    `void` | `sqlCounts​(FbStatement sender, SqlCountHolder sqlCounts)` | Called when the SQL counts of a statement have been retrieved.
    `void` | `statementExecuted​(FbStatement sender, boolean hasResultSet, boolean hasSingletonResult)` | Method to be notified when a statement has been executed.
    `void` | `statementStateChanged​(FbStatement sender, StatementState newState, StatementState previousState)` | Method to be notified when the state of a statement has changed.
    `void` | `warningReceived​(FbStatement sender, java.sql.SQLWarning warning)` | Called when a warning was received for the `sender` statement.

- - ### Method Detail

    - #### receivedRow

          void receivedRow​(FbStatement sender,
                           RowValue rowValue)

      Method to be notified of a new row of data.
      Parameters:
        `sender` - The `FbStatement` that called this method.
        `rowValue` - The row values.

    - #### allRowsFetched

          void allRowsFetched​(FbStatement sender)

      Method to be notified when all rows have been fetched.

      This method may also be called when the statement did not produce any rows (or did not open a result set).

      Parameters:
        `sender` - The `FbStatement` that called this method.
      See Also:
        `statementExecuted(FbStatement, boolean, boolean)`

    - #### statementExecuted

          void statementExecuted​(FbStatement sender,
                                 boolean hasResultSet,
                                 boolean hasSingletonResult)

      Method to be notified when a statement has been executed.

      This event with `hasResultSet=true` can be seen as the counter part of `allRowsFetched(FbStatement)`.

      Parameters:
        `sender` - The `FbStatement` that called this method.
        `hasResultSet` - `true` there is a result set, `false` there is no result set
        `hasSingletonResult` - `true` singleton result, `false` statement will produce indeterminate number of rows; can be ignored when `hasResultSet` is false.

    - #### statementStateChanged

          void statementStateChanged​(FbStatement sender,
                                     StatementState newState,
                                     StatementState previousState)

      Method to be notified when the state of a statement has changed.
      Parameters:
        `sender` - The `FbStatement` that called this method.
        `newState` - The new state of the statement
        `previousState` - The old state of the statement

    - #### warningReceived

          void warningReceived​(FbStatement sender,
                               java.sql.SQLWarning warning)

      Called when a warning was received for the `sender` statement.
      Parameters:
        `sender` - Statement receiving the warning
        `warning` - Warning

    - #### sqlCounts

          void sqlCounts​(FbStatement sender,
                         SqlCountHolder sqlCounts)

      Called when the SQL counts of a statement have been retrieved.
      Parameters:
        `sender` - Statement that called this method
        `sqlCounts` - SQL counts