Class DefaultTransaction
- Object
-
- DefaultTransaction
-
- All Implemented Interfaces:
Closeable,AutoCloseable,Transaction
public class DefaultTransaction extends Object implements Transaction
Quick implementation of Transaction api.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
Fields Modifier and Type Field Description protected static LoggerLOGGERThe logger for the data module.-
Fields inherited from interface Transaction
AUTO_COMMIT
-
-
Constructor Summary
Constructors Constructor Description DefaultTransaction()DefaultTransaction(String handle)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAuthorization(String authID)Provides an authorization ID allowing access to locked Features.voidclose()Frees all State held by this Transaction.voidcommit()Commits all modifications against this Transaction.protected voidfinalize()Set<String>getAuthorizations()The current set of Authorization IDs held by this Transaction.ObjectgetProperty(Object key)Implementation of getProperty.Transaction.StategetState(Object key)Returns externalized state ornullif not available.voidputProperty(Object key, Object value)Implementation of addProperty.voidputState(Object key, Transaction.State state)Remembers Externalized State for a DataSource.voidremoveState(Object key)Removes state from DefaultTransaction's care.voidrollback()Rollsback all modifications against this Transaction.StringtoString()
-
-
-
Field Detail
-
LOGGER
protected static final Logger LOGGER
The logger for the data module.
-
-
Constructor Detail
-
DefaultTransaction
public DefaultTransaction()
-
DefaultTransaction
public DefaultTransaction(String handle)
-
-
Method Detail
-
putState
public void putState(Object key, Transaction.State state)
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:
putStatein interfaceTransaction- Parameters:
key- Key used to externalize Statestate- Externalized State (Momeneto)- Throws:
IllegalArgumentException- When Transaction already using key- See Also:
Transaction.putState(java.lang.Object, Transaction.State)
-
removeState
public void removeState(Object key)
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:
removeStatein interfaceTransaction- Parameters:
key- Key that was used to externalize State- Throws:
IllegalArgumentException- If no State was maintained for suppliedkey- See Also:
Transaction.removeState(java.lang.Object)
-
getState
public Transaction.State getState(Object key)
Returns externalized state ornullif not available.Used by DataStore implementations to externalize information required for Transaction support using the GOF Momento pattern.
- Specified by:
getStatein interfaceTransaction- Returns:
- Previously externalized State.
- See Also:
Transaction.getState(java.lang.Object)
-
commit
public void commit() throws IOExceptionCommits 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:
commitin interfaceTransaction- Throws:
IOException- Encountered problem maintaining transaction stateDataSourceException- See IOException- See Also:
Transaction.commit()
-
rollback
public void rollback() throws IOExceptionRollsback 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:
rollbackin interfaceTransaction- Throws:
IOException- Encountered problem maintaining transaction StateDataSourceException- IOException- See Also:
Transaction.rollback()
-
close
public void close()
Frees all State held by this Transaction.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceTransaction
-
getAuthorizations
public Set<String> 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:
getAuthorizationsin interfaceTransaction- Returns:
- Set of Authorization IDs
-
addAuthorization
public void addAuthorization(String authID) throws IOException
Provides an authorization ID allowing access to locked Features.Remember authorizations are cleared after every commit/rollback.
- Specified by:
addAuthorizationin interfaceTransaction- Parameters:
authID- Provided Authorization ID- Throws:
IOException- Encountered problems maintaing Transaction StateDataSourceException- See IOException- See Also:
Transaction#setAuthorization(java.lang.String)
-
getProperty
public Object getProperty(Object key)
Implementation of getProperty.- Specified by:
getPropertyin interfaceTransaction- See Also:
Transaction.getProperty(java.lang.Object)
-
putProperty
public void putProperty(Object key, Object value) throws IOException
Implementation of addProperty.- Specified by:
putPropertyin interfaceTransaction- Throws:
IOException- See Also:
Transaction#addProperty(java.lang.Object, java.lang.Object)
-
-