/**
*
*/
package org.mobicents.timers;
import javax.transaction.Status;
import javax.transaction.Synchronization;
/**
* @author martins
*
*/
public class TransactionSynchronization implements Synchronization {
/**
*
*/
private final Runnable commitAction;
/**
*
*/
private final Runnable rollbackAction;
/**
* @param commitAction
* @param rollbackAction
*/
TransactionSynchronization(Runnable commitAction,
Runnable rollbackAction) {
this.commitAction = commitAction;
this.rollbackAction = rollbackAction;
}
/*
* (non-Javadoc)
* @see javax.transaction.Synchronization#afterCompletion(int)
*/
public void afterCompletion(int status) {
switch (status) {
case Status.STATUS_COMMITTED:
if (commitAction != null)
commitAction.run();
break;
case Status.STATUS_ROLLEDBACK:
if (rollbackAction != null)
rollbackAction.run();
break;
default:
}
}
/*
* (non-Javadoc)
* @see javax.transaction.Synchronization#beforeCompletion()
*/
public void beforeCompletion() {
}
}