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 Logger
LOGGER
The 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 void
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()
Set<String>
getAuthorizations()
The current set of Authorization IDs held by this Transaction.Object
getProperty(Object key)
Implementation of getProperty.Transaction.State
getState(Object key)
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.String
toString()
-
-
-
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:
putState
in 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:
removeState
in 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 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:
Transaction.getState(java.lang.Object)
-
commit
public void commit() throws IOException
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:
Transaction.commit()
-
rollback
public void rollback() throws IOException
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:
Transaction.rollback()
-
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
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:
getAuthorizations
in 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:
addAuthorization
in 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:
getProperty
in interfaceTransaction
- See Also:
Transaction.getProperty(java.lang.Object)
-
putProperty
public void putProperty(Object key, Object value) throws IOException
Implementation of addProperty.- Specified by:
putProperty
in interfaceTransaction
- Throws:
IOException
- See Also:
Transaction#addProperty(java.lang.Object, java.lang.Object)
-
-