1 package com.daffodilwoods.daffodildb.server.sessionsystem.sessioncondition; 2 3 import com.daffodilwoods.database.resource.DException; 4 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 5 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator; 6 import com.daffodilwoods.database.general.*; 7 import com.daffodilwoods.daffodildb.server.sessionsystem.SystemFieldsCharacteristics; 8 9 17 public class ReadCommittedForLock implements _SessionCondition { 18 19 Object [] condition; 20 public ReadCommittedForLock(Object [] presentConditionValues) throws DException{ 21 condition = new Object [2]; 22 Object sessionIds = presentConditionValues; 23 condition[0] = sessionIds; 24 condition[1] = sessionIds; 25 } 26 27 33 public boolean evaluate(_Iterator nonIndexedIterator ) throws DException { 34 Object [] valuesToCompare = (Object [])nonIndexedIterator.getColumnValues( SystemFieldsCharacteristics.SIS ); return !(StaticConditionHelper.solveInConditon((Object [])condition[0],(FieldBase)valuesToCompare[0]) || 36 StaticConditionHelper.solveInConditon((Object [])condition[1],(FieldBase)valuesToCompare[1]) ); 37 } 38 39 40 45 public void setParameterValues(Object [] values) throws DException { 46 Object sessionIds = (Object [])values[0]; 47 condition[0] = sessionIds; 48 condition[1] = sessionIds; 49 } 50 51 public String toString(){ 52 return "[ READ_COMMITTED_FOR_LOCK_CONDITION => ( not ( (sessionId in ("+condition[0]+") or invalidSessionId in ("+condition[1]+") ))) ]"; 53 } 54 55 } 56 | Popular Tags |