Class AbstractFbWireStatement

java.lang.Object
org.firebirdsql.gds.ng.AbstractFbStatement
org.firebirdsql.gds.ng.wire.AbstractFbWireStatement
All Implemented Interfaces:
FbStatement, ExceptionListenable, FbWireStatement
Direct Known Subclasses:
V10Statement

public abstract class AbstractFbWireStatement extends AbstractFbStatement implements FbWireStatement
Since:
3.0
Author:
Mark Rotteveel
  • Constructor Details

    • AbstractFbWireStatement

      public AbstractFbWireStatement(FbWireDatabase database)
  • Method Details

    • getXdrIn

      protected final XdrInputStream getXdrIn() throws SQLException
      Gets the XdrInputStream.
      Returns:
      Instance of XdrInputStream
      Throws:
      SQLException - If no connection is opened or when exceptions occur retrieving the InputStream
    • getXdrOut

      protected final XdrOutputStream getXdrOut() throws SQLException
      Gets the XdrOutputStream.
      Returns:
      Instance of XdrOutputStream
      Throws:
      SQLException - If no connection is opened or when exceptions occur retrieving the OutputStream
    • getDatabase

      public final FbWireDatabase getDatabase()
      Specified by:
      getDatabase in interface FbStatement
      Returns:
      The database connection that created this statement
    • getHandle

      public final int getHandle()
      Specified by:
      getHandle in interface FbStatement
      Returns:
      The Firebird statement handle identifier
    • setHandle

      protected final void setHandle(int handle)
    • calculateBlr

      protected final byte[] calculateBlr(RowDescriptor rowDescriptor) throws SQLException
      Returns the (possibly cached) blr byte array for a RowDescriptor, or null if the parameter is null.
      Parameters:
      rowDescriptor - The row descriptor.
      Returns:
      blr byte array or null when rowDescriptor is null
      Throws:
      SQLException - When the RowDescriptor contains an unsupported field type.
    • calculateBlr

      protected final byte[] calculateBlr(RowDescriptor rowDescriptor, RowValue rowValue) throws SQLException
      Returns the blr byte array for a RowValue, or null if the parameter is null.

      Contrary to calculateBlr(org.firebirdsql.gds.ng.fields.RowDescriptor), it is not allowed to cache this value as it depends on the actual row value.

      Parameters:
      rowValue - The row value.
      Returns:
      blr byte array or null when rowValue is null
      Throws:
      SQLException - When the RowValue contains an unsupported field type.
    • close

      public void close() throws SQLException
      Description copied from interface: FbStatement
      Close and deallocate this statement.
      Specified by:
      close in interface FbStatement
      Overrides:
      close in class AbstractFbStatement
      Throws:
      SQLException
    • isValidTransactionClass

      protected boolean isValidTransactionClass(Class<? extends FbTransaction> transactionClass)
      Description copied from class: AbstractFbStatement
      Method to decide if a transaction implementation class is valid for the statement implementation.

      Eg a V10Statement will only work with an FbWireTransaction implementation.

      Specified by:
      isValidTransactionClass in class AbstractFbStatement
      Parameters:
      transactionClass - Class of the transaction
      Returns:
      true when the transaction class is valid for the statement implementation.
    • emptyRowDescriptor

      public final RowDescriptor emptyRowDescriptor()
      Specified by:
      emptyRowDescriptor in interface FbStatement
      Returns:
      A potentially cached empty row descriptor for this statement or database.