1 package com.daffodilwoods.daffodildb.server.sessionsystem.sessioncondition; 2 3 import com.daffodilwoods.database.resource.*; 4 import com.daffodilwoods.daffodildb.utils.byteconverter.*; 5 import com.daffodilwoods.database.general.*; 6 import com.daffodilwoods.daffodildb.server.sessionsystem.*; 7 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 8 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 9 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator; 10 11 17 public class ReadCommitedCondition implements _SessionCondition { 18 19 Object [] condition ; 20 private static int[] ISITTS = {SystemFields.invalidSessionId ,SystemFields.invalidTransactionId ,SystemFields.transactionId,SystemFields.sessionId } ; 21 public ReadCommitedCondition(Object [] presentConditionValues)throws DException { 22 condition = new Object [4]; 23 FieldBase bytesForMaxIntegerValue = (FieldBase)SystemFields.maxIntegerValue; 24 condition[0] = bytesForMaxIntegerValue; 25 condition[1] = bytesForMaxIntegerValue; 26 condition[2] = bytesForMaxIntegerValue; 27 condition[3] = (Object [])presentConditionValues[0]; 28 } 29 30 31 37 public boolean evaluate(_Iterator nonIndexedIterator) throws DException { 38 Object [] valuesToCompare = (Object [])nonIndexedIterator.getColumnValues( ISITTS); return (((StaticConditionHelper.compare(condition[0],valuesToCompare[0]) == 0) 40 && (StaticConditionHelper.compare(condition[1],valuesToCompare[1]) == 0)) 41 && ((StaticConditionHelper.compare(condition[2],valuesToCompare[2]) != 0) 42 || (StaticConditionHelper.solveInConditon((Object [])condition[3],(FieldBase)valuesToCompare[3])))); 43 44 } 45 46 51 public void setParameterValues(Object [] values) throws DException{ 52 condition[3] = (Object [])values[0]; 53 } 54 55 public String toString(){ 56 return "[ READ_COMMITTED_CONDITION => ((invalidSessionId = maxIntegerValue and " + SystemFields.systemFields[SystemFields.invalidTransactionId] +" = maxIntegerValue ) and"+ 57 " (transactionId <> maxIntegerValue or sessionId in ( "+condition[3]+" ) ))) ]"; 58 } 59 } 60 | Popular Tags |