KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > dcl > sqltransactionstatement > rollbackstatement


1 package com.daffodilwoods.daffodildb.server.sql99.dcl.sqltransactionstatement;
2
3 import java.util.*;
4
5 import com.daffodilwoods.daffodildb.server.serversystem.*;
6 import com.daffodilwoods.daffodildb.server.sessionsystem.*;
7 import com.daffodilwoods.daffodildb.server.sql99.token.*;
8 import com.daffodilwoods.database.resource.*;
9
10 public class rollbackstatement implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter,
11     SQLtransactionstatement {
12    public savepointclause _Optsavepointclause0;
13    public
14        SRESERVEDWORD1206543922OptSRESERVEDWORD1206543922SNONRESERVEDWORD136444255
15        _OptSRESERVEDWORD1206543922OptSRESERVEDWORD1206543922SNONRESERVEDWORD1364442551;
16    public SRESERVEDWORD1206543922 _OptSRESERVEDWORD12065439222;
17    public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439223;
18
19    ArrayList userSavepointVector;
20
21    int returnType = 0;
22    public Object JavaDoc run(Object JavaDoc object) throws com.daffodilwoods.database.resource.DException {
23       _ServerSession serverSession = (_ServerSession) object;
24       _UserSession userSession = serverSession.getUserSession();
25       userSavepointVector = userSession.getSavePointVector();
26       if ( ( (String JavaDoc) userSession.getTransactionAccessMode()).equalsIgnoreCase("Read Only")) {
27          throw new DException("DSE1184", (Object JavaDoc[])null);
28       }
29
30       int level = 0;
31       _StatementExecutionContext sec = serverSession.getStatementExecutionContext();
32       if (_Optsavepointclause0 != null) {
33          Object JavaDoc savepoint = _Optsavepointclause0.run(object);
34          int index = userSavepointVector.indexOf( ( (String JavaDoc) savepoint).toUpperCase());
35          if (index < 0) {
36             throw new DException("DSE877", null);
37          }
38          CommitToParentAndRollback(userSession, sec, userSavepointVector.size() - index);
39          userSession.rollbackSavePoint(sec);
40          userSession.releaseLastSavePoint();
41       } else {
42          CommitToParentAndRollback(userSession, serverSession.getStatementExecutionContext(), userSavepointVector.size() + 1);
43          userSession.rollback(sec);
44       }
45       return null;
46    }
47
48    public void CommitToParentAndRollback(_UserSession userSession, _StatementExecutionContext sec, int level) throws com.daffodilwoods.database.resource.DException {
49       for (int i = 0; i < level - 1; i++) {
50          userSession.commitSavePoint(sec);
51          userSession.releaseLastSavePoint();
52       }
53    }
54
55    public String JavaDoc toString() {
56       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
57       sb.append(" ");
58       sb.append(_SRESERVEDWORD12065439223);
59       sb.append(" ");
60       if (_OptSRESERVEDWORD12065439222 != null) {
61          sb.append(_OptSRESERVEDWORD12065439222);
62       }
63       sb.append(" ");
64       if (_OptSRESERVEDWORD1206543922OptSRESERVEDWORD1206543922SNONRESERVEDWORD1364442551 != null) {
65          sb.append(_OptSRESERVEDWORD1206543922OptSRESERVEDWORD1206543922SNONRESERVEDWORD1364442551);
66       }
67       sb.append(" ");
68       if (_Optsavepointclause0 != null) {
69          sb.append(_Optsavepointclause0);
70       }
71       return sb.toString();
72    }
73
74    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
75       return this;
76    }
77
78 }
79
Popular Tags