Package db
Class DBRecord
java.lang.Object
db.DBRecord
- All Implemented Interfaces:
Comparable<DBRecord>
- Direct Known Subclasses:
SparseRecord
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
Modifier and TypeMethodDescriptionint
compareFieldTo
(int columnIndex, Field value) Compare two field values.int
Compares the key associated with this record with the key of another record (obj).copy()
Obtain a copy of this record object.boolean
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
Get the number of columns contained within this record.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.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.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
boolean
isDirty()
Determine if data fields have been modified since the last write occurred.final int
length()
Get the stored record length.void
Read the record field data from the specified buffer and offsetvoid
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
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
Set the primary key associated with this record.void
setLongValue
(int colIndex, long value) Set the long value for the specified field.void
setNull
(int colIndex) Set the field to a null state.void
setShortValue
(int colIndex, short value) Set the short value for the specified field.void
Set the string value for the specified field.toString()
void
Write the record fields to the specified buffer and offset.
-
Method Details
-
invalidateLength
protected void invalidateLength() -
setKey
public void setKey(long key) Set the primary key associated with this record.- Parameters:
key
- primary key
-
setKey
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
Get the record primary key as a Field object.- Returns:
- primary key as a field object.
-
hasSameSchema
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
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
Get a copy of the specified field value.- Parameters:
columnIndex
- field index- Returns:
- Field field value
- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specified
-
setField
Set the field value for the specified field.- Parameters:
colIndex
- field indexvalue
- field value (null permitted for sparse column only)- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalArgumentException
- if value type does not match column field type.
-
fieldEquals
Determine if the specified field equals the field associated with the specified columnIndex.- Parameters:
columnIndex
- field indexfield
- field value to compare with- Returns:
- true if the fields are equal, else false.
- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specified
-
compareFieldTo
Compare two field values.- Parameters:
columnIndex
- the field index within this recordvalue
- 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.
- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specified
-
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:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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 indexvalue
- field value- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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 indexvalue
- field value- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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 indexvalue
- field value- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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 indexvalue
- field value- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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 indexvalue
- field value- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- 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 indexbytes
- field value- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- if field does support binary data access or incorrect number of bytes provided
-
setNull
public void setNull(int colIndex) Set the field to a null state. For a non-sparse fixed-length column field this will set the the value to zero and the null state will not be persisted when stored.- Parameters:
colIndex
- field index- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specified
-
getString
Get the string value for the specified field.- Parameters:
colIndex
- field index- Returns:
- field data
- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- if field does support string data access
-
setString
Set the string value for the specified field.- Parameters:
colIndex
- field indexstr
- field value- Throws:
IndexOutOfBoundsException
- if invalid columnIndex is specifiedIllegalFieldAccessException
- if field does support string data access
-
write
Write the record fields to the specified buffer and offset.- Parameters:
buf
- data bufferoffset
- buffer offset- Throws:
IndexOutOfBoundsException
- if invalid offset is specifiedIOException
- thrown if IO error occurs
-
read
Read the record field data from the specified buffer and offset- Parameters:
buf
- data bufferoffset
- buffer offset- Throws:
IndexOutOfBoundsException
- if invalid offset is specifiedIOException
- 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() -
equals
Compare the content of two Records for equality. -
compareTo
Compares the key associated with this record with the key of another record (obj).- Specified by:
compareTo
in interfaceComparable<DBRecord>
- See Also:
-
toString
-