Class RowValue

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

public final class RowValue extends Object
Collection of values of fields. Usually a row or set of parameters.
Since:
3.0
Author:
Mark Rotteveel
  • Field Details

    • EMPTY_ROW_VALUE

      public static final RowValue EMPTY_ROW_VALUE
  • Method Details

    • getCount

      public int getCount()
      Returns:
      The number of fields.
    • setFieldData

      public void setFieldData(int index, byte[] data)
      Sets the data of the field with index.
      Parameters:
      index - Index of the field
      data - byte array with data for field, or null
      Throws:
      IndexOutOfBoundsException - if index is not 0 <= index > getCount()
    • getFieldData

      public byte[] getFieldData(int index)
      Get the data of the field with index.

      For uninitialized fields, returns null. To distinguish between uninitialized or initialized with null, use isInitialized(int).

      Parameters:
      index - Index of the field
      Returns:
      byte array with data for field, or null
      Throws:
      IndexOutOfBoundsException - if index is not 0 <= index > getCount()
    • reset

      public void reset()
      Resets the state of this row value to uninitialized.
    • isInitialized

      public boolean isInitialized(int index)
      Is the field with index initialized.
      Parameters:
      index - Index of the field
      Returns:
      true if the field is initialized
      Throws:
      IndexOutOfBoundsException - if index is not 0 <= index > getCount()
    • defaultFor

      public static RowValue defaultFor(RowDescriptor rowDescriptor)
      Convenience method for creating a default, uninitialized, row value for a RowDescriptor.
      Parameters:
      rowDescriptor - The row descriptor
      Returns:
      RowValue object
    • of

      public static RowValue of(RowDescriptor rowDescriptor, byte[]... rowData)
      Convenience method for populating a row value from a RowDescriptor and byte arrays.

      Note this method, and the similar RowValueBuilder are mainly intended for use in FBDatabaseMetaData.

      Compared to of(byte[][]), this method has the advantage that it checks if the number of byte arrays is consistent with the row descriptor.

      Parameters:
      rowDescriptor - The row descriptor
      rowData - An array of byte arrays with the field data.
      Returns:
      new RowValue object
      Throws:
      IllegalArgumentException - If the rowData byte array count does not match field count of the row descriptor
      See Also:
    • of

      public static RowValue of(byte[]... rowData)
      Convenience method for populating a row value from byte arrays.

      This method is mainly intended for use with direct manipulation in the low-level gds-ng API.

      Parameters:
      rowData - An array of byte arrays with the field data.
      Returns:
      new RowValue object
      See Also:
    • deepCopy

      public RowValue deepCopy()
      Copies this RowValue and the values it contains.

      As the field values are mutable, it is important to consider whether you need to be able to see modifications to the field data, or if you need fields with the same original data. If the former, pass the original, if the latter use this method to obtain a copy.

      Returns:
      Copy of this object with cloned field values, for empty rows (count is 0) EMPTY_ROW_VALUE.