KickJava   Java API By Example, From Geeks To Geeks.

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


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 /**
10  *
11  * <p>Description: Isolation level Read Repetable in which
12  * Dirty Read is Not possible
13  * No Repeatable Read is Not possible only
14  * Phantom Read is Possible. </p>
15  * <p>Company: Daffodil Software Ltd.</p>
16  * @version 1.0
17  */

18 public class ReadRepeatableCondition implements _SessionCondition {
19
20     Object JavaDoc [] condition ;
21
22     public ReadRepeatableCondition(Object JavaDoc presentConditionValues) throws DException{
23         condition = new Object JavaDoc[4];
24         FieldBase bytesForMaxIntegerValue = (FieldBase)SystemFields.maxIntegerValue;
25         condition[0] = presentConditionValues; //transactionid
26
condition[1] = bytesForMaxIntegerValue;
27         condition[2] = bytesForMaxIntegerValue;
28         condition[3] = bytesForMaxIntegerValue;
29     }
30
31  /**
32   * evaluates the condition 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(SystemFieldsCharacteristics.TISIT ); //new int[]{SystemFields.transactionId ,SystemFields.invalidSessionId ,SystemFields.invalidTransactionId } ) ;
39
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     /**
47      * refreshes the condition.
48      * @param values
49      * @throws DException
50      */

51     public void setParameterValues(Object JavaDoc[] values) throws DException{
52         condition[0] = values[0] ;
53     }
54
55     public String JavaDoc 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