Class RowValue


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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      RowValue deepCopy()
      Copies this RowValue and the values it contains.
      static RowValue defaultFor​(RowDescriptor rowDescriptor)
      Convenience method for creating a default, uninitialized, row value for a RowDescriptor.
      int getCount()  
      byte[] getFieldData​(int index)
      Get the data of the field with index.
      boolean isInitialized​(int index)
      Is the field with index initialized.
      static RowValue of​(byte[]... rowData)
      Convenience method for populating a row value from byte arrays.
      static RowValue of​(RowDescriptor rowDescriptor, byte[]... rowData)
      Convenience method for populating a row value from a RowDescriptor and byte arrays.
      void reset()
      Resets the state of this row value to uninitialized.
      void setFieldData​(int index, byte[] data)
      Sets the data of the field with index.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EMPTY_ROW_VALUE

        public static final RowValue EMPTY_ROW_VALUE
    • Method Detail

      • 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:
        java.lang.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:
        java.lang.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:
        java.lang.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:
        java.lang.IllegalArgumentException - If the rowData byte array count does not match field count of the row descriptor
        See Also:
        RowValueBuilder
      • 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:
        RowValueBuilder, of(RowDescriptor, byte[][])
      • 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.