Package org.firebirdsql.gds.ng.fields
Interface BlrCalculator
-
- All Known Implementing Classes:
DefaultBlrCalculator
public interface BlrCalculatorInterface 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.intcalculateIoLength(FieldDescriptor fieldDescriptor)Calculates the io length for the field descriptor.intcalculateIoLength(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 theRowDescriptorcontains 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 theRowValuecontains 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_TEXTthe 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
-
-