1 package com.daffodilwoods.daffodildb.server.sessionsystem.sessioncondition; 2 3 import com.daffodilwoods.database.resource.DException; 4 import com.daffodilwoods.database.general.SystemFields; 5 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 6 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator; 7 8 public class UnlockCommittedCondition implements _SessionCondition { 9 10 Object [] condition; 11 private static int[] TSISIT = {SystemFields.transactionId ,SystemFields.sessionId ,SystemFields.invalidSessionId ,SystemFields.invalidTransactionId } ; 12 13 public UnlockCommittedCondition( Object presentConditionValues ) throws DException{ 14 condition = new Object [4]; 15 FieldBase bytesForMaxIntegerValue = (FieldBase)SystemFields.maxIntegerValue; 16 Object sessionIds = (Object [])presentConditionValues; 17 condition[0] = bytesForMaxIntegerValue; 18 condition[1] = sessionIds; 19 condition[2] = sessionIds; 20 condition[3] = bytesForMaxIntegerValue; 21 } 22 23 24 public boolean evaluate(_Iterator nonIndexedIterator) throws DException { 25 Object [] valuesToCompare = (Object [])nonIndexedIterator.getColumnValues(TSISIT ); return ((StaticConditionHelper.compare(condition[0],valuesToCompare[0]) != 0) || 27 (StaticConditionHelper.solveInConditon((Object [])condition[1],(FieldBase)valuesToCompare[1] ))) 28 && (!( StaticConditionHelper.solveInConditon((Object [])condition[2],(FieldBase)valuesToCompare[2]))) 29 && (StaticConditionHelper.compare(condition[3],valuesToCompare[3]) == 0 ); 30 31 } 32 33 34 public void setParameterValues(Object [] values) throws DException{ 35 Object sessionIds = (Object [])values[0]; 36 condition[1] = sessionIds; 37 condition[2] = sessionIds; 38 } 39 40 public String toString(){ 41 try { 42 return "[ UNLOCK_COMMITTED_CONDITION => (( transactionId != maxIntegerValue or "+ 43 " sessionId in ("+((FieldBase)condition[1]).getObject()+") ) and invalidSessionId not in ("+((FieldBase)condition[1]).getObject()+") and "+ 44 " InvalidTransactionId = maxIntegerValue ) ]" ; 45 } 46 catch (Exception ex) { 47 return null; 48 } 49 } 50 51 52 } 53 | Popular Tags |