Package 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 | Description
    --- | ---
    `RowValueBuilder​(RowDescriptor rowDescriptor)` | Creates instance of RowValueBuilder.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | 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​(short value)` | Sets the field data by encoding the provided `short`.
    `RowValueBuilder` | `setShort​(java.lang.Number value)` | Sets the field data by encoding the provided `Number` as a `short` or `null`.
    `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()`