KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > datasystem > indexsystem > BTreeCharacteristics


1 package com.daffodilwoods.daffodildb.server.datasystem.indexsystem;
2
3 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference;
4 import com.daffodilwoods.daffodildb.server.sql99.utils._VariableValues;
5 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.*;
6 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._TableCharacteristics;
7 import com.daffodilwoods.database.resource.DException;
8 import com.daffodilwoods.database.utility.*;
9 import java.util.*;
10 import com.daffodilwoods.daffodildb.utils.BufferRange;
11
12 /**
13  * Needed at the time of solving the condition while seeking.
14  */

15
16 public class BTreeCharacteristics implements _BTreeCharacteristics,DatabaseConstants{
17
18    private String JavaDoc[] columnNames;
19    private int[][] mapping;
20    private _TableCharacteristics tableCharacteristics;
21
22
23     public BTreeCharacteristics(int[][] mapping0,_TableCharacteristics tc) throws DException{
24         columnNames = tc.getColumnNames();
25         mapping = mapping0;
26         tableCharacteristics = tc;
27     }
28
29     public Object JavaDoc getColumnValues(_Reference[] references, Object JavaDoc value ) throws DException {
30             Object JavaDoc[] values = (Object JavaDoc[])value;
31             Object JavaDoc[] vals = new Object JavaDoc[references.length];
32             for(int i = 0,index ; i < references.length ; i++){
33                 index = getIndexFromReference(references[i]);
34                 vals[i] = tableCharacteristics.getObject(index,(BufferRange)values[mapping[index][1]]) ;
35             }
36             return vals;
37     }
38
39     public Object JavaDoc getColumnValues(_Reference reference, Object JavaDoc value) throws DException {
40         Object JavaDoc[] values = (Object JavaDoc[])value;
41         int index = getIndexFromReference(reference);
42         Object JavaDoc val = null;
43          return val = tableCharacteristics.getObject(index, (BufferRange) values[mapping[index][1]]);
44     }
45
46     private int getIndexFromReference(_Reference reference)throws DException{
47         int index = -1;
48         try{
49             return reference.getIndex();
50         }
51         catch(DException de) {
52             if(!de.getDseCode().equalsIgnoreCase("DSE565"))
53                 throw de;
54             String JavaDoc name = reference.getColumn();
55             int k = 0;
56             int length = columnNames.length;
57             for( ; k < length && !name.equalsIgnoreCase(columnNames[k]) ; k++ );
58             if(k != length)
59                 reference.setIndex(index = k);
60             else
61                 throw COLUMN_NOTFOUND_EXCEPTION;
62         }
63        return index;
64     }
65 }
66
Popular Tags