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 SummaryAll Methods Instance Methods Abstract Methods Modifier and Type Method Description intcalculateBatchMessageLength(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.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- 
calculateBlrbyte[] 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 the- RowDescriptorcontains an unsupported field type.
 
 - 
calculateBlrbyte[] 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 descriptor
- rowValue- Row value
- Returns:
- Byte array with the blr
- Throws:
- java.sql.SQLException- When the- RowValuecontains an unsupported field type.
 
 - 
calculateIoLengthint 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
 
 - 
calculateIoLengthint 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) and 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 bycalculateIoLength(FieldDescriptor).- Parameters:
- fieldDescriptor- Field descriptor
- fieldData- byte array (can be- null) with field data.
- Returns:
- The io length
- Throws:
- java.sql.SQLException
- Since:
- 4.0
 
 - 
calculateBatchMessageLengthint calculateBatchMessageLength(RowDescriptor rowDescriptor) throws java.sql.SQLException Calculates the batch message length.- Parameters:
- rowDescriptor- row descriptor
- Returns:
- batch message length
- Throws:
- java.sql.SQLException- when the- RowDescriptorcontains an unsupported field type.
- Since:
- 5
 
 
- 
 
-