    001package com.hammurapi.store;
    002
    003public interface TransactionalStore<T, PK, S extends Store<T,PK,S>> extends Store<T, PK, S> {
    004
    005        /**
    006         * Starts a new transaction.
    007         * @param exclusive If true, the transaction acquires write lock on the store when it is created and
    008         * releases it when it is committed or rolled back. Otherwise no lock is acquired and individual locks
    009         * are acquired by transaction's operations as needed.
    010         * @return new transaction.
    011         */
    012        Transaction<T, PK, S> beginTransaction(boolean exclusive);
    013}