KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > oracle > toplink > essentials > internal > ejb > cmp3 > transaction > EntityTransactionWrapper


1 /*
2  * The contents of this file are subject to the terms
3  * of the Common Development and Distribution License
4  * (the "License"). You may not use this file except
5  * in compliance with the License.
6  *
7  * You can obtain a copy of the license at
8  * glassfish/bootstrap/legal/CDDLv1.0.txt or
9  * https://glassfish.dev.java.net/public/CDDLv1.0.html.
10  * See the License for the specific language governing
11  * permissions and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL
14  * HEADER in each file and include the License file at
15  * glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable,
16  * add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your
18  * own identifying information: Portions Copyright [yyyy]
19  * [name of copyright owner]
20  */

21 // Copyright (c) 1998, 2006, Oracle. All rights reserved.
22
package oracle.toplink.essentials.internal.ejb.cmp3.transaction;
23
24 import javax.persistence.EntityTransaction;
25 import javax.persistence.TransactionRequiredException;
26 import oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl;
27 import oracle.toplink.essentials.exceptions.TransactionException;
28
29 /**
30  * INTERNAL:
31  * JDK 1.5 specific version of EntityTransactionWrapper. Differs from the JDK 1.4 version
32  * in that it implements a different version of the TransactionWrapper interface,
33  * uses a different EntityManager, and returns a different EntityTransaction version.
34  *
35  * @see oracle.toplink.essentials.internal.ejb.cmp3.transaction.EntityTransactionWrapper
36  */

37 public class EntityTransactionWrapper
38     extends oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionWrapper
39     implements TransactionWrapper
40 {
41
42     public EntityTransactionWrapper(EntityManagerImpl entityManager) {
43         super(entityManager);
44     }
45     
46   /**
47    * Lazy initialize the EntityTransaction.
48    * There can only be one EntityTransaction at a time.
49    */

50     public EntityTransaction getTransaction(){
51         if (entityTransaction == null){
52             entityTransaction = new EntityTransactionImpl(this);
53         }
54         return (EntityTransaction)entityTransaction;
55     }
56
57     /**
58     * Mark the current transaction so that the only possible
59     * outcome of the transaction is for the transaction to be
60     * rolled back.
61     * This is an internal method and if the txn is not active will do nothing
62     */

63     public void setRollbackOnlyInternal(){
64         if (this.getTransaction().isActive()){
65             this.getTransaction().setRollbackOnly();
66         }
67     }
68         
69     protected void throwCheckTransactionFailedException() {
70         throw new TransactionRequiredException(TransactionException.transactionNotActive().getMessage());
71     }
72 }
73
Popular Tags