~ubuntu-branches/ubuntu/wily/libhibernate3-java/wily-proposed

« back to all changes in this revision

Viewing changes to src/org/hibernate/util/JTAHelper.java

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2007-10-14 14:43:34 UTC
  • Revision ID: james.westby@ubuntu.com-20071014144334-eamc8i0q10gs1aro
Tags: upstream-3.2.5
ImportĀ upstreamĀ versionĀ 3.2.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//$Id: JTAHelper.java 10068 2006-06-28 17:07:06Z steve.ebersole@jboss.com $
 
2
package org.hibernate.util;
 
3
 
 
4
import javax.transaction.Status;
 
5
import javax.transaction.SystemException;
 
6
import javax.transaction.TransactionManager;
 
7
 
 
8
import org.hibernate.TransactionException;
 
9
import org.hibernate.engine.SessionFactoryImplementor;
 
10
 
 
11
/**
 
12
 * @author Gavin King
 
13
 */
 
14
public final class JTAHelper {
 
15
 
 
16
        private JTAHelper() {}
 
17
 
 
18
        public static boolean isRollback(int status) {
 
19
                return status==Status.STATUS_MARKED_ROLLBACK ||
 
20
                       status==Status.STATUS_ROLLING_BACK ||
 
21
                       status==Status.STATUS_ROLLEDBACK;
 
22
        }
 
23
 
 
24
        public static boolean isInProgress(int status) {
 
25
                return status==Status.STATUS_ACTIVE ||
 
26
                       status==Status.STATUS_MARKED_ROLLBACK;
 
27
        }
 
28
 
 
29
        /**
 
30
         * Return true if a JTA transaction is in progress
 
31
         * and false in *every* other cases (including in a JDBC transaction).
 
32
         */
 
33
        public static boolean isTransactionInProgress(SessionFactoryImplementor factory) {
 
34
                TransactionManager tm = factory.getTransactionManager();
 
35
                try {
 
36
                        return tm != null && isTransactionInProgress( tm.getTransaction() );
 
37
                }
 
38
                catch (SystemException se) {
 
39
                        throw new TransactionException( "could not obtain JTA Transaction", se );
 
40
                }
 
41
        }
 
42
 
 
43
        public static boolean isTransactionInProgress(javax.transaction.Transaction tx) throws SystemException {
 
44
                return tx != null && JTAHelper.isInProgress( tx.getStatus() );
 
45
        }
 
46
 
 
47
        public static boolean isMarkedForRollback(int status) {
 
48
                return status == Status.STATUS_MARKED_ROLLBACK;
 
49
        }
 
50
 
 
51
        public static boolean isMarkedForRollback(javax.transaction.Transaction tx) throws SystemException {
 
52
                return isMarkedForRollback( tx.getStatus() );
 
53
        }
 
54
}