KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.daffodilwoods.daffodildb.server.datasystem.indexsystem;
2
3 import com.daffodilwoods.daffodildb.server.datasystem.interfaces._TableCharacteristics;
4 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.TableCharacteristics;
5 import com.daffodilwoods.database.resource.DException;
6 import com.daffodilwoods.daffodildb.utils.byteconverter.CbCzufIboemfs;
7 import com.daffodilwoods.daffodildb.server.sql99.common.ColumnDetails;
8 import com.daffodilwoods.daffodildb.server.sql99.common.Datatypes;
9 import com.daffodilwoods.daffodildb.server.datasystem.utility.ByteHandler;
10 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.ColumnInformation;
11 import com.daffodilwoods.daffodildb.server.sql99.utils._VariableValues;
12
13 public class IndexColumnInformation {
14
15
16     private boolean isVariable;
17
18     private boolean[] isFixedColumns;
19
20     private int recordSize;
21
22     private int [] sizeOfColumns;
23
24     private int[] typeOfColumns;
25
26
27     private int numberOfvariableColumns;
28
29     private String JavaDoc[] indexColumnNames;
30
31     private CbCzufIboemfs[] handlers ;
32
33
34     public IndexColumnInformation(ColumnDetails[] columnDetails, _VariableValues vv) throws DException{
35       isVariable = false;
36       int len = columnDetails.length;
37       sizeOfColumns = new int[len];
38       typeOfColumns = new int[len];
39       isFixedColumns = new boolean[len];
40       indexColumnNames = new String JavaDoc[len];
41       handlers = new CbCzufIboemfs[len];
42       for (int i = 0; i < len; i++) {
43         indexColumnNames[i] = columnDetails[i].getColumn();
44         columnDetails[i].setByteComparisonObject(vv);
45         typeOfColumns[i] = columnDetails[i].getDatatypeForOrder();
46         if (typeOfColumns[i] == Datatypes.NUMERIC ||
47             typeOfColumns[i] == Datatypes.DECIMAL ||
48             typeOfColumns[i] == Datatypes.DEC
49             || typeOfColumns[i] == Datatypes.BIGDECIMAL ||
50             typeOfColumns[i] == Datatypes.VARCHAR
51             || typeOfColumns[i] == Datatypes.CHARACTERVARYING ||
52             typeOfColumns[i] == Datatypes.CHARVARYING
53             || typeOfColumns[i] == Datatypes.BITVARYING ||
54             typeOfColumns[i] == Datatypes.VARBINARY ||
55             typeOfColumns[i] == Datatypes.NUMBER ||
56             typeOfColumns[i] == Datatypes.CHAR ||
57             typeOfColumns[i] == Datatypes.CHARACTER) {
58           isFixedColumns[i] = false;
59           isVariable = true;
60         }
61         else {
62           sizeOfColumns[i] = columnDetails[i].getSizeForOrder();
63           isFixedColumns[i] = true;
64         }
65         handlers[i] = ByteHandler.getByteHandler(typeOfColumns[i],
66                                                  typeOfColumns[i], null);
67         if (isFixedColumns[i])
68           recordSize = recordSize + sizeOfColumns[i];
69         else
70           numberOfvariableColumns++;
71       }
72     }
73
74
75     public IndexColumnInformation(_TableCharacteristics tc,Object JavaDoc[][] columnInformations0,boolean isVariable0) throws DException{
76         int len = columnInformations0.length;
77         sizeOfColumns = new int[len];
78         typeOfColumns = new int[len];
79         isFixedColumns = new boolean[len];
80         indexColumnNames = new String JavaDoc[len];
81         handlers = new CbCzufIboemfs[len];
82         for( int i = 0,index ; i < len ; i++ ){
83             Object JavaDoc[] columns = (Object JavaDoc[])columnInformations0[i];
84             indexColumnNames[i] = (String JavaDoc)columns[0];
85             index = columns[2].hashCode();
86             sizeOfColumns[i] = ((TableCharacteristics)tc).getColumnSize(index);
87             typeOfColumns[i] = ((TableCharacteristics)tc).getColumnType(index);
88             isFixedColumns[i] = ((TableCharacteristics)tc).isFixedColumn(index);
89             handlers[i] = ((TableCharacteristics)tc).getHandler(index);
90                     if(isFixedColumns[i])
91                         recordSize = recordSize + sizeOfColumns[i];
92                     else
93                         numberOfvariableColumns++;
94         }
95         isVariable = isVariable0;
96     }
97
98    public boolean[] getFixedColumns() {
99         return isFixedColumns;
100     }
101
102   public int[] getSizeOfColumns() {
103         return sizeOfColumns;
104     }
105
106   public int numberOfVariableColumns() {
107         return numberOfvariableColumns;
108     }
109
110  public int getRecordSize() {
111         return recordSize;
112     }
113
114    public boolean isVariableColumn() throws DException {
115       return isVariable;
116     }
117
118     public CbCzufIboemfs[] getHandlers() throws DException {
119       return handlers;
120     }
121
122     public int[] getTypeOfColumns() {
123       return typeOfColumns;
124     }
125     public String JavaDoc[] getIndexColumnNames() {
126       return indexColumnNames;
127     }
128   }
129
Popular Tags