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.

  All listener methods have a default implementation that does nothing.

  Since:
    3.0
  Author:
    Mark Rotteveel

- - ### Method Summary

    All Methods Instance Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default void` | `afterLast​(FbStatement sender)` | Method to be notified when the cursor of a statement is positioned after the last row.
    `default void` | `beforeFirst​(FbStatement sender)` | Method to be notified when the cursor of a statement is positioned before the first row.
    `default void` | `receivedRow​(FbStatement sender, RowValue rowValue)` | Method to be notified of a new row of data.
    `default void` | `sqlCounts​(FbStatement sender, SqlCountHolder sqlCounts)` | Called when the SQL counts of a statement have been retrieved.
    `default void` | `statementExecuted​(FbStatement sender, boolean hasResultSet, boolean hasSingletonResult)` | Method to be notified when a statement has been executed.
    `default void` | `statementStateChanged​(FbStatement sender, StatementState newState, StatementState previousState)` | Method to be notified when the state of a statement has changed.
    `default void` | `warningReceived​(FbStatement sender, java.sql.SQLWarning warning)` | Called when a warning was received for the `sender` statement.

- - ### Method Detail

    - #### receivedRow

          default void receivedRow​(FbStatement sender,
                                   RowValue rowValue)

      Method to be notified of a new row of data.

      Listeners that process `beforeFirst(FbStatement)` and/or `afterLast(FbStatement)` should consider calls to this method to clear the before-first or after-last state to an

    - in-cursor
    state.

Parameters:
  `sender` - The `FbStatement`that called this method.
  `rowValue` - The row values.

- #### beforeFirst

      default void beforeFirst​(FbStatement sender)

  Method to be notified when the cursor of a statement is positioned before the first row.

  When server-side scrolling is used, this method can be called multiple times during the lifetime of a single open cursor. This method may be called even if the cursor is already before-first.

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

- #### afterLast

      default void afterLast​(FbStatement sender)

  Method to be notified when the cursor of a statement is positioned after the last row.

  When server-side scrolling is used, this method might be called multiple times during the lifetime of a single open cursor. This method may be called even if the cursor is already after-last.

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

- #### statementExecuted

      default 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 a counterpart of `afterLast(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

      default 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

      default 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

      default 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