KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.daffodilwoods.daffodildb.server.sessionsystem;
2
3 import java.util.*;
4
5
6 import com.daffodilwoods.daffodildb.client.*;
7 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.*;
8 import com.daffodilwoods.daffodildb.server.datasystem.utility._Record;
9 import com.daffodilwoods.daffodildb.server.sessionsystem.sessioncondition.*;
10 import com.daffodilwoods.daffodildb.server.sql99.common.*;
11 import com.daffodilwoods.daffodildb.server.sql99.dql.execution.*;
12 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*;
13 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
14 import com.daffodilwoods.daffodildb.utils.comparator.*;
15 import com.daffodilwoods.daffodildb.utils.field.*;
16 import com.daffodilwoods.database.resource.*;
17 import com.daffodilwoods.database.sqlinitiator.*;
18 import com.daffodilwoods.database.general.SystemFields;
19 import com.daffodilwoods.daffodildb.utils.FieldUtility;
20 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.DatabaseConstants;
21 import com.daffodilwoods.daffodildb.utils.byteconverter.CCzufDpowfsufs;
22 import com.daffodilwoods.daffodildb.utils.BufferRange;
23 public class SessionIteratorWithoutCondition extends BaseExceptionSingleIterator
24  implements _Iterator, _TableOperations, _IndexIteratorInfo{
25     _Iterator iterator;
26     int[] columnIndexesUntillRowID;
27     SuperComparator objectComparator;
28
29
30     public SessionIteratorWithoutCondition( _Iterator iterator0) {
31         iterator = iterator0;
32
33         Object JavaDoc[] allColumns = null;
34         try {
35             allColumns = iterator.getUniqueColumnReference();
36             int[] cloumnIndexes = (int[])allColumns[0];
37             String JavaDoc[] columnNames = (String JavaDoc[])allColumns[1];
38             ArrayList list = new ArrayList();
39
40             for (int i = 0; i < columnNames.length; i++) {
41                 list.add(new Integer JavaDoc(cloumnIndexes[i]));
42                 if((columnNames[i].equalsIgnoreCase(SystemFields.systemFields[SystemFields.rowId]))){
43                     break;
44                 }
45             }
46
47         columnIndexesUntillRowID = new int[list.size()];
48         for (int j = 0; j < list.size(); j++) {
49             columnIndexesUntillRowID[j] = ((Integer JavaDoc)list.get(j)).intValue();
50         }
51         objectComparator = ((_IndexIteratorInfo)iterator).getComparator();
52         }
53         catch (Exception JavaDoc ex) {
54         }
55     }
56
57     public void setKeyCount(Object JavaDoc[][] tableAndKeyCount) throws DException {
58   /**@todo Implement this com.daffodilwoods.daffodildb.server.sql99.dql.interfaces._Iterator method*/
59   throw new java.lang.UnsupportedOperationException JavaDoc("Method setKeyCount() not yet implemented.");
60 }
61
62
63     public _OrderCount getOrderCounts() throws com.daffodilwoods.database.resource.DException {
64         return iterator.getOrderCounts();
65     }
66
67     public TableDetails[] getTableDetails() throws com.daffodilwoods.database.resource.DException {
68         return iterator.getTableDetails();
69     }
70
71     public _Iterator getBaseIterator(ColumnDetails column) throws com.daffodilwoods.database.resource.DException {
72         return iterator.getBaseIterator(column);
73     }
74
75     public void setConditionVariableValue(_Reference[] parm1, Object JavaDoc[] parm2, int parm3) throws com.daffodilwoods.database.resource.DException {
76         iterator.setConditionVariableValue(parm1,parm2,parm3);
77     }
78
79     public Object JavaDoc getColumnValues() throws com.daffodilwoods.database.resource.DException {
80         return iterator.getColumnValues();
81     }
82     public _KeyColumnInformation[] getKeyColumnInformations() throws com.daffodilwoods.database.resource.DException {
83         _KeyColumnInformation[] keyColumnInformation = iterator.getKeyColumnInformations();
84         if(columnIndexesUntillRowID == null)
85            return keyColumnInformation;
86         _KeyColumnInformation[] keyColumnInformationToReturn = new _KeyColumnInformation[columnIndexesUntillRowID.length];
87         for (int i = 0; i < columnIndexesUntillRowID.length; i++) {
88             keyColumnInformationToReturn[i] = keyColumnInformation[i];
89         }
90
91         return keyColumnInformationToReturn;
92     }
93
94     public Object JavaDoc[] getUniqueColumnReference() throws com.daffodilwoods.database.resource.DException {
95         return iterator.getUniqueColumnReference();
96     }
97
98
99     public boolean seek(Object JavaDoc parm1) throws DException {
100       if(!(parm1 instanceof Object JavaDoc[] ))
101         parm1 = new Object JavaDoc[]{parm1};
102       return iterator.seek(parm1);
103     }
104
105     public _Order getDefaultOrder() throws com.daffodilwoods.database.resource.DException {
106         return iterator.getDefaultOrder();
107     }
108
109     public Object JavaDoc getColumnValues(_Reference[] parm1) throws com.daffodilwoods.database.resource.DException {
110         return iterator.getColumnValues(parm1);
111     }
112     public Object JavaDoc getColumnValues(_Reference parm1) throws com.daffodilwoods.database.resource.DException {
113         return iterator.getColumnValues(parm1);
114     }
115     public boolean seekFromTop(_IndexPredicate[] parm1) throws com.daffodilwoods.database.resource.DException {
116         return iterator.seekFromTop(parm1);
117     }
118     public boolean seekFromTopRelative(Object JavaDoc parm1) throws com.daffodilwoods.database.resource.DException {
119         return iterator.seekFromTopRelative(parm1);
120     }
121     public boolean seekFromBottom(_IndexPredicate[] parm1) throws com.daffodilwoods.database.resource.DException {
122         return iterator.seekFromBottom(parm1);
123     }
124     public boolean seekFromBottomRelative(Object JavaDoc parm1) throws com.daffodilwoods.database.resource.DException {
125         return iterator.seekFromBottomRelative(parm1);
126     }
127     public boolean first() throws com.daffodilwoods.database.resource.DException {
128         return iterator.first();
129     }
130     public boolean last() throws com.daffodilwoods.database.resource.DException {
131         return iterator.last();
132     }
133     public boolean next() throws com.daffodilwoods.database.resource.DException {
134         return iterator.next();
135     }
136     public boolean previous() throws com.daffodilwoods.database.resource.DException {
137         return iterator.previous();
138     }
139     public Object JavaDoc getKey() throws com.daffodilwoods.database.resource.DException {
140         return iterator.getColumnValues(columnIndexesUntillRowID);
141     }
142
143     public void move(Object JavaDoc parm1) throws com.daffodilwoods.database.resource.DException {
144        if( !seek(parm1)){
145           throw new DException("DSE5518",null);
146         }
147     }
148
149     public Object JavaDoc getColumnValues(int[] parm1) throws com.daffodilwoods.database.resource.DException {
150         return iterator.getColumnValues(parm1);
151     }
152
153     public _Record getRecord() throws com.daffodilwoods.database.resource.DException {
154         return iterator.getRecord();
155     }
156     public void insert(Object JavaDoc parm1) throws com.daffodilwoods.database.resource.DException {
157         ((_TableOperations)iterator).insert(parm1);
158     }
159     public void update(Object JavaDoc parm1) throws com.daffodilwoods.database.resource.DException {
160         ((_TableOperations)iterator).update(parm1);
161     }
162     public void update(int[] parm1, Object JavaDoc[] parm2) throws com.daffodilwoods.database.resource.DException {
163         ((_TableOperations)iterator).update(parm1,parm2);
164     }
165     public void delete() throws com.daffodilwoods.database.resource.DException {
166         ((_TableOperations)iterator).delete();
167     }
168
169     public int getBtreeIndex() throws com.daffodilwoods.database.resource.DException {
170         return ((_IndexIteratorInfo)iterator).getBtreeIndex();
171     }
172     public boolean locateKey(Object JavaDoc parm1, boolean parm2) throws com.daffodilwoods.database.resource.DException {
173         return ((_IndexIteratorInfo)iterator).locateKey(parm1,parm2);
174     }
175
176
177     public void ensureRecordInMemory() throws com.daffodilwoods.database.resource.DException {
178         ((_IndexIteratorInfo)iterator).ensureRecordInMemory();
179
180     }
181     public void moveOnActualKey(Object JavaDoc parm1) throws com.daffodilwoods.database.resource.DException {
182         iterator.seek(parm1);
183     }
184     public Object JavaDoc getActualKey() throws com.daffodilwoods.database.resource.DException {
185         return iterator.getKey();
186     }
187     public String JavaDoc toString(){
188          return "RowIdSessionIterator["+ iterator + "]";
189     }
190   public Object JavaDoc getColumnValues(int column) throws DException {
191     /**@todo Implement this com.daffodilwoods.daffodildb.server.datasystem.interfaces._TableIterator method*/
192     throw new java.lang.UnsupportedOperationException JavaDoc("Method getColumnValues() not yet implemented.");
193   }
194
195    public _ExecutionPlan getExecutionPlan() throws DException{
196      _ExecutionPlan plan = iterator.getExecutionPlan();
197      _ExecutionPlan cplans[] = plan == null ? null : new _ExecutionPlan[]{plan};
198      return new ExecutionPlan("RowIdSessionIterator",cplans, null ,null,null);
199   }
200   public boolean seekKeyAddress(Object JavaDoc parm1) throws com.daffodilwoods.database.resource.DException {
201       return ((_IndexIteratorInfo)iterator).seekKeyAddress(parm1);
202   }
203   public Object JavaDoc getPhysicalAddress() throws com.daffodilwoods.database.resource.DException {
204       /**@todo Implement this com.daffodilwoods.daffodildb.server.datasystem.interfaces._IndexIteratorInfo method*/
205       throw new java.lang.UnsupportedOperationException JavaDoc("Method getPhysicalAddress() not yet implemented.");
206   }
207
208    public ExecutionPlanForBrowser getExecutionPlanForBrowser() throws DException {
209       return iterator.getExecutionPlanForBrowser();
210    }
211     public SuperComparator getComparator() {
212         return ((_IndexIteratorInfo)iterator).getComparator();
213     }
214     public SuperComparator getObjectComparator() throws com.daffodilwoods.database.resource.DException {
215         return objectComparator;
216     }
217   public _Iterator getBaseIteratorHasRecord(ColumnDetails hasRecordColumn) throws DException {
218     return iterator.getBaseIteratorHasRecord(hasRecordColumn);
219   }
220     public FieldBase field(_Reference reference) throws com.daffodilwoods.database.resource.DException {
221         return iterator.field(reference);
222     }
223     public FieldBase[] fields(_Reference[] references) throws com.daffodilwoods.database.resource.DException {
224         return iterator.fields(references);
225     }
226     public FieldBase[] fields(int[] columns) throws com.daffodilwoods.database.resource.DException {
227         return iterator.fields(columns);
228     }
229   public void releaseResource() throws DException {
230     iterator.releaseResource();
231   }
232
233   public byte[] getByteKey() throws DException{
234     FieldBase[] columnValues = FieldUtility.changeIntoFildBase(getKey());
235     int numberOfColumns = columnValues.length;
236     int totalLengthOfKey = numberOfColumns * 2 * SessionIterator.LENGTH + SessionIterator.LENGTH;
237     for (int i = 0; i < numberOfColumns; i++) {
238       totalLengthOfKey += columnValues[i].getLength();
239     }
240     byte[] byteKey = new byte[totalLengthOfKey];
241     int pointer = 0;
242     System.arraycopy(CCzufDpowfsufs.getBytes((short)numberOfColumns),0,byteKey,pointer,SessionIterator.LENGTH);
243     pointer+=SessionIterator.LENGTH;
244     for (int i = 0; i < numberOfColumns; i++) {
245       short dataType =(short) columnValues[i].getDatatype();
246       short length = 0;
247       byte[] columnValue = new byte[]{};
248        if(!columnValues[i].isNull()){
249          columnValue = columnValues[i].getBytes();
250          length = (short) columnValue.length;
251        }
252
253       System.arraycopy(CCzufDpowfsufs.getBytes(dataType),0,byteKey,pointer,SessionIterator.LENGTH);
254       pointer+=SessionIterator.LENGTH;
255       System.arraycopy(CCzufDpowfsufs.getBytes(length),0,byteKey,pointer,SessionIterator.LENGTH);
256       pointer+=SessionIterator.LENGTH;
257       System.arraycopy(columnValue,0,byteKey,pointer,length);
258       pointer+=length;
259     }
260     return byteKey;
261   }
262   public void moveByteKey(byte[] key) throws DException{
263 int pointer=0;
264 int numberOfColumns = CCzufDpowfsufs.getShortValue(key,pointer);
265 pointer+=SessionIterator.LENGTH;
266 FieldBase[] columnValues = new FieldBase[numberOfColumns];
267 for (int i = 0; i < numberOfColumns; i++) {
268   int dataType = CCzufDpowfsufs.getShortValue(key,pointer);
269   pointer+=SessionIterator.LENGTH;
270   int columnLength = CCzufDpowfsufs.getShortValue(key,pointer);
271   pointer+=SessionIterator.LENGTH;
272   byte[] b = new byte[columnLength];
273   System.arraycopy(key,pointer,b,0,columnLength);
274   BufferRange buffer= null;
275   if (columnLength == 0)
276     buffer = FieldUtility.NULLBUFFERRANGE;
277   else
278     buffer = new BufferRange(b, 0, columnLength);
279   columnValues[i] = FieldUtility.getField(dataType,buffer);
280   pointer+=columnLength;
281 }
282 moveOnActualKey(columnValues);
283 }
284
285   public void deleteBlobClobRecord(_DatabaseUser user) throws com.daffodilwoods.database.resource.DException {
286         ((_TableOperations)iterator).deleteBlobClobRecord(user) ;
287     }
288
289
290 }
291
Popular Tags