package org.jboss.tm;
import javax.transaction.Status;
import javax.transaction.SystemException;
import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import javax.transaction.UserTransaction;
import org.jboss.util.NestedRuntimeException;
public class TxUtils
{
private TxUtils()
{
}
public static boolean isActive(Transaction tx)
{
try
{
return tx != null && (tx.getStatus() == Status.STATUS_ACTIVE || tx.getStatus() == Status.STATUS_MARKED_ROLLBACK);
}
catch (SystemException ignored)
{
throw new NestedRuntimeException(ignored);
}
}
public static boolean isActive(TransactionManager tm)
{
try
{
return isActive(tm.getTransaction());
}
catch (SystemException ignored)
{
throw new NestedRuntimeException(ignored);
}
}
public static boolean isActive(UserTransaction ut)
{
try
{
return ut.getStatus() == Status.STATUS_ACTIVE;
}
catch (SystemException ignored)
{
throw new NestedRuntimeException(ignored);
}
}
public static boolean isCompleted(Transaction tx)
{
try
{
return tx == null
|| tx.getStatus() == Status.STATUS_COMMITTED
|| tx.getStatus() == Status.STATUS_ROLLEDBACK
|| tx.getStatus() == Status.STATUS_NO_TRANSACTION;
}
catch (SystemException ignored)
{
throw new NestedRuntimeException(ignored);
}
}
public static boolean isCompleted(TransactionManager tm)
{
try
{
return isCompleted(tm.getTransaction());
}
catch (SystemException ignored)
{
throw new NestedRuntimeException(ignored);
}
}
public static boolean isCompleted(UserTransaction ut)
{
try
{
return ut.getStatus() == Status.STATUS_COMMITTED
|| ut.getStatus() == Status.STATUS_ROLLEDBACK
|| ut.getStatus() == Status.STATUS_NO_TRANSACTION;
}
catch (SystemException ignored)
{
throw new NestedRuntimeException(ignored);
}
}
}