KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sessionsystem > SystemFieldsCharacteristics


1 package com.daffodilwoods.daffodildb.server.sessionsystem;
2
3
4
5
6 import com.daffodilwoods.daffodildb.server.sql99.utils.parser.SessionConditionParser;
7
8
9 import com.daffodilwoods.database.general.*;
10 import com.daffodilwoods.database.sqlinitiator.*;
11 import com.daffodilwoods.database.resource.*;
12 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.*;
13 import com.daffodilwoods.daffodildb.utils.FieldUtility;
14
15
16 /**
17  *
18  * <p>Title: </p> System Fields Characteristics
19  * <p>Description: </p>
20  * Provides the all the conditions which is used by session. It parses and
21  * caches the session condition.
22  */

23 public class SystemFieldsCharacteristics {
24
25    /**
26     * Indexes of the System Fields
27     */

28
29   private static int[] systemFields = { 0,1,2,3,4 } ;
30
31   /**
32    * No of System Fields
33    */

34   private static int systemColumnCount = 5;
35
36   /**
37    * Default values for a new Row
38    */

39
40   private static Object JavaDoc[] defaultValue = new Object JavaDoc[]{ FieldUtility.getField(new Long JavaDoc(Long.MAX_VALUE)),
41     FieldUtility.getField(new Long JavaDoc(Long.MAX_VALUE)),FieldUtility.getField(new Long JavaDoc(Long.MAX_VALUE)),
42     FieldUtility.getField(new Long JavaDoc(Long.MAX_VALUE)),FieldUtility.getField(new Long JavaDoc(Long.MAX_VALUE)) };
43
44   private static booleanvalueexpression invalidRecordCondition,
45   recordsValidityCondition,repeatableFilterCondition;
46
47   public static final int[] RTS = {SystemFields.rowId ,SystemFields.transactionId , SystemFields.sessionId };
48
49   public static final int[] TS = {SystemFields.transactionId ,SystemFields.sessionId };
50
51   public static final int[] IS ={SystemFields.invalidSessionId };
52
53   public static final int[] ISIT = {SystemFields.invalidSessionId , SystemFields.invalidTransactionId };
54
55   public static final int[] SIS = {SystemFields.sessionId ,SystemFields.invalidSessionId };
56
57   public static final int[] SIST = {SystemFields.sessionId ,SystemFields.invalidSessionId ,SystemFields.transactionId };
58
59   public static final int[] TISIT = {SystemFields.transactionId ,SystemFields.invalidSessionId ,SystemFields.invalidTransactionId };
60
61
62
63   /**
64    * Constructs SystemFieldsCharacteristics
65    * @throws DException
66    */

67   public SystemFieldsCharacteristics()throws DException{
68     setInvlidRecordCondition();
69     setRecordValidityCondition();
70     setRepeatableFilterCondition();
71   }
72
73
74
75 /*
76   public static booleanvalueexpression getUnlockedCommittedCondition() throws DException{
77      return unLockedCommitted;
78   }
79
80   private void setCriteriaForRollBackNCommit()throws DException{
81     String critForRollBackNCommit = "__invalidSessionId = ? or __sessionId = ?";
82     criteriaForRollBackNCommit = (booleanvalueexpression)SessionConditionParser.parseCondition( critForRollBackNCommit );
83   }
84
85   private void setTransactionSessionCondition()throws DException{
86     String tranSessionCond = "((__transactionId <= ? and __InvalidTransactionId > ? and __invalidSessionId not in (?) ) or (__transactionId > ? and __sessionId in (?) and __invalidSessionId not in (?) ))";
87     transactionSessionCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( tranSessionCond );
88   }
89 */

90
91
92   private void setInvlidRecordCondition()throws DException{
93     String JavaDoc invalidRecordCond = "__InvalidTransactionId = " + SystemFields.maxIntegerValue +" and __invalidSessionId = ? ";
94     invalidRecordCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( invalidRecordCond );
95   }
96   private void setRecordValidityCondition()throws DException{
97     String JavaDoc recordsValidityCond = "__invalidSessionId = " + SystemFields.maxIntegerValue +" and __InvalidTransactionId = " + SystemFields.maxIntegerValue;
98     recordsValidityCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( recordsValidityCond );
99   }
100
101 /*
102   private void setRowIdCondition()throws DException{
103     String rowCond = "__rowid = ? ";
104     rowCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( rowCond );
105   }
106
107   private void setInsertDeletedCondition()throws DException{
108     String insertDeletedCond = " __sessionId = ? and __invalidSessionId = ? and __transactionId = ? ";
109     insertDeletedCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( insertDeletedCond );
110   }
111
112   private void setInvalidCommittedCondition()throws DException{
113     String invalidCommittedCond = "__invalidSessionId = ? and __transactionId <> ?";
114     invalidCommittedCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( invalidCommittedCond );
115   }
116
117   private void setInsertedCondition()throws DException{
118     String insertedCond = "__sessionId = ? and __transactionId = ?";
119     insertedCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( insertedCond );
120   }
121 */
/*
122   private void setTransactionCondition()throws DException{
123     String transactionCond = "__transactionId = ?" ;
124     transactionCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( transactionCond );
125   }
126
127   private void setInvalidTransactionCondition()throws DException{
128     String transactionCond = "__InvalidTransactionId = ?" ;
129     invalidTransactionConditon = (booleanvalueexpression)SessionConditionParser.parseCondition( transactionCond );
130   }
131
132   private void setMultipleTransactionCondition()throws DException{
133     String transactionCond = "__transactionId = ?" ;
134     multipleTransactionCondition = (booleanvalueexpression)SessionConditionParser.parseCondition( transactionCond );
135   }
136
137   private void setReadCommitted()throws DException{
138       String readCommittedCond = "((__invalidSessionId = ? and __InvalidTransactionId = "+ SystemFields.maxIntegerValue+") and (__transactionId <> "+ SystemFields.maxIntegerValue+" or __sessionId in (?)))";
139       readCommitted = (booleanvalueexpression)SessionConditionParser.parseCondition( readCommittedCond );
140   }
141
142   private void setReadCommittedForLock()throws DException{
143       String readCommittedCond = "( not ( (__sessionId in (?) or __invalidSessionId in (?) ) ) )";
144       readCommittedForLock = (booleanvalueexpression)SessionConditionParser.parseCondition( readCommittedCond );
145   }
146 */

147   private void setRepeatableFilterCondition() throws DException{
148       String JavaDoc repetableFilterCond = "( __rowId = ? and __transactionId <= ? )";
149       repeatableFilterCondition = SessionConditionParser.parseCondition( repetableFilterCond );
150   }
151 /*
152   private void setUnlockSessionTableMemoryCondition() throws DException{
153       String memoryCondition = "( __sessionId = ? or __invalidSessionId = ? )";
154       unlockSessionTableMemoryCondition = SessionConditionParser.parseCondition( memoryCondition );
155   }*/

156 /*
157   private void setRepetableAndSerializableCondition() throws DException{
158       String mCond = "( __transactionId > ? and __transactionId <> "+ SystemFields.maxIntegerValue + " and __invalidSessionId = "+ SystemFields.maxIntegerValue +" and __InvalidTransactionId = "+ SystemFields.maxIntegerValue+") or (( __transactionId <>"+ SystemFields.maxIntegerValue +"or (__sessionId = ? and __transactionId = "+SystemFields.maxIntegerValue +" ) ) and __invalidSessionId = "+ SystemFields.maxIntegerValue +" and __InvalidTransactionId = "+SystemFields.maxIntegerValue+")" ;
159       repetableAndSerializableCondition = SessionConditionParser.parseCondition( mCond);
160   }
161
162
163
164   private void setReadCommittedInternal()throws DException{
165       String readCommittedCond = "(( __InvalidTransactionId = "+ SystemFields.maxIntegerValue+") and (__transactionId <> "+ SystemFields.maxIntegerValue+" or __sessionId in (?)) and __invalidSessionId != ? )";
166       readCommittedInternal = (booleanvalueexpression)SessionConditionParser.parseCondition( readCommittedCond );
167   }
168
169   private void setReadRepeatable()throws DException{
170       String readRepeatableCond = " __transactionId > ? and __transactionId <> "+ SystemFields.maxIntegerValue + " and __invalidSessionId = "+ SystemFields.maxIntegerValue +" and __InvalidTransactionId = "+ SystemFields.maxIntegerValue; // returns committed records of other user
171     readRepeatable = (booleanvalueexpression)SessionConditionParser.parseCondition( readRepeatableCond );
172   }
173
174   private void setTransactionSerializableCondition()throws DException{
175     String transactionSerializeCond = "( __transactionId <>"+ SystemFields.maxIntegerValue +"or (__sessionId = ? and __transactionId = "+SystemFields.maxIntegerValue +" ) ) and __invalidSessionId = "+ SystemFields.maxIntegerValue +" and __InvalidTransactionId = "+SystemFields.maxIntegerValue ;
176     transactionSerializable = (booleanvalueexpression)SessionConditionParser.parseCondition( transactionSerializeCond );
177   }
178 */

179   /**
180    * Sets a unique value of the key for record.
181    * @throws DException
182    */

183
184   /**
185    * Returns the number of system columns.
186    * @return int
187    */

188   public static int getSystemColumnCount() {
189     return systemColumnCount;
190   }
191
192
193   /**
194    * Returns an array of integers representing the System field column indexes.
195    * @return int[]
196    */

197   public static int[] getSystemFields() {
198     return systemFields;
199   }
200
201   public static Object JavaDoc[] defaultValues() {
202     return defaultValue;
203   }
204   /*
205   public static int getSystemFieldIndex(String systemFieldName) throws DException {
206   for(int i=0; i<systemFields; i++ )
207   if( systemFieldName.equals( systemFields[i] ) )
208   return i;
209   throw new InternalError(" systemFieldName "+ systemFieldName +" does not Exists ");
210   }
211   */

212
213   public static booleanvalueexpression getInvalidRecordCondition() throws DException {
214     return invalidRecordCondition;
215   }
216   public static booleanvalueexpression getRecordsValidityCondition() throws DException {
217     return recordsValidityCondition;
218   }
219   public static int[] getUserColumnIndexes( com.daffodilwoods.daffodildb.server.datasystem.utility._Record record )throws DException{
220     return getUserColumnIndexes( record.getColumnCount());
221   }
222
223
224   public static int[] getUserColumnIndexes( int columnsCount ) throws DException {
225       int[] userColumnIndex = new int[ columnsCount - systemColumnCount];
226     for(int i=0; i< userColumnIndex.length; i++)
227       userColumnIndex[i] = i + systemColumnCount ;
228     return userColumnIndex;
229   }
230
231
232   public static booleanvalueexpression getRepeatableFilterCondition()throws DException{
233       return repeatableFilterCondition;
234   }
235
236
237   /**
238    * Returns a condition for session.
239    * @return booleanvalueexpression
240    * @throws DException
241    */

242 /*
243   public static booleanvalueexpression getSessionCondition() throws DException{
244     if( sessionCondition != null )
245       return sessionCondition;
246     String sessCond = " __sessionId = ?";
247     return (booleanvalueexpression)SessionConditionParser.parseCondition( sessCond );
248   }
249 */

250
251   public static int[] getUserColumnIndexesForDatedTable( int columnsCount ) throws DException {
252       int[] userColumnIndex = new int[ columnsCount - systemColumnCount - 2 ];
253     for(int i=0; i< userColumnIndex.length; i++)
254       userColumnIndex[i] = i + systemColumnCount +2;
255     return userColumnIndex;
256   }
257
258
259
260
261
262 }
263
Popular Tags