Class RowValueBuilder

java.lang.Object
org.firebirdsql.gds.ng.fields.RowValueBuilder

public class RowValueBuilder extends 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:
  • Constructor Details

    • RowValueBuilder

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

    • 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:
      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:
    • set

      public RowValueBuilder set(byte[] fieldData)
      Sets the field data of the current field.
      Parameters:
      fieldData - Data
      Returns:
      this builder
    • get

      public byte[] get(int index)
      Retrieves the field data set at the specified index.
      Parameters:
      index - Index
      Returns:
      The field data
      Throws:
      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: