KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > jalisto > se > impl > TransactionImpl


1 /*
2  * Jalisto - JAva LIght STOrage
3  * Copyright (C) 2000-2005 Xcalia http://www.xcalia.com
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
18  *
19  * Xcalia
20  * 71, rue Desnouettes
21  * 75014 Paris - France
22  * http://www.xcalia.com
23  */

24 package org.objectweb.jalisto.se.impl;
25
26 import org.objectweb.jalisto.se.exception.TransactionException;
27 import org.objectweb.jalisto.se.api.Session;
28 import org.objectweb.jalisto.se.api.Transaction;
29
30 public class TransactionImpl implements Transaction {
31
32     public TransactionImpl(Session session) {
33         this.session = session;
34     }
35
36     public void begin() {
37         checkIsNotActive();
38         session.getInternalSession().begin();
39         isActive = true;
40     }
41
42     public void commit() {
43         checkIsActive();
44         session.getInternalSession().commit();
45         isActive = false;
46     }
47
48     public boolean isActive() {
49         return isActive;
50     }
51
52     public Session getSession() {
53         return session;
54     }
55
56     public void rollback() {
57         checkIsActive();
58         session.getInternalSession().rollback();
59         isActive = false;
60     }
61
62     public void setOptimistic() {
63         checkIsNotActive();
64         session.getInternalSession().setOptimistic();
65     }
66
67     public void setPessimistic() {
68         checkIsNotActive();
69         session.getInternalSession().setPessimistic();
70     }
71
72     private void checkIsActive() {
73         if (!isActive) {
74             throw new TransactionException("Transaction is not active");
75         }
76     }
77
78     private void checkIsNotActive() {
79         if (isActive) {
80             throw new TransactionException("Transaction is active");
81         }
82     }
83
84     private Session session;
85     protected boolean isActive = false;
86 }
87
Popular Tags