1 package com.daffodilwoods.daffodildb.server.sessionsystem.sessioncondition; 2 3 import com.daffodilwoods.database.resource.DException; 4 import com.daffodilwoods.daffodildb.utils.byteconverter.CCzufDpowfsufs; 5 import com.daffodilwoods.daffodildb.utils.field.FieldBase; 6 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator; 7 import com.daffodilwoods.database.general.SystemFields; 8 9 15 public class PersistentCondition implements _SessionCondition { 16 17 Object [] condition; 18 private static int[] TIT = {SystemFields.transactionId ,SystemFields.invalidTransactionId } ; 19 public PersistentCondition(Object presentConditionValues) { 20 condition = new Object [2]; 21 Object transactionId = presentConditionValues; 22 condition[0] = transactionId; 23 condition[1] = transactionId; 24 } 25 26 27 public boolean evaluate(_Iterator nonIndexedIterator ) throws DException { 28 Object [] valuesToCompare = (Object [])nonIndexedIterator.getColumnValues( TIT); return ((StaticConditionHelper.compare(condition[0],valuesToCompare[0]) == 0 ) || 30 (StaticConditionHelper.compare(condition[1],valuesToCompare[1]) == 0) ); 31 } 32 33 34 public void setParameterValues(Object [] values) throws DException { 35 Object transactionId = values[0]; 36 condition[0] = transactionId; 37 condition[1] = transactionId; 38 } 39 40 public String toString(){ 41 try { 42 return "[ PERSISTENT_CONDITION_WITH_CHILD => transactionId = "+CCzufDpowfsufs.getLong((byte[])condition[0])+" OR " + SystemFields.systemFields[SystemFields.invalidTransactionId] +" = "+((FieldBase)condition[1]).getObject()+" ]"; 43 } 44 catch (DException ex) { 45 return null; 46 } 47 } 48 } 49 | Popular Tags |