View Javadoc
1   /*
2    * $Source$
3    * $Revision$
4    *
5    * Copyright (C) 2000 Chris Kimpton
6    * 
7    * Part of Melati (http://melati.org), a framework for the rapid
8    * development of clean, maintainable web applications.
9    *
10   * Melati is free software; Permission is granted to copy, distribute
11   * and/or modify this software under the terms either:
12   *
13   * a) the GNU General Public License as published by the Free Software
14   *    Foundation; either version 2 of the License, or (at your option)
15   *    any later version,
16   *
17   *    or
18   *
19   * b) any version of the Melati Software License, as published
20   *    at http://melati.org
21   *
22   * You should have received a copy of the GNU General Public License and
23   * the Melati Software License along with this program;
24   * if not, write to the Free Software Foundation, Inc.,
25   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA to obtain the
26   * GNU General Public License and visit http://melati.org to obtain the
27   * Melati Software License.
28   *
29   * Feel free to contact the Developers of Melati (http://melati.org),
30   * if you would like to work out a different arrangement than the options
31   * outlined here.  It is our intention to allow Melati to be used by as
32   * wide an audience as possible.
33   *
34   * This program is distributed in the hope that it will be useful,
35   * but WITHOUT ANY WARRANTY; without even the implied warranty of
36   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37   * GNU General Public License for more details.
38   *
39   * Contact details for copyright holder:
40   *
41   *     Chris Kimpton (kimtoc@techie.com)
42   *
43   */
44  package org.melati.poem.odmg;
45  
46  /**
47   * An ODMG Transaction.
48   */
49  
50  final class Transaction implements org.odmg.Transaction {
51  
52    private Database _db = null;
53  
54    static Transaction getNewTransaction(org.odmg.Database db) { 
55      return new Transaction(db); 
56    }
57    private Transaction(org.odmg.Database db) {
58      _db = (Database)db;
59    }
60  
61    //private org.melati.util.Transaction _tx = null;
62    private Object _tx = null;
63  
64    public void begin() 
65      throws org.odmg.ODMGRuntimeException {
66      if (_tx != null) throw new org.odmg.TransactionInProgressException();
67  
68      try { 
69        _tx = new Object();
70        // any issues with always using 1?
71        _db.getPoemDatabase().beginSession(org.melati.poem.AccessToken.root);  
72      } catch (org.odmg.ODMGRuntimeException exc) { 
73        throw new org.odmg.ODMGRuntimeException(exc.getMessage());
74      }
75    }
76  
77    public void commit() { 
78      if (_tx == null) throw new org.odmg.TransactionNotInProgressException();
79  
80      try { 
81           _db.getPoemDatabase().endSession();
82           _tx = null;
83      } catch (org.odmg.ODMGRuntimeException exc) { 
84        throw new org.odmg.ODMGRuntimeException(exc.getMessage());
85      }
86    }
87    
88    public void join() {
89      throw new org.odmg.NotImplementedException(); 
90    }
91  
92    public void abort() {
93      throw new org.odmg.NotImplementedException(); 
94    }
95  
96    public void checkpoint() {
97      throw new org.odmg.NotImplementedException(); 
98    }
99  
100   public void leave() {
101     throw new org.odmg.NotImplementedException(); 
102   }
103 
104   public void lock(Object obj, int code) { 
105     throw new org.odmg.NotImplementedException(); 
106   }
107 
108   public boolean tryLock(Object obj, int code) {
109     throw new org.odmg.NotImplementedException(); 
110   }
111 
112   public boolean isOpen() {
113     throw new org.odmg.NotImplementedException(); 
114   }
115 }