KickJava   Java API By Example, From Geeks To Geeks.

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


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
8 public class UnlockCommittedCondition implements _SessionCondition {
9
10     Object JavaDoc[] condition;
11 private static int[] TSISIT = {SystemFields.transactionId ,SystemFields.sessionId ,SystemFields.invalidSessionId ,SystemFields.invalidTransactionId } ;
12
13     public UnlockCommittedCondition( Object JavaDoc presentConditionValues ) throws DException{
14         condition = new Object JavaDoc[4];
15         FieldBase bytesForMaxIntegerValue = (FieldBase)SystemFields.maxIntegerValue;
16         Object JavaDoc sessionIds = (Object JavaDoc[])presentConditionValues;
17         condition[0] = bytesForMaxIntegerValue;
18         condition[1] = sessionIds;
19         condition[2] = sessionIds;
20         condition[3] = bytesForMaxIntegerValue;
21     }
22
23
24     public boolean evaluate(_Iterator nonIndexedIterator) throws DException {
25  Object JavaDoc[] valuesToCompare = (Object JavaDoc[])nonIndexedIterator.getColumnValues(TSISIT ); //new int[]{SystemFields.transactionId ,SystemFields.sessionId ,SystemFields.invalidSessionId ,SystemFields.invalidTransactionId } ) ;
26
return ((StaticConditionHelper.compare(condition[0],valuesToCompare[0]) != 0) ||
27              (StaticConditionHelper.solveInConditon((Object JavaDoc[])condition[1],(FieldBase)valuesToCompare[1] )))
28              && (!( StaticConditionHelper.solveInConditon((Object JavaDoc[])condition[2],(FieldBase)valuesToCompare[2])))
29              && (StaticConditionHelper.compare(condition[3],valuesToCompare[3]) == 0 );
30
31      }
32
33
34     public void setParameterValues(Object JavaDoc[] values) throws DException{
35         Object JavaDoc sessionIds = (Object JavaDoc[])values[0];
36         condition[1] = sessionIds;
37         condition[2] = sessionIds;
38     }
39
40     public String JavaDoc toString(){
41         try {
42             return "[ UNLOCK_COMMITTED_CONDITION => (( transactionId != maxIntegerValue or "+
43                     " sessionId in ("+((FieldBase)condition[1]).getObject()+") ) and invalidSessionId not in ("+((FieldBase)condition[1]).getObject()+") and "+
44                     " InvalidTransactionId = maxIntegerValue ) ]" ;
45         }
46         catch (Exception JavaDoc ex) {
47             return null;
48         }
49     }
50
51
52 }
53
Popular Tags