Class 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
    • 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 interface Transaction
        Parameters:
        key - Key used to externalize State
        state - Externalized State (Momeneto)
        Throws:
        IllegalArgumentException - When Transaction already using key
        See Also:
        Transaction.putState(java.lang.Object, Transaction.State)
      • 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 interface Transaction
        Throws:
        IOException - Encountered problem maintaining transaction state
        DataSourceException - 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 interface Transaction
        Throws:
        IOException - Encountered problem maintaining transaction State
        DataSourceException - IOException
        See Also:
        Transaction.rollback()
      • 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 interface Transaction
        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 interface Transaction
        Parameters:
        authID - Provided Authorization ID
        Throws:
        IOException - Encountered problems maintaing Transaction State
        DataSourceException - See IOException
        See Also:
        Transaction#setAuthorization(java.lang.String)