- 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
Modifier and TypeMethodDescriptionint
calculateBatchMessageLength
(RowDescriptor rowDescriptor) Calculates the batch message length.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 Details
-
calculateBlr
Calculates the blr for the row descriptor.- Parameters:
rowDescriptor
- Row descriptor- Returns:
- Byte array with the blr
- Throws:
SQLException
- When theRowDescriptor
contains an unsupported field type.
-
calculateBlr
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:
SQLException
- When theRowValue
contains an unsupported field type.
-
calculateIoLength
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:
SQLException
-
calculateIoLength
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) and 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 bycalculateIoLength(FieldDescriptor)
.- Parameters:
fieldDescriptor
- Field descriptorfieldData
- byte array (can benull
) with field data.- Returns:
- The io length
- Throws:
SQLException
- Since:
- 4.0
-
calculateBatchMessageLength
Calculates the batch message length.- Parameters:
rowDescriptor
- row descriptor- Returns:
- batch message length
- Throws:
SQLException
- when theRowDescriptor
contains an unsupported field type.- Since:
- 5
-