Class DefaultTransaction
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Transaction
Please see Transaction interface for an outline of what this class is all about.
- Author:
- Jody Garnett, Refractions Research
-
Nested Class Summary
Nested classes/interfaces inherited from interface Transaction
Transaction.State
-
Field Summary
FieldsFields inherited from interface Transaction
AUTO_COMMIT
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAuthorization
(String authID) Provides an authorization ID allowing access to locked Features.void
close()
Frees all State held by this Transaction.void
commit()
Commits all modifications against this Transaction.protected void
finalize()
The current set of Authorization IDs held by this Transaction.getProperty
(Object key) Implementation of getProperty.Returns externalized state ornull
if not available.void
putProperty
(Object key, Object value) Implementation of addProperty.void
putState
(Object key, Transaction.State state) Remembers Externalized State for a DataSource.void
removeState
(Object key) Removes state from DefaultTransaction's care.void
rollback()
Rollsback all modifications against this Transaction.toString()
-
Field Details
-
LOGGER
The logger for the data module.
-
-
Constructor Details
-
DefaultTransaction
public DefaultTransaction() -
DefaultTransaction
-
-
Method Details
-
putState
Remembers Externalized State for a DataSource.This is the GOF Momento pattern: a SimpleFeatureSource is able to externalize its internal State required for Transaction support and have this class manage it. It may retrieve this State with getState( key ).
In addition several SimpleFeatureSource implementations may share State, a common example is JDBCDataSources keeping a shared JDBC connection using the JDBC URL as a key.
- Specified by:
putState
in interfaceTransaction
- Parameters:
key
- Key used to externalize Statestate
- Externalized State (Momeneto)- Throws:
IllegalArgumentException
- When Transaction already using key- See Also:
-
removeState
Removes state from DefaultTransaction's care.Currently does not complain if there is no State associated with key to remove - this may change in the future.
- Specified by:
removeState
in interfaceTransaction
- Parameters:
key
- Key that was used to externalize State- Throws:
IllegalArgumentException
- If no State was maintained for suppliedkey
- See Also:
-
getState
Returns externalized state ornull
if not available.Used by DataStore implementations to externalize information required for Transaction support using the GOF Momento pattern.
- Specified by:
getState
in interfaceTransaction
- Returns:
- Previously externalized State.
- See Also:
-
commit
Commits all modifications against this Transaction.This implementation will call commit() on all State managed by this Transaction. This allows DataStores to provide their own implementation of commit().
- Specified by:
commit
in interfaceTransaction
- Throws:
IOException
- Encountered problem maintaining transaction stateDataSourceException
- See IOException- See Also:
-
rollback
Rollsback all modifications against this Transaction.This implementation will call rollback() on all State managed by this Transaction. This allows DataStores to provide their own implementation of rollback().
- Specified by:
rollback
in interfaceTransaction
- Throws:
IOException
- Encountered problem maintaining transaction StateDataSourceException
- IOException- See Also:
-
close
public void close()Frees all State held by this Transaction.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceTransaction
-
getAuthorizations
The current set of Authorization IDs held by this Transaction.This set is reset by the next call to commit or rollback.
- Specified by:
getAuthorizations
in interfaceTransaction
- Returns:
- Set of Authorization IDs
-
addAuthorization
Provides an authorization ID allowing access to locked Features.Remember authorizations are cleared after every commit/rollback.
- Specified by:
addAuthorization
in interfaceTransaction
- Parameters:
authID
- Provided Authorization ID- Throws:
IOException
- Encountered problems maintaing Transaction StateDataSourceException
- See IOException- See Also:
-
Transaction#setAuthorization(java.lang.String)
-
toString
-
getProperty
Implementation of getProperty.- Specified by:
getProperty
in interfaceTransaction
- See Also:
-
putProperty
Implementation of addProperty.- Specified by:
putProperty
in interfaceTransaction
- Throws:
IOException
- See Also:
-
Transaction#addProperty(java.lang.Object, java.lang.Object)
-
finalize
-