KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > utils > ByteComparison


1 package com.daffodilwoods.daffodildb.server.sql99.utils;
2
3 import com.daffodilwoods.daffodildb.utils.field.FieldBase;
4 import com.daffodilwoods.daffodildb.server.sql99.common.Datatypes;
5 import com.daffodilwoods.database.resource.DException;
6 import java.util.Arrays JavaDoc;
7 import com.daffodilwoods.database.utility.P;
8
9 public class ByteComparison implements Datatypes {
10
11   private boolean byteUsages;
12   private int[] dataTypes;
13   private Object JavaDoc[] field;
14   private int size=-1;
15   public ByteComparison(boolean byteUsages0 ) {
16     byteUsages = byteUsages0;
17   }
18
19   public ByteComparison(boolean byteUsages0 ,int[] dataTypes0) {
20     byteUsages = byteUsages0;
21     dataTypes = dataTypes0;
22   }
23   public boolean canUseByteComparison() {
24     return byteUsages;
25   }
26
27   public int[] getDataTypes() {
28     return dataTypes;
29   }
30
31   public int getSize() throws DException{
32     if(size!=-1){
33       return size;
34     }
35     switch (dataTypes[0]) {
36       case BYTE:
37       case TINYINT:
38         return Datatypes.BYTESIZE;
39       case SHORT:
40       case SMALLINT:
41         return Datatypes.SHORTSIZE;
42       case INTEGER:
43       case INT:
44         return Datatypes.INTSIZE;
45       case LONG:
46       case BIGINT:
47         return Datatypes.LONGSIZE;
48       case REAL:
49         return Datatypes.REALSIZE;
50       case DOUBLE:
51         return Datatypes.DOUBLESIZE;
52       case FLOAT:
53         return Datatypes.FLOATSIZE;
54       case DOUBLEPRECISION:
55         return Datatypes.DOUBLESIZE;
56       case DATE:
57         return Datatypes.DATESIZE;
58       case TIME:
59         return Datatypes.TIMESIZE;
60       case TIMESTAMP:
61         return Datatypes.TIMESTAMPSIZE;
62       case VARCHAR:
63         return Datatypes.VARCHARSIZE;
64
65       case -1:
66         if(field != null){
67           ((FieldBase)field[0]).setDatatype(-1);
68           dataTypes[0] = ((FieldBase)field[0]).getDatatype();
69           return getSize();
70         }
71       default:
72         return -5;
73     }
74   }
75
76   public void setField(Object JavaDoc[] field0){
77     field = field0;
78   }
79
80   public Object JavaDoc[] getField(){
81     return field == null ? new Object JavaDoc[1] : field;
82   }
83
84
85   public String JavaDoc toString(){
86     return " byteUsages = "+byteUsages+" dataTypes = "+P.print(dataTypes)+" fields = "+(field!=null?Arrays.asList(field):null);
87   }
88
89   public void setSize(int size0) {
90     size=size0;
91   }
92 }
93
Popular Tags