KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.daffodilwoods.daffodildb.server.sql99.dcl.sqltransactionstatement;
2
3 import com.daffodilwoods.daffodildb.server.serversystem.*;
4 import com.daffodilwoods.daffodildb.server.sessionsystem.*;
5 import com.daffodilwoods.daffodildb.server.sql99.token.*;
6
7 public class transactioncharacteristics implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter {
8    public transactionmode[] _OptRepScomma94843605transactionmode0;
9    public transactionmode _transactionmode1;
10    public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439222;
11
12
13    public Object JavaDoc run(Object JavaDoc object) throws com.daffodilwoods.database.resource.DException {
14       ServerSession serverSession = (ServerSession) object;
15       SessionTransactionMode transMode = new SessionTransactionMode();
16       boolean ok = checkSyntax(transMode, object);
17       if (!ok) {
18          throw new Error JavaDoc("Syntax Error ...");
19       }
20       if (transMode.getTransactionAccessMode() == null) {
21          if ( ( (String JavaDoc) transMode.getIsolationLevel()).equalsIgnoreCase( (String JavaDoc) SessionCharacteristics.READUNCOMMIT)) {
22             transMode.setTransactionAccessMode("Read Only");
23          } else {
24             transMode.setTransactionAccessMode("Read Write");
25          }
26       }
27
28       _UserSession userSession = serverSession.getUserSession();
29       userSession.setTransactionMode(transMode);
30       return transMode;
31
32    }
33
34    private boolean checkSyntax(SessionTransactionMode transMode, Object JavaDoc object) throws com.daffodilwoods.database.resource.DException {
35       if (_OptRepScomma94843605transactionmode0 == null) {
36          if (_transactionmode1 instanceof transactionaccessmode) {
37             transMode.setTransactionAccessMode(_transactionmode1.run(object));
38          }
39          if (_transactionmode1 instanceof isolationlevel) {
40             transMode.setIsolationLevel( ( (String JavaDoc) _transactionmode1.run(object)).toUpperCase());
41          }
42          if (_transactionmode1 instanceof diagnosticssize) {
43             transMode.setDiagnosticsSize(_transactionmode1.run(object));
44          }
45          return true;
46       }
47       transactionmode[] returnedtransModes = (transactionmode[]) _OptRepScomma94843605transactionmode0;
48       int length = returnedtransModes.length;
49       transactionmode[] transactionModes = new transactionmode[length + 1];
50       transactionModes[0] = _transactionmode1;
51       System.arraycopy(returnedtransModes, 0, transactionModes, 1, length);
52       return checkForMoreThanOnce(transactionModes, transMode, object);
53    }
54
55    public String JavaDoc toString() {
56       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
57       sb.append(" ");
58       sb.append(_SRESERVEDWORD12065439222);
59       sb.append(" ");
60       sb.append(_transactionmode1);
61       sb.append(" ");
62       if (_OptRepScomma94843605transactionmode0 != null) {
63          for (int i = 0; i < _OptRepScomma94843605transactionmode0.length; i++) {
64             sb.append(",").append(_OptRepScomma94843605transactionmode0[i]);
65          }
66       }
67       return sb.toString();
68    }
69
70    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
71       return this;
72    }
73
74    private boolean checkForMoreThanOnce(transactionmode[] transactionmode, SessionTransactionMode transMode, Object JavaDoc object) throws com.daffodilwoods.database.resource.DException {
75       int isolation = 0, tranactionAcess = 0, diagnostic = 0;
76       for (int i = 0; i < transactionmode.length; i++) {
77          if (transactionmode[i] instanceof isolationlevel) {
78             isolation++;
79             transMode.setIsolationLevel( ( (String JavaDoc) transactionmode[i].run(object)).toUpperCase());
80          }
81          if (transactionmode[i] instanceof transactionaccessmode) {
82             tranactionAcess++;
83             transMode.setTransactionAccessMode(transactionmode[i].run(object));
84          }
85          if (transactionmode[i] instanceof diagnosticssize) {
86             diagnostic++;
87             transMode.setDiagnosticsSize(transactionmode[i].run(object));
88          }
89       }
90       return (isolation <= 1 && tranactionAcess <= 1 && diagnostic <= 1);
91    }
92 }
93
Popular Tags