Package org.firebirdsql.gds.ng.wire
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
-
-
Field Summary
-
Fields inherited from class org.firebirdsql.gds.ng.AbstractFbStatement
exceptionListenerDispatcher, statementListenerDispatcher
-
-
Constructor Summary
Constructors Constructor Description AbstractFbWireStatement(FbWireDatabase database)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected byte[]
calculateBlr(RowDescriptor rowDescriptor)
Returns the (possibly cached) blr byte array for aRowDescriptor
, ornull
if the parameter is null.protected byte[]
calculateBlr(RowDescriptor rowDescriptor, RowValue rowValue)
Returns the blr byte array for aRowValue
, ornull
if the parameter is null.void
close()
Close and deallocate this statement.RowDescriptor
emptyRowDescriptor()
FbWireDatabase
getDatabase()
int
getHandle()
protected XdrInputStream
getXdrIn()
Gets the XdrInputStream.protected XdrOutputStream
getXdrOut()
Gets the XdrOutputStream.protected boolean
isValidTransactionClass(java.lang.Class<? extends FbTransaction> transactionClass)
Method to decide if a transaction implementation class is valid for the statement implementation.protected void
setHandle(int handle)
-
Methods inherited from class org.firebirdsql.gds.ng.AbstractFbStatement
addExceptionListener, addStatementListener, checkStatementValid, checkStatementValid, closeCursor, closeCursor, createExecutionPlanProcessor, createSqlCountProcessor, ensureClosedCursor, finalize, free, getAllowedTimeout, getExecutionPlan, getExplainedExecutionPlan, getFieldDescriptor, getParameterDescriptionInfoRequestItems, getParameterDescriptor, getRowDescriptor, getSqlCounts, getSqlInfo, getState, getStatementInfoRequestItems, getStatementWarningCallback, getSynchronizationObject, getTimeout, getTransaction, getTransactionListener, getType, hasFields, hasSingletonResult, isAllRowsFetched, isPrepareAllowed, parseStatementInfo, queueRowData, removeExceptionListener, removeStatementListener, reset, reset, resetAll, setAllRowsFetched, setFieldDescriptor, setParameterDescriptor, setRowDescriptor, setTimeout, setTransaction, setType, signalExecute, signalFetch, switchState, validateParameters
-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.firebirdsql.gds.ng.listeners.ExceptionListenable
addExceptionListener, removeExceptionListener
-
Methods inherited from interface org.firebirdsql.gds.ng.FbStatement
addStatementListener, closeCursor, closeCursor, ensureClosedCursor, execute, fetchRows, getDefaultSqlInfoSize, getExecutionPlan, getExplainedExecutionPlan, getFieldDescriptor, getMaxSqlInfoSize, getParameterDescriptor, getRowDescriptor, getSqlCounts, getSqlInfo, getSqlInfo, getState, getTimeout, getTransaction, getType, prepare, removeStatementListener, setCursorName, setTimeout, setTransaction, validateParameters
-
-
-
-
Constructor Detail
-
AbstractFbWireStatement
public AbstractFbWireStatement(FbWireDatabase database)
-
-
Method Detail
-
getXdrIn
protected final XdrInputStream getXdrIn() throws java.sql.SQLException
Gets the XdrInputStream.- Returns:
- Instance of XdrInputStream
- Throws:
java.sql.SQLException
- If no connection is opened or when exceptions occur retrieving the InputStream
-
getXdrOut
protected final XdrOutputStream getXdrOut() throws java.sql.SQLException
Gets the XdrOutputStream.- Returns:
- Instance of XdrOutputStream
- Throws:
java.sql.SQLException
- If no connection is opened or when exceptions occur retrieving the OutputStream
-
getDatabase
public final FbWireDatabase getDatabase()
- Specified by:
getDatabase
in interfaceFbStatement
- Returns:
- The database connection that created this statement
-
getHandle
public final int getHandle()
- Specified by:
getHandle
in interfaceFbStatement
- Returns:
- The Firebird statement handle identifier
-
setHandle
protected final void setHandle(int handle)
-
calculateBlr
protected final byte[] calculateBlr(RowDescriptor rowDescriptor) throws java.sql.SQLException
Returns the (possibly cached) blr byte array for aRowDescriptor
, ornull
if the parameter is null.- Parameters:
rowDescriptor
- The row descriptor.- Returns:
- blr byte array or
null
whenrowDescriptor
isnull
- Throws:
java.sql.SQLException
- When theRowDescriptor
contains an unsupported field type.
-
calculateBlr
protected final byte[] calculateBlr(RowDescriptor rowDescriptor, RowValue rowValue) throws java.sql.SQLException
Returns the blr byte array for aRowValue
, ornull
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
whenrowValue
isnull
- Throws:
java.sql.SQLException
- When theRowValue
contains an unsupported field type.
-
close
public void close() throws java.sql.SQLException
Description copied from interface:FbStatement
Close and deallocate this statement.- Specified by:
close
in interfaceFbStatement
- Overrides:
close
in classAbstractFbStatement
- Throws:
java.sql.SQLException
-
isValidTransactionClass
protected boolean isValidTransactionClass(java.lang.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 anFbWireTransaction
implementation.- Specified by:
isValidTransactionClass
in classAbstractFbStatement
- 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 interfaceFbStatement
- Returns:
- A potentially cached empty row descriptor for this statement or database.
-
-