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 import com.daffodilwoods.daffodildb.server.sessionsystem.SystemFieldsCharacteristics; 8 9 18 public class ReadRepeatableCondition implements _SessionCondition { 19 20 Object [] condition ; 21 22 public ReadRepeatableCondition(Object presentConditionValues) throws DException{ 23 condition = new Object [4]; 24 FieldBase bytesForMaxIntegerValue = (FieldBase)SystemFields.maxIntegerValue; 25 condition[0] = presentConditionValues; condition[1] = bytesForMaxIntegerValue; 27 condition[2] = bytesForMaxIntegerValue; 28 condition[3] = bytesForMaxIntegerValue; 29 } 30 31 37 public boolean evaluate(_Iterator nonIndexedIterator) throws DException { 38 Object [] valuesToCompare = (Object [])nonIndexedIterator.getColumnValues(SystemFieldsCharacteristics.TISIT ); return (StaticConditionHelper.compare(condition[0],valuesToCompare[0]) < 0 ) 40 && (StaticConditionHelper.compare(condition[1],valuesToCompare[0]) != 0) 41 && (StaticConditionHelper.compare(condition[2],valuesToCompare[1]) == 0) 42 && (StaticConditionHelper.compare(condition[3],valuesToCompare[2]) == 0); 43 44 } 45 46 51 public void setParameterValues(Object [] values) throws DException{ 52 condition[0] = values[0] ; 53 } 54 55 public String toString(){ 56 try { 57 return "[ READ_REPEATABLE_CONDITION => transactionId > "+((FieldBase)condition[0]).getObject()+" and transactionid <> maxIntegerValue and "+ 58 " invalidSessionId = maxIntegerValue and invalidTransactionId = maxIntegerValue ] "; 59 } 60 catch (DException ex) { 61 return null; 62 } 63 } 64 65 } 66 67 | Popular Tags |