1 package com.daffodilwoods.daffodildb.server.sql99.common; 2 3 11 import com.daffodilwoods.daffodildb.server.sql99.common.*; 12 import com.daffodilwoods.database.resource.DException; 13 import com.daffodilwoods.database.utility.P; 14 import java.util.ArrayList ; 15 import java.util.Arrays ; 16 import java.util.TreeSet ; 17 import java.math.BigDecimal ; 18 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference; 19 20 public class StaticClass implements TypeConstants, Datatypes { 21 22 public StaticClass() { 23 } 24 25 public static ColumnDetails[] mergeColumnDetails(ColumnDetails[] columnDetails1, ColumnDetails[] columnDetails2) throws DException { 26 if (columnDetails1 == null) 27 return columnDetails2; 28 if (columnDetails2 == null) 29 return columnDetails1; 30 ColumnDetails[] objectTarget = new ColumnDetails[columnDetails1.length + columnDetails2.length]; 31 int i = 0; 32 for (; i < columnDetails1.length; ++i) 33 objectTarget[i] = columnDetails1[i]; 34 for (int j = 0; j < columnDetails2.length; ++i, ++j) 35 objectTarget[i] = columnDetails2[j]; 36 return objectTarget; 37 } 38 39 public static String getDataTypeName(int datatype) throws DException { 40 switch (datatype) { 41 case BYTE: 42 return new String ("BYTE"); 43 case TINYINT: 44 return new String ("TINYINT"); 45 case SMALLINT: 46 return new String ("SMALLINT"); 47 case SHORT: 48 return new String ("SMALLINT"); 49 case INT: 50 return new String ("INT"); 51 case INTEGER: 52 return new String ("INTEGER"); 53 case LONG: 54 return new String ("LONG"); 55 case BIGINT: 56 return new String ("BIGINT"); 57 case FLOAT: 58 return new String ("FLOAT"); 59 case DOUBLE: 60 return new String ("DOUBLE"); 61 case DOUBLEPRECISION: 62 return new String ("DOUBLEPRECISION"); 63 case REAL: 64 return new String ("REAL"); 65 case DEC: 66 return new String ("DEC"); 67 case DECIMAL: 68 return new String ("DECIMAL"); 69 case NUMERIC: 70 return new String ("NUMERIC"); 71 case BIGDECIMAL: 72 return new String ("BIGDECIMAL"); 73 case BOOLEAN: 74 return new String ("BOOLEAN"); 75 case TRUEFALSE: 76 return new String ("TRUEFALSE"); 77 case DATE: 78 return new String ("DATE"); 79 case TIME: 80 return new String ("TIME"); 81 case TIME_WITH_TIMEZONE: 82 return new String ("TIME_WITH_TIMEZONE"); 83 case TIMESTAMP: 84 return new String ("TIMESTAMP"); 85 case TIMESTAMP_WITH_TIMEZONE: 86 return new String ("TIMESTAMP_WITH_TIMEZONE"); 87 case BLOB: 88 return new String ("BLOB"); 89 case LONGVARBINARY: 90 return new String ("LONGVARBINARY"); 91 case CLOB: 92 return new String ("CLOB"); 93 case CHARACTER: 94 return new String ("CHARACTER"); 95 case CHAR: 96 return new String ("CHAR"); 97 case CHARACTERLARGEOBJECT: 98 return new String ("CHARACTERLARGEOBJECT"); 99 case CHARLARGEOBJECT: 100 return new String ("CHARLARGEOBJECT"); 101 case BINARYLARGEOBJECT: 102 return new String ("BINARYLARGEOBJECT"); 103 case BIT: 104 return new String ("BIT"); 105 case BINARY: 106 return new String ("BINARY"); 107 case BITVARYING: 108 return new String ("BITVARYING"); 109 case VARBINARY: 110 return new String ("VARBINARY"); 111 case VARCHAR: 112 return new String ("VARCHAR"); 113 case LONGVARCHAR: 114 return new String ("LONGVARCHAR"); 115 case REF: 116 return new String ("REF"); 117 case STRUCT: 118 return new String ("STRUCT"); 119 case MODULE: 120 return new String ("MODULE"); 121 case SUM: 122 return new String ("SUM"); 123 case ARRAY: 124 return new String ("ARRAY"); 125 case RECORD: 126 return new String ("RECORD"); 127 case RECORDSET: 128 return new String ("RECORDSET"); 129 default: 130 return new String ("UNKNOWN"); 131 } 132 } 133 134 public static String printArray(Object [] al) { 135 if (al == null) 136 return "null"; 137 StringBuffer sb = new StringBuffer (); 138 for (int i = 0, size = al.length; i < size; i++) { 139 sb.append(al[i]); 140 if (i != (size - 1)) 141 sb.append(","); 142 } 143 return sb.toString(); 144 } 145 146 public static String printArray(_Reference[] al) throws DException { 147 if (al == null) 148 return "null"; 149 StringBuffer sb = new StringBuffer (); 150 TreeSet tr = new TreeSet (String.CASE_INSENSITIVE_ORDER); 151 for (int i = 0, size = al.length; i < size; i++) { 152 String aaa = al[i].getColumn(); 153 aaa = aaa == null ? "" : aaa.trim(); 154 if(tr.contains(aaa)){ 155 continue; 156 } 157 tr.add(aaa); 158 sb.append(aaa); 159 sb.append(","); 160 } 161 sb.setCharAt(sb.length()-1,' '); 162 return sb.toString(); 163 } 164 165 public static int getDataType(Object object) throws DException { 166 if (object instanceof Integer ) 167 return INTEGER; 168 else if (object instanceof Float ) 169 return FLOAT; 170 else if (object instanceof Double ) 171 return DOUBLE; 172 else if (object instanceof Long ) 173 return LONG; 174 else if (object instanceof String ) 175 return CHARACTER; 176 else if (object instanceof Short ) 177 return SHORT; 178 else if (object instanceof BigDecimal ) 179 return BIGDECIMAL; 180 else if (object instanceof Byte ) 181 return BYTE; 182 else if (object instanceof Character ) 183 return CHARACTER; 184 else if (object instanceof Boolean ) 185 return BOOLEAN; 186 throw new DException("DSE4118", null); 187 } 188 } 189 | Popular Tags |