package io.ebeaninternal.server.transaction;
import io.ebeaninternal.api.SpiTransaction;
/**
* Manages the transaction scoping using a Ebean thread local.
*/
public class DefaultTransactionScopeManager extends TransactionScopeManager {
public DefaultTransactionScopeManager(TransactionManager transactionManager) {
super(transactionManager);
}
@Override
public void commit() {
DefaultTransactionThreadLocal.commit(serverName);
}
@Override
public void end() {
DefaultTransactionThreadLocal.end(serverName);
}
@Override
public SpiTransaction get() {
SpiTransaction t = DefaultTransactionThreadLocal.get(serverName);
if (t == null || !t.isActive()) {
return null;
} else {
return t;
}
}
@Override
public void replace(SpiTransaction trans) {
DefaultTransactionThreadLocal.replace(serverName, trans);
}
@Override
public void rollback() {
DefaultTransactionThreadLocal.rollback(serverName);
}
@Override
public void set(SpiTransaction trans) {
DefaultTransactionThreadLocal.set(serverName, trans);
}
}