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 run(Object 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 ("Syntax Error ..."); 19 } 20 if (transMode.getTransactionAccessMode() == null) { 21 if ( ( (String ) transMode.getIsolationLevel()).equalsIgnoreCase( (String ) 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 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 ) _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 toString() { 56 StringBuffer sb = new StringBuffer (); 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 clone() throws CloneNotSupportedException { 71 return this; 72 } 73 74 private boolean checkForMoreThanOnce(transactionmode[] transactionmode, SessionTransactionMode transMode, Object 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 ) 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 |