Package org.firebirdsql.gds.ng.fields
Interface BlrCalculator
-
- All Known Implementing Classes:
DefaultBlrCalculator
public interface BlrCalculator
Interface for calculating the blr (binary language representation) of a row.- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description byte[]
calculateBlr(RowDescriptor rowDescriptor)
Calculates the blr for the row descriptor.byte[]
calculateBlr(RowDescriptor rowDescriptor, RowValue rowValue)
Calculates the blr for a specific row value.int
calculateIoLength(FieldDescriptor fieldDescriptor)
Calculates the io length for the field descriptor.int
calculateIoLength(FieldDescriptor fieldDescriptor, byte[] fieldData)
Calculates the io length for the field descriptor and actual data.
-
-
-
Method Detail
-
calculateBlr
byte[] calculateBlr(RowDescriptor rowDescriptor) throws java.sql.SQLException
Calculates the blr for the row descriptor.- Parameters:
rowDescriptor
- Row descriptor- Returns:
- Byte array with the blr
- Throws:
java.sql.SQLException
- When theRowDescriptor
contains an unsupported field type.
-
calculateBlr
byte[] calculateBlr(RowDescriptor rowDescriptor, RowValue rowValue) throws java.sql.SQLException
Calculates the blr for a specific row value.This allows to optimize for the actual length of the field.
- Parameters:
rowDescriptor
- Row descriptorrowValue
- Row value- Returns:
- Byte array with the blr
- Throws:
java.sql.SQLException
- When theRowValue
contains an unsupported field type.
-
calculateIoLength
int calculateIoLength(FieldDescriptor fieldDescriptor) throws java.sql.SQLException
Calculates the io length for the field descriptor.The return value indicates the length and padding of the type in the buffer
- < 0 : Type is of specified length * -1 and not padded
- == 0 : Type is of dynamic length (which is specified in the buffer as an integer) and padded
- > 0 : Type is of specified length minus 1 (subtracting 1 is required to avoid 0 for types of zero length) and padded
- Parameters:
fieldDescriptor
- Field descriptor- Returns:
- The io length
- Throws:
java.sql.SQLException
-
calculateIoLength
int calculateIoLength(FieldDescriptor fieldDescriptor, byte[] fieldData) throws java.sql.SQLException
Calculates the io length for the field descriptor and actual data.The return value indicates the length and padding of the type in the buffer
- < 0 : Type is of specified length * -1 and not padded
- == 0 : Type is of dynamic length (which is specified in the buffer as an integer) and padded
- > 0 : Type is of specified length minus 1 (subtracting 1 is required to avoid 0 for types of zero length) nd padded
This allows to optimize for the actual length of the field.
For
CHAR
(ISCConstants.SQL_TEXT
the implementation should be consistent with the lengths as given bycalculateBlr(RowDescriptor, RowValue)
.- Parameters:
fieldDescriptor
- Field descriptorfieldData
- byte array (can benull
) with field data.- Returns:
- The io length
- Throws:
java.sql.SQLException
- Since:
- 4.0
-
-