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 ; 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 [] 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 [] field0){ 77 field = field0; 78 } 79 80 public Object [] getField(){ 81 return field == null ? new Object [1] : field; 82 } 83 84 85 public String 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 |