KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sessionsystem > sessioncondition > ReadCommitedCondition


1 package com.daffodilwoods.daffodildb.server.sessionsystem.sessioncondition;
2
3 import com.daffodilwoods.database.resource.*;
4 import com.daffodilwoods.daffodildb.utils.byteconverter.*;
5 import com.daffodilwoods.database.general.*;
6 import com.daffodilwoods.daffodildb.server.sessionsystem.*;
7 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
8 import com.daffodilwoods.daffodildb.utils.field.FieldBase;
9 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator;
10
11 /**
12  *
13  * <p>Description: Condition for getting committed records only </p>
14  * <p>Company: </p>
15  * @version 1.0
16  */

17 public class ReadCommitedCondition implements _SessionCondition {
18
19     Object JavaDoc [] condition ;
20 private static int[] ISITTS = {SystemFields.invalidSessionId ,SystemFields.invalidTransactionId ,SystemFields.transactionId,SystemFields.sessionId } ;
21     public ReadCommitedCondition(Object JavaDoc [] presentConditionValues)throws DException {
22         condition = new Object JavaDoc[4];
23         FieldBase bytesForMaxIntegerValue = (FieldBase)SystemFields.maxIntegerValue;
24         condition[0] = bytesForMaxIntegerValue;
25         condition[1] = bytesForMaxIntegerValue;
26         condition[2] = bytesForMaxIntegerValue;
27         condition[3] = (Object JavaDoc[])presentConditionValues[0];
28     }
29
30
31 /**
32  * Evaluates the condition given above.
33  * @param values
34  * @return
35  * @throws DException
36  */

37     public boolean evaluate(_Iterator nonIndexedIterator) throws DException {
38       Object JavaDoc[] valuesToCompare = (Object JavaDoc[])nonIndexedIterator.getColumnValues( ISITTS);//new int[]{SystemFields.invalidSessionId ,SystemFields.invalidTransactionId ,SystemFields.transactionId,SystemFields.sessionId } ) ;
39
return (((StaticConditionHelper.compare(condition[0],valuesToCompare[0]) == 0)
40               && (StaticConditionHelper.compare(condition[1],valuesToCompare[1]) == 0))
41               && ((StaticConditionHelper.compare(condition[2],valuesToCompare[2]) != 0)
42               || (StaticConditionHelper.solveInConditon((Object JavaDoc[])condition[3],(FieldBase)valuesToCompare[3]))));
43
44     }
45
46    /**
47     * refreshes the condition with new values (sessionId)
48     * @param values
49     * @throws DException
50     */

51    public void setParameterValues(Object JavaDoc[] values) throws DException{
52        condition[3] = (Object JavaDoc[])values[0];
53    }
54
55    public String JavaDoc toString(){
56         return "[ READ_COMMITTED_CONDITION => ((invalidSessionId = maxIntegerValue and " + SystemFields.systemFields[SystemFields.invalidTransactionId] +" = maxIntegerValue ) and"+
57                    " (transactionId <> maxIntegerValue or sessionId in ( "+condition[3]+" ) ))) ]";
58    }
59 }
60
Popular Tags