package com.smartitengineering.cms.repo.dao.tx;
/**
* API for manually working with transactions
* @author imyousuf
*/
public interface TransactionManager {
/**
* Start a new transaction.
* @return A new transaction
*/
public Transaction beginTransaction();
/**
* Start a transaction that is isolated from rest of the transactions of the system
* @param isolatedTransaction Whether this transaction is isolated or not
* @return A new transaction
*/
public Transaction beginTransaction(boolean isolatedTransaction);
/**
* Retrieves the current transaction in "effect". In effect means in this context a non-completed transaction
* @return Currently effective transaction or null
*/
public Transaction getCurrentTransaction();
}