Package org.firebirdsql.gds.ng.listeners

## Class StatementListenerDispatcher

- java.lang.Object
- - org.firebirdsql.gds.ng.listeners.AbstractListenerDispatcher<StatementListener>
  - - org.firebirdsql.gds.ng.listeners.StatementListenerDispatcher

- All Implemented Interfaces:
    `java.lang.Iterable<StatementListener>`, `StatementListener`

      public final class StatementListenerDispatcher
      extends AbstractListenerDispatcher<StatementListener>
      implements StatementListener

  Dispatcher to maintain and notify other `StatementListener`.
  Since:
    3.0
  Author:
    Mark Rotteveel

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StatementListenerDispatcher()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `afterLast​(FbStatement sender)` | Method to be notified when the cursor of a statement is positioned after the last row.
    `void` | `beforeFirst​(FbStatement sender)` | Method to be notified when the cursor of a statement is positioned before the first row.
    `protected void` | `logError​(java.lang.String message, java.lang.Throwable throwable)` |
    `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.

    - ### Methods inherited from class org.firebirdsql.gds.ng.listeners.AbstractListenerDispatcher

      `addListener, addWeakListener, isShutdown, iterator, notify, removeAllListeners, removeListener, shutdown`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### StatementListenerDispatcher

          public StatementListenerDispatcher()

  - ### Method Detail

    - #### receivedRow

          public void receivedRow​(FbStatement sender,
                                  RowValue rowValue)

      Description copied from interface: `StatementListener`
      Method to be notified of a new row of data.

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

    - in-cursor
    state.

Specified by:
  `receivedRow` in interface `StatementListener`
Parameters:
  `sender` - The `FbStatement`that called this method.
  `rowValue` - The row values.

- #### beforeFirst

      public void beforeFirst​(FbStatement sender)

  Description copied from interface: `StatementListener`
  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.

  Specified by:
    `beforeFirst` in interface `StatementListener`
  Parameters:
    `sender` - The `FbStatement` that called this method.
  See Also:
    `StatementListener.statementExecuted(FbStatement, boolean, boolean)`, `StatementListener.receivedRow(FbStatement, RowValue)`, `StatementListener.afterLast(FbStatement)`

- #### afterLast

      public void afterLast​(FbStatement sender)

  Description copied from interface: `StatementListener`
  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.

  Specified by:
    `afterLast` in interface `StatementListener`
  Parameters:
    `sender` - The `FbStatement` that called this method.
  See Also:
    `StatementListener.statementExecuted(FbStatement, boolean, boolean)`, `StatementListener.receivedRow(FbStatement, RowValue)`, `StatementListener.beforeFirst(FbStatement)`

- #### statementExecuted

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

  Description copied from interface: `StatementListener`
  Method to be notified when a statement has been executed.

  This event with `hasResultSet=true` can be seen as a counterpart of `StatementListener.afterLast(FbStatement)`.

  Specified by:
    `statementExecuted` in interface `StatementListener`
  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

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

  Description copied from interface: `StatementListener`
  Method to be notified when the state of a statement has changed.
  Specified by:
    `statementStateChanged` in interface `StatementListener`
  Parameters:
    `sender` - The `FbStatement` that called this method.
    `newState` - The new state of the statement
    `previousState` - The old state of the statement

- #### warningReceived

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

  Description copied from interface: `StatementListener`
  Called when a warning was received for the `sender` statement.
  Specified by:
    `warningReceived` in interface `StatementListener`
  Parameters:
    `sender` - Statement receiving the warning
    `warning` - Warning

- #### sqlCounts

      public void sqlCounts​(FbStatement sender,
                            SqlCountHolder sqlCounts)

  Description copied from interface: `StatementListener`
  Called when the SQL counts of a statement have been retrieved.
  Specified by:
    `sqlCounts` in interface `StatementListener`
  Parameters:
    `sender` - Statement that called this method
    `sqlCounts` - SQL counts

- #### logError

      protected void logError​(java.lang.String message,
                              java.lang.Throwable throwable)

  Specified by:
    `logError` in class `AbstractListenerDispatcher<StatementListener>`