Package org.firebirdsql.gds.ng
Class AbstractFbTransaction
- java.lang.Object
-
- org.firebirdsql.gds.ng.AbstractFbTransaction
-
- All Implemented Interfaces:
FbTransaction
,ExceptionListenable
- Direct Known Subclasses:
JnaTransaction
,V10Transaction
public abstract class AbstractFbTransaction extends java.lang.Object implements FbTransaction
- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Field Summary
Fields Modifier and Type Field Description protected ExceptionListenerDispatcher
exceptionListenerDispatcher
protected TransactionListenerDispatcher
transactionListenerDispatcher
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractFbTransaction(TransactionState initialState, FbDatabase database)
Initializes AbstractFbTransaction.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addExceptionListener(ExceptionListener listener)
Adds an exception listener to this object.void
addTransactionListener(TransactionListener listener)
Adds aTransactionListener
to the list of strongly referenced listeners.void
addWeakTransactionListener(TransactionListener listener)
Adds aTransactionListener
to the list of weakly referenced listeners.protected void
finalize()
protected FbDatabase
getDatabase()
TransactionState
getState()
protected java.lang.Object
getSynchronizationObject()
Get synchronization object.long
getTransactionId()
Retrieves the transaction id.<T> T
getTransactionInfo(byte[] requestItems, int bufferLength, InfoProcessor<T> infoProcessor)
Request transaction info.void
removeExceptionListener(ExceptionListener listener)
Removes an exception listener to this object.void
removeTransactionListener(TransactionListener listener)
Removes theTransactionListener
from the list of listeners.protected void
switchState(TransactionState newState)
Switches current state to the supplied newState.-
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.FbTransaction
commit, getHandle, getTransactionInfo, prepare, rollback
-
-
-
-
Field Detail
-
exceptionListenerDispatcher
protected final ExceptionListenerDispatcher exceptionListenerDispatcher
-
transactionListenerDispatcher
protected final TransactionListenerDispatcher transactionListenerDispatcher
-
-
Constructor Detail
-
AbstractFbTransaction
protected AbstractFbTransaction(TransactionState initialState, FbDatabase database)
Initializes AbstractFbTransaction.- Parameters:
initialState
- Initial transaction state (allowed values areTransactionState.ACTIVE
andTransactionState.PREPARED
.database
- FbDatabase that created this handle.
-
-
Method Detail
-
getState
public final TransactionState getState()
- Specified by:
getState
in interfaceFbTransaction
- Returns:
- Current transaction state
-
switchState
protected final void switchState(TransactionState newState) throws java.sql.SQLException
Switches current state to the supplied newState.- Parameters:
newState
- New state to switch to- Throws:
java.sql.SQLException
- If the requested state transition is not allowed or if the current state is also changed in a concurrent thread.
-
addTransactionListener
public final void addTransactionListener(TransactionListener listener)
Description copied from interface:FbTransaction
Adds aTransactionListener
to the list of strongly referenced listeners.- Specified by:
addTransactionListener
in interfaceFbTransaction
- Parameters:
listener
- TransactionListener to register
-
addWeakTransactionListener
public final void addWeakTransactionListener(TransactionListener listener)
Description copied from interface:FbTransaction
Adds aTransactionListener
to the list of weakly referenced listeners.If the listener is already strongly referenced, this call will be ignored
- Specified by:
addWeakTransactionListener
in interfaceFbTransaction
- Parameters:
listener
- TransactionListener to register
-
removeTransactionListener
public final void removeTransactionListener(TransactionListener listener)
Description copied from interface:FbTransaction
Removes theTransactionListener
from the list of listeners.- Specified by:
removeTransactionListener
in interfaceFbTransaction
- Parameters:
listener
- TransactionListener to remove
-
addExceptionListener
public final void addExceptionListener(ExceptionListener listener)
Description copied from interface:ExceptionListenable
Adds an exception listener to this object.Implementations use
WeakReference
.- Specified by:
addExceptionListener
in interfaceExceptionListenable
- Parameters:
listener
- Listener to register
-
removeExceptionListener
public final void removeExceptionListener(ExceptionListener listener)
Description copied from interface:ExceptionListenable
Removes an exception listener to this object.- Specified by:
removeExceptionListener
in interfaceExceptionListenable
- Parameters:
listener
- Listener to remove
-
getTransactionInfo
public <T> T getTransactionInfo(byte[] requestItems, int bufferLength, InfoProcessor<T> infoProcessor) throws java.sql.SQLException
Description copied from interface:FbTransaction
Request transaction info.- Specified by:
getTransactionInfo
in interfaceFbTransaction
- Parameters:
requestItems
- Array of info items to requestbufferLength
- Response buffer length to useinfoProcessor
- Implementation ofInfoProcessor
to transform the info response- Returns:
- Transformed info response of type T
- Throws:
java.sql.SQLException
- For errors retrieving or transforming the response.
-
getTransactionId
public long getTransactionId() throws java.sql.SQLException
Description copied from interface:FbTransaction
Retrieves the transaction id.The transaction id is the database transaction id, not to be confused with the attachment level transaction handle provided by
FbTransaction.getHandle()
.- Specified by:
getTransactionId
in interfaceFbTransaction
- Returns:
- Database transaction id.
- Throws:
java.sql.SQLException
-
getSynchronizationObject
protected final java.lang.Object getSynchronizationObject()
Get synchronization object.- Returns:
- object, cannot be
null
.
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
getDatabase
protected FbDatabase getDatabase()
-
-