1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 package org.melati.poem.odmg;
45
46
47
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
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
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 }