Package org.firebirdsql.gds.ng

## Interface FbBatchConfig

- All Known Implementing Classes:
    `FbBatchConfig.Immutable`

      public interface FbBatchConfig

  Configuration for a Firebird 4+ batch.
  Since:
    5
  Author:
    Mark Rotteveel

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `FbBatchConfig.Immutable` | Class to provide an immutable copy of a batch config.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static boolean` | `CONTINUE_ON_ERROR` | `multiError()` value to signal to continue execution on errors.
    `static boolean` | `HALT_AT_FIRST_ERROR` | `multiError()` value to signal to halt execution at first error.
    `static boolean` | `NO_UPDATE_COUNTS` | `updateCounts()` value to signal to no supply update counts.
    `static int` | `SERVER_DEFAULT_BUFFER_SIZE` | `batchBufferSize()` value to signal to use server default batch buffer size.
    `static int` | `SERVER_DEFAULT_DETAILED_ERRORS` | `detailedErrors()` value to signal to use server default detailed errors.
    `static int` | `SERVER_MAXIMUM_BUFFER_SIZE` | `batchBufferSize()` value to signal to use server maximum batch buffer size.
    `static boolean` | `UPDATE_COUNTS` | `updateCounts()` value to signal to supply update counts.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `batchBufferSize()` | Server-side batch buffer size in bytes.
    `int` | `detailedErrors()` | Number of detailed errors to return.
    `default FbBatchConfig` | `immutable()` |
    `boolean` | `multiError()` | Multi-error behaviour.
    `static FbBatchConfig` | `of​(boolean multiError, boolean updateCounts, int detailedErrors, int batchBufferSize)` | Creates an immutable batch config.
    `default void` | `populateBatchParameterBuffer​(BatchParameterBuffer batchPb)` | Populates the provided batch parameter buffer with the configuration.
    `boolean` | `updateCounts()` | Report update counts per element (called "record counts" in Firebird).

- - ### Field Detail

    - #### CONTINUE_ON_ERROR

          static final boolean CONTINUE_ON_ERROR

      `multiError()` value to signal to continue execution on errors.
      See Also:
        Constant Field Values

    - #### HALT_AT_FIRST_ERROR

          static final boolean HALT_AT_FIRST_ERROR

      `multiError()` value to signal to halt execution at first error.
      See Also:
        Constant Field Values

    - #### UPDATE_COUNTS

          static final boolean UPDATE_COUNTS

      `updateCounts()` value to signal to supply update counts.
      See Also:
        Constant Field Values

    - #### NO_UPDATE_COUNTS

          static final boolean NO_UPDATE_COUNTS

      `updateCounts()` value to signal to no supply update counts.
      See Also:
        Constant Field Values

    - #### SERVER_DEFAULT_DETAILED_ERRORS

          static final int SERVER_DEFAULT_DETAILED_ERRORS

      `detailedErrors()` value to signal to use server default detailed errors.

      NOTE: all negative values signal this. If you want to use this to check against a value, use `<= SERVER_DEFAULT_DETAILED_ERRORS`.

      See Also:
        Constant Field Values

    - #### SERVER_MAXIMUM_BUFFER_SIZE

          static final int SERVER_MAXIMUM_BUFFER_SIZE

      `batchBufferSize()` value to signal to use server maximum batch buffer size.
      See Also:
        Constant Field Values

    - #### SERVER_DEFAULT_BUFFER_SIZE

          static final int SERVER_DEFAULT_BUFFER_SIZE

      `batchBufferSize()` value to signal to use server default batch buffer size.

      NOTE: all negative values signal this. If you want to use this constant to check against a value, use `<= SERVER_DEFAULT_BUFFER_SIZE`.

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### multiError

          boolean multiError()

      Multi-error behaviour.
      Returns:
        `true` request multi-error (continue on failure), or `false` to halt execution on first error

    - #### updateCounts

          boolean updateCounts()

      Report update counts per element (called "record counts" in Firebird).
      Returns:
        `true` report update counts, `false` do not report update counts

    - #### detailedErrors

          int detailedErrors()

      Number of detailed errors to return.

      A value of `0` disables detailed errors. When a value `< 0` is returned, the server-side default is used (`64 as of Firebird 4`). Requesting detailed errors exceeding the maximum (256 as of Firebird 4) will be silently set to the server maximum.

      Returns:
        number of detailed errors, `0` to disable detailed errors, `< 0` for server default

    - #### batchBufferSize

          int batchBufferSize()

      Server-side batch buffer size in bytes.

      When a value `< 0` is returned, the server-side default (16MB as of Firebird 4) will be used. When a value of `0` is returned , the server-side maximum will be used. Requesting buffer sizes exceeding the maximum (256MB as of Firebird 4) will be silently set to the server maximum.

      Returns:
        maximum batch buffer size, return `< 0` to use server-side default (16MB as of Firebird 4), `0` for the server-side maximum (256MB as of Firebird 4)

    - #### immutable

          default FbBatchConfig immutable()

      Returns:
        immutable, frozen copy of this batch config

    - #### of

          static FbBatchConfig of​(boolean multiError,
                                  boolean updateCounts,
                                  int detailedErrors,
                                  int batchBufferSize)

      Creates an immutable batch config.
      Returns:
        an immutable batch config with the specified configuration

    - #### populateBatchParameterBuffer

          default void populateBatchParameterBuffer​(BatchParameterBuffer batchPb)

      Populates the provided batch parameter buffer with the configuration.

      This method will remove previously set items which are managed by this method. Items not managed by this method are untouched. At minimum this method manages items `TAG_MULTIERROR`, `TAG_RECORD_COUNTS`, `TAG_DETAILED_ERRORS`, and `TAG_BUFFER_BYTES_SIZE`.

      Parameters:
        `batchPb` - batch parameter buffer to populate.