1 package com.daffodilwoods.daffodildb.server.sql99.dcl.sqlsessionstatement; 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 setsessioncharacteristicsstatement implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter, SQLsessionstatement { 11 public sessioncharacteristiclist _sessioncharacteristiclist0; 12 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439221; 13 public SNONRESERVEDWORD136444255 _SNONRESERVEDWORD1364442552; 14 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439223; 15 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439224; 16 17 public Object run(Object object) throws com.daffodilwoods.database.resource.DException { 18 _StatementExecutionContext sec = (_StatementExecutionContext) object; 19 _ServerSession serverSession = sec.getServerSession(); 20 _UserSession userSession = serverSession.getUserSession(); 21 if (userSession.getSession().hasAnyChild()) 22 throw new DException("DSE5581", (Object [])null); 23 24 Object returnedObj = _sessioncharacteristiclist0.run(serverSession); 25 26 ArrayList arrList = null; 27 try { 28 arrList = (ArrayList) returnedObj; 29 } catch (ClassCastException clsExc) { 30 userSession.setTransactionMode( (SessionTransactionMode) returnedObj); 31 return returnedObj; 32 } 33 int size = arrList.size(); 34 if (size > 3) { 35 throw new DException("DSE946", null); 36 } 37 return getMergedTransactionMode(arrList); 38 } 39 40 private SessionTransactionMode getMergedTransactionMode(ArrayList transactionModes) throws DException { 41 SessionTransactionMode transMode = new SessionTransactionMode(); 42 int size = transactionModes.size(); 43 for (int i = 0; i < size; i++) { 44 SessionTransactionMode trMode = (SessionTransactionMode) transactionModes.get(i); 45 Object isolationlevel = trMode.getIsolationLevel(); 46 Object accessMode = trMode.getTransactionAccessMode(); 47 Object diagnosticsSize = trMode.getDiagnosticsSize(); 48 if (isolationlevel != null) { 49 if (transMode.getIsolationLevel() != null) { 50 throw new DException("DSE5542", new Object [] {"isolation level"}); 51 } else { 52 transMode.setIsolationLevel( ( (String ) isolationlevel).toUpperCase()); 53 } 54 } 55 if (accessMode != null) { 56 if (transMode.getTransactionAccessMode() != null) { 57 throw new DException("DSE5542", new Object [] {"access mode"}); 58 } else { 59 transMode.setTransactionAccessMode(accessMode); 60 } 61 } 62 if (diagnosticsSize != null) { 63 if (transMode.getDiagnosticsSize() != null) { 64 throw new DException("DSE5542", new Object [] {"diagnostics size"}); 65 } else { 66 transMode.setDiagnosticsSize(diagnosticsSize); 67 } 68 } 69 } 70 return transMode; 71 } 72 73 public Object clone() throws CloneNotSupportedException { 74 return this; 75 } 76 77 public String toString() { 78 StringBuffer sb = new StringBuffer (); 79 sb.append(" "); 80 sb.append(_SRESERVEDWORD12065439224); 81 sb.append(" "); 82 sb.append(_SRESERVEDWORD12065439223); 83 sb.append(" "); 84 sb.append(_SNONRESERVEDWORD1364442552); 85 sb.append(" "); 86 sb.append(_SRESERVEDWORD12065439221); 87 sb.append(" "); 88 sb.append(_sessioncharacteristiclist0); 89 return sb.toString(); 90 } 91 } 92 | Popular Tags |