org.firebirdsql.jdbc.metadata

## Class RowValueBuilder

- java.lang.Object
- - org.firebirdsql.jdbc.metadata.RowValueBuilder

-     public final class RowValueBuilder
      extends java.lang.Object

  Builder for `RowValue` instances.

  This class allows for sparse population of column values (ie: `null` values can be skipped). It is intended for use in tests and classes like `FBDatabaseMetaData`.

  The main advantage over `RowValue.of(RowDescriptor, byte[][])` is that it is clearer to which field the value is assigned, and it allows for sparse population (ie: skipping `null` values).

  Author:
    Mark Rotteveel
  See Also:
    `RowValue.of(RowDescriptor, byte[][])`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RowValueBuilder(RowDescriptor rowDescriptor)` Creates instance of RowValueBuilder.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `RowValueBuilder` | `at(int index)` Convenience shortcut for `setFieldIndex(int)`.
    `byte[]` | `get(int index)` Retrieves the field data set at the specified index.
    `int` | `getSize()`
    `RowValueBuilder` | `reset()` Resets this builder to a new RowValue.
    `RowValueBuilder` | `set(byte[] fieldData)` Sets the field data of the current field.
    `RowValueBuilder` | `setFieldIndex(int index)` Sets the index of the current field to populate.
    `RowValueBuilder` | `setInt(int value)` Sets the field data by encoding the provided `int`.
    `RowValueBuilder` | `setInt(java.lang.Number value)` Sets the field data by encoding the provided `Number` or `null`.
    `RowValueBuilder` | `setShort(int value)` Sets the field data by encoding the provided `int` as a `short`.
    `RowValueBuilder` | `setShort(java.lang.Number value)` Sets the field data by encoding the provided `Number` as a `short` or `null`.
    `RowValueBuilder` | `setShort(short value)` Sets the field data by encoding the provided `short`.
    `RowValueBuilder` | `setString(java.lang.String value)` Sets the field data by encoding the provided `String`.
    `RowValue` | `toRowValue(boolean initialize)` Returns the populated `RowValue` and resets the RowValueBuilder.

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

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

- - ### Constructor Detail

    - #### RowValueBuilder

          public RowValueBuilder(RowDescriptor rowDescriptor)

      Creates instance of RowValueBuilder.
      Parameters:
        `rowDescriptor` - The RowDescriptor for the row(s) to be created

  - ### Method Detail

    - #### setFieldIndex

          public RowValueBuilder setFieldIndex(int index)

      Sets the index of the current field to populate.
      Parameters:
        `index` - Index of the field
      Returns:
        this builder
      Throws:
        `java.lang.IndexOutOfBoundsException` - When `index` is not between 0 (inclusive) and `getSize()` (exclusive)

    - #### at

          public RowValueBuilder at(int index)

      Convenience shortcut for `setFieldIndex(int)`.
      Parameters:
        `index` - Index
      Returns:
        this builder
      See Also:
        `setFieldIndex(int)`

    - #### set

          public RowValueBuilder set(byte[] fieldData)

      Sets the field data of the current field.
      Parameters:
        `fieldData` - Data
      Returns:
        this builder

    - #### setInt

          public RowValueBuilder setInt(int value)

      Sets the field data by encoding the provided `int`.
      Parameters:
        `value` - value
      Returns:
        this builder
      Since:
        5

    - #### setInt

          public RowValueBuilder setInt(java.lang.Number value)

      Sets the field data by encoding the provided `Number` or `null`.
      Parameters:
        `value` - value
      Returns:
        this builder
      Since:
        5

    - #### setShort

          public RowValueBuilder setShort(int value)

      Sets the field data by encoding the provided `int` as a `short`.
      Parameters:
        `value` - value
      Returns:
        this builder
      Since:
        5
      See Also:
        `setShort(short)`

    - #### setShort

          public RowValueBuilder setShort(java.lang.Number value)

      Sets the field data by encoding the provided `Number` as a `short` or `null`.
      Parameters:
        `value` - value
      Returns:
        this builder
      Since:
        5
      See Also:
        `setShort(short)`

    - #### setShort

          public RowValueBuilder setShort(short value)

      Sets the field data by encoding the provided `short`.
      Parameters:
        `value` - value
      Returns:
        this builder
      Since:
        5
      See Also:
        `setShort(int)`

    - #### setString

          public RowValueBuilder setString(java.lang.String value)

      Sets the field data by encoding the provided `String`.
      Parameters:
        `value` - value
      Returns:
        this builder
      Since:
        5

    - #### get

          public byte[] get(int index)

      Retrieves the field data set at the specified index.
      Parameters:
        `index` - Index
      Returns:
        The field data
      Throws:
        `java.lang.IndexOutOfBoundsException` - When @{code index} is not between 0 (inclusive) and `getSize()` (exclusive)

    - #### reset

          public RowValueBuilder reset()

      Resets this builder to a new RowValue. All previous values set are cleared.
      Returns:
        this builder.

    - #### getSize

          public int getSize()

      Returns:
        Number of fields in the row

    - #### toRowValue

          public RowValue toRowValue(boolean initialize)

      Returns the populated `RowValue` and resets the RowValueBuilder.
      Parameters:
        `initialize` - `true` set field data to null for all uninitialized fields, `false` leaves fields uninitialized. In most cases you want to use `true`.
      Returns:
        The row value object
      See Also:
        `reset()`

Copyright © 2001-2025 Jaybird (Firebird JDBC) team. All rights reserved.