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 15 public class InvalidRecordCondition implements _SessionCondition { 16 17 Object [] condition; 18 private static int[] ITIS = {SystemFields.invalidTransactionId ,SystemFields.invalidSessionId }; 19 public InvalidRecordCondition(Object invalidSessionId) { 20 condition = new Object [2]; 21 FieldBase bytesForMaxIntegerValue = (FieldBase)SystemFields.maxIntegerValue; 22 condition[0] = bytesForMaxIntegerValue; 23 condition[1] = invalidSessionId ; 24 } 25 26 32 public boolean evaluate(_Iterator nonIndexedIterator ) throws DException { 33 Object [] valuesToCompare = (Object [])nonIndexedIterator.getColumnValues(ITIS); return (StaticConditionHelper.compare(condition[0],valuesToCompare[0]) == 0 ) 35 && (StaticConditionHelper.compare(condition[1],valuesToCompare[1]) == 0); 36 } 37 38 39 44 public void setParameterValues(Object [] values) throws DException { 45 Object invalidSessionId = values[0] ; 46 condition[1] = invalidSessionId; 47 } 48 49 public String toString(){ 50 try { 51 return "[ INVALID_RECORD_CONDITION => invalidTransactionId = MaxIntegerValue and invalidSessionId = "+((FieldBase)condition[1]).getObject()+" ]"; 52 } 53 catch (DException ex) { 54 return null; 55 } 56 } 57 58 public boolean evaluateWithValues(Object [] valuesToCompare ) throws DException { 59 return (StaticConditionHelper.compare(condition[0],valuesToCompare[SystemFields.invalidTransactionId]) == 0 ) 60 && (StaticConditionHelper.compare(condition[1],valuesToCompare[SystemFields.invalidSessionId]) == 0); 61 } 62 63 } 64 | Popular Tags |