Package db

Class DBRecord

  • All Implemented Interfaces:
    java.lang.Comparable<DBRecord>
    Direct Known Subclasses:
    SparseRecord

    public class DBRecord
    extends java.lang.Object
    implements java.lang.Comparable<DBRecord>
    Record provides a portable container for data associated with a fixed schema. A record instance contains both a primary key and zero or more data fields.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compareFieldTo​(int columnIndex, Field value)
      Compare two field values.
      int compareTo​(DBRecord otherRec)
      Compares the key associated with this record with the key of another record (obj).
      DBRecord copy()
      Obtain a copy of this record object.
      boolean equals​(java.lang.Object obj)
      Compare the content of two Records for equality.
      boolean fieldEquals​(int columnIndex, Field field)
      Determine if the specified field equals the field associated with the specified columnIndex.
      byte[] getBinaryData​(int colIndex)
      Get the binary data array for the specified field.
      boolean getBooleanValue​(int colIndex)
      Get the boolean value for the specified field.
      byte getByteValue​(int colIndex)
      Get the byte value for the specified field.
      int getColumnCount()
      Get the number of columns contained within this record.
      Field getFieldValue​(int columnIndex)
      Get a copy of the specified field value.
      int getIntValue​(int colIndex)
      Get the integer value for the specified field.
      long getKey()
      Get the record primary key.
      Field getKeyField()
      Get the record primary key as a Field object.
      long getLongValue​(int colIndex)
      Get the long value for the specified field.
      short getShortValue​(int colIndex)
      Get the short value for the specified field.
      java.lang.String getString​(int colIndex)
      Get the string value for the specified field.
      int hashCode()  
      boolean hasSameSchema​(DBRecord otherRec)
      Determine if this record's schema is the same as another record's schema.
      boolean hasSameSchema​(Schema otherSchema)
      Determine if this record's schema is compatible with the specified schema.
      protected void invalidateLength()  
      boolean isDirty()
      Determine if data fields have been modified since the last write occurred.
      int length()
      Get the stored record length.
      void read​(Buffer buf, int offset)
      Read the record field data from the specified buffer and offset
      void setBinaryData​(int colIndex, byte[] bytes)
      Set the binary data array for the specified field.
      void setBooleanValue​(int colIndex, boolean value)
      Set the boolean value for the specified field.
      void setByteValue​(int colIndex, byte value)
      Set the byte value for the specified field.
      void setField​(int colIndex, Field value)
      Set the field value for the specified field.
      void setIntValue​(int colIndex, int value)
      Set the integer value for the specified field.
      void setKey​(long key)
      Set the primary key associated with this record.
      void setKey​(Field key)
      Set the primary key associated with this record.
      void setLongValue​(int colIndex, long value)
      Set the long value for the specified field.
      void setShortValue​(int colIndex, short value)
      Set the short value for the specified field.
      void setString​(int colIndex, java.lang.String str)
      Set the string value for the specified field.
      java.lang.String toString()  
      void write​(Buffer buf, int offset)
      Write the record fields to the specified buffer and offset.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Method Detail

      • invalidateLength

        protected void invalidateLength()
      • setKey

        public void setKey​(long key)
        Set the primary key associated with this record.
        Parameters:
        key - primary key
      • setKey

        public void setKey​(Field key)
        Set the primary key associated with this record.
        Parameters:
        key - primary key
      • getKey

        public long getKey()
        Get the record primary key.
        Returns:
        primary key as long value.
      • getKeyField

        public Field getKeyField()
        Get the record primary key as a Field object.
        Returns:
        primary key as a field object.
      • hasSameSchema

        public boolean hasSameSchema​(DBRecord otherRec)
        Determine if this record's schema is the same as another record's schema. This check factors column count and column field types only.
        Parameters:
        otherRec - another record
        Returns:
        true if records schemas are the same
      • hasSameSchema

        public boolean hasSameSchema​(Schema otherSchema)
        Determine if this record's schema is compatible with the specified schema. This check factors column count and column field types only. Index and sparse column checks are not performed.
        Parameters:
        otherSchema - other schema
        Returns:
        true if records schemas are the same
      • getColumnCount

        public int getColumnCount()
        Get the number of columns contained within this record.
        Returns:
        number of field columns.
      • getFieldValue

        public Field getFieldValue​(int columnIndex)
        Get a copy of the specified field value.
        Parameters:
        columnIndex - field index
        Returns:
        Field field value
      • setField

        public void setField​(int colIndex,
                             Field value)
        Set the field value for the specified field.
        Parameters:
        colIndex - field index
        value - field value (null permitted for sparse column only)
      • fieldEquals

        public boolean fieldEquals​(int columnIndex,
                                   Field field)
        Determine if the specified field equals the field associated with the specified columnIndex.
        Parameters:
        columnIndex - field index
        field - field value to compare with
        Returns:
        true if the fields are equal, else false.
      • compareFieldTo

        public int compareFieldTo​(int columnIndex,
                                  Field value)
        Compare two field values.
        Parameters:
        columnIndex - the field index within this record
        value - another field value to compared
        Returns:
        0 if equals, a negative number if this record's field is less than the specified value, or a positive number if this record's field is greater than the specified value.
      • copy

        public DBRecord copy()
        Obtain a copy of this record object.
        Returns:
        Record
      • length

        public final int length()
        Get the stored record length. This method is used to determine the space required to store the data fields within this record when written to a standard Buffer.
        Returns:
        int stored record length
      • getLongValue

        public long getLongValue​(int colIndex)
        Get the long value for the specified field.
        Parameters:
        colIndex - field index
        Returns:
        field value
        Throws:
        IllegalFieldAccessException - if field does support long data access
      • setLongValue

        public void setLongValue​(int colIndex,
                                 long value)
        Set the long value for the specified field.
        Parameters:
        colIndex - field index
        value - field value
        Throws:
        IllegalFieldAccessException - if field does support long data access
      • getIntValue

        public int getIntValue​(int colIndex)
        Get the integer value for the specified field.
        Parameters:
        colIndex - field index
        Returns:
        field value
        Throws:
        IllegalFieldAccessException - if field does support integer data access
      • setIntValue

        public void setIntValue​(int colIndex,
                                int value)
        Set the integer value for the specified field.
        Parameters:
        colIndex - field index
        value - field value
        Throws:
        IllegalFieldAccessException - if field does support integer data access
      • getShortValue

        public short getShortValue​(int colIndex)
        Get the short value for the specified field.
        Parameters:
        colIndex - field index
        Returns:
        field value
        Throws:
        IllegalFieldAccessException - if field does support short data access
      • setShortValue

        public void setShortValue​(int colIndex,
                                  short value)
        Set the short value for the specified field.
        Parameters:
        colIndex - field index
        value - field value
        Throws:
        IllegalFieldAccessException - if field does support short data access
      • getByteValue

        public byte getByteValue​(int colIndex)
        Get the byte value for the specified field.
        Parameters:
        colIndex - field index
        Returns:
        field value
        Throws:
        IllegalFieldAccessException - if field does support byte data access
      • setByteValue

        public void setByteValue​(int colIndex,
                                 byte value)
        Set the byte value for the specified field.
        Parameters:
        colIndex - field index
        value - field value
        Throws:
        IllegalFieldAccessException - if field does support byte data access
      • getBooleanValue

        public boolean getBooleanValue​(int colIndex)
        Get the boolean value for the specified field.
        Parameters:
        colIndex - field index
        Returns:
        field value
        Throws:
        IllegalFieldAccessException - if field does support boolean data access
      • setBooleanValue

        public void setBooleanValue​(int colIndex,
                                    boolean value)
        Set the boolean value for the specified field.
        Parameters:
        colIndex - field index
        value - field value
        Throws:
        IllegalFieldAccessException - if field does support boolean data access
      • getBinaryData

        public byte[] getBinaryData​(int colIndex)
        Get the binary data array for the specified field.
        Parameters:
        colIndex - field index
        Returns:
        field data
        Throws:
        IllegalFieldAccessException - if field does support binary data access
      • setBinaryData

        public void setBinaryData​(int colIndex,
                                  byte[] bytes)
        Set the binary data array for the specified field.
        Parameters:
        colIndex - field index
        bytes - field value
        Throws:
        IllegalFieldAccessException - if field does support binary data access or incorrect number of bytes provided
      • getString

        public java.lang.String getString​(int colIndex)
        Get the string value for the specified field.
        Parameters:
        colIndex - field index
        Returns:
        field data
        Throws:
        IllegalFieldAccessException - if field does support string data access
      • setString

        public void setString​(int colIndex,
                              java.lang.String str)
        Set the string value for the specified field.
        Parameters:
        colIndex - field index
        str - field value
        Throws:
        IllegalFieldAccessException - if field does support string data access
      • write

        public void write​(Buffer buf,
                          int offset)
                   throws java.io.IOException
        Write the record fields to the specified buffer and offset.
        Parameters:
        buf - data buffer
        offset - buffer offset
        Throws:
        java.io.IOException - thrown if IO error occurs
      • read

        public void read​(Buffer buf,
                         int offset)
                  throws java.io.IOException
        Read the record field data from the specified buffer and offset
        Parameters:
        buf - data buffer
        offset - buffer offset
        Throws:
        java.io.IOException - thrown if IO error occurs
      • isDirty

        public boolean isDirty()
        Determine if data fields have been modified since the last write occurred.
        Returns:
        true if the field data has not been saved, else false.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Compare the content of two Records for equality.
        Overrides:
        equals in class java.lang.Object
        See Also:
        Object.equals(java.lang.Object)
      • compareTo

        public int compareTo​(DBRecord otherRec)
        Compares the key associated with this record with the key of another record (obj).
        Specified by:
        compareTo in interface java.lang.Comparable<DBRecord>
        See Also:
        Comparable.compareTo(java.lang.Object)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object