com.googlecode.jpattern.service.transaction.TransactionCommitCommand Maven / Gradle / Ivy
package com.googlecode.jpattern.service.transaction;
import com.googlecode.jpattern.core.command.NullCommand;
import com.googlecode.jpattern.core.command.ACommand;
import com.googlecode.jpattern.core.command.ICommand;
import com.googlecode.jpattern.core.command.ICommandResult;
/**
*
* @author Francesco Cina'
*
* 22 Apr 2011
*/
public class TransactionCommitCommand extends ACommand {
private static final long serialVersionUID = 1L;
private final ATransactionDefinition transactionDefinition;
public TransactionCommitCommand(ATransactionDefinition transactionDefinition) {
this(transactionDefinition , new NullCommand());
}
public TransactionCommitCommand(ATransactionDefinition transactionDefinition, ICommand previousCommand) {
super(previousCommand);
this.transactionDefinition = transactionDefinition;
}
@Override
protected void result(ICommandResult result) {
if (!transactionDefinition.getTransactionManager().isRollbackOnly()) {
getLogger().debug("result", "Commit transaction with transactionManager: " + transactionDefinition.getTransactionManagerName());
transactionDefinition.getTransactionManager().commit(getProvider());
} else {
getLogger().debug("result", "Cannot commit because transaction is rollback only. Rollback transaction with transactionManager: " + transactionDefinition.getTransactionManagerName());
transactionDefinition.getTransactionManager().rollback(getProvider());
}
}
@Override
protected void internalRollBack(ICommandResult result) {
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy