KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > database > utility > TypeConverter


1 package com.daffodilwoods.database.utility;
2
3 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.Datatype;
4 import com.daffodilwoods.database.resource.*;
5 import java.sql.Types JavaDoc;
6 import java.sql.SQLException JavaDoc;
7 import com.daffodilwoods.database.general.IllegalColumnPropertyException;
8 import java.util.HashMap JavaDoc;
9 public class TypeConverter
10 {
11    private static HashMap JavaDoc databaseTypesMap = new HashMap JavaDoc(35);
12
13    static {
14        databaseTypesMap.put("CHARACTER",new Integer JavaDoc( Datatype.CHARACTER));
15        databaseTypesMap.put("INTEGER",new Integer JavaDoc(Datatype.INTEGER));
16        databaseTypesMap.put("LONG",new Integer JavaDoc( Datatype.LONG));
17        databaseTypesMap.put("SHORT",new Integer JavaDoc(Datatype.SHORT));
18        databaseTypesMap.put("BOOLEAN",new Integer JavaDoc(Datatype.BOOLEAN));
19        databaseTypesMap.put("FLOAT",new Integer JavaDoc(Datatype.FLOAT));
20        databaseTypesMap.put("DOUBLE",new Integer JavaDoc(Datatype.DOUBLE));
21        databaseTypesMap.put("DATE",new Integer JavaDoc(Datatype.DATE));
22        databaseTypesMap.put("MODULE",new Integer JavaDoc(Datatype.MODULE));
23        databaseTypesMap.put("SUM",new Integer JavaDoc(Datatype.SUM));
24        databaseTypesMap.put("ARRAY",new Integer JavaDoc(Datatype.ARRAY));
25        databaseTypesMap.put("RECORD",new Integer JavaDoc(Datatype.RECORD));
26        databaseTypesMap.put("RECORDSET",new Integer JavaDoc(Datatype.RECORDSET));
27        databaseTypesMap.put("BIGDECIMAL",new Integer JavaDoc(Datatype.BIGDECIMAL));
28        databaseTypesMap.put("TIME",new Integer JavaDoc(Datatype.TIME));
29        databaseTypesMap.put("TIMESTAMP",new Integer JavaDoc(Datatype.TIMESTAMP));
30        databaseTypesMap.put("BYTE",new Integer JavaDoc(Datatype.BYTE));
31        databaseTypesMap.put("BLOB",new Integer JavaDoc(Datatype.BLOB));
32        databaseTypesMap.put("CLOB",new Integer JavaDoc(Datatype.CLOB));
33        databaseTypesMap.put("REF",new Integer JavaDoc(Datatype.REF));
34        databaseTypesMap.put("STRUCT",new Integer JavaDoc(Datatype.STRUCT));
35        databaseTypesMap.put("VARCHAR",new Integer JavaDoc(Datatype.VARCHAR));
36        databaseTypesMap.put("CHAR",new Integer JavaDoc(Datatype.CHAR));
37        databaseTypesMap.put("CHARACTER VARYING",new Integer JavaDoc(Datatype.CHARACTERVARYING));
38        databaseTypesMap.put("CHAR VARYING",new Integer JavaDoc(Datatype.CHARVARYING));
39        databaseTypesMap.put("CHARACTER LARGE OBJECT",new Integer JavaDoc(Datatype.CHARACTERLARGEOBJECT));
40        databaseTypesMap.put("CHAR LARGE OBJECT",new Integer JavaDoc(Datatype.CHARLARGEOBJECT));
41        databaseTypesMap.put("BINARY LARGE OBJECT",new Integer JavaDoc(Datatype.BINARYLARGEOBJECT));
42        databaseTypesMap.put("BIT",new Integer JavaDoc(Datatype.BIT));
43        databaseTypesMap.put("BIT VARYING",new Integer JavaDoc(Datatype.BITVARYING));
44        databaseTypesMap.put("NUMERIC",new Integer JavaDoc(Datatype.NUMERIC));
45        databaseTypesMap.put("DECIMAL",new Integer JavaDoc(Datatype.DECIMAL));
46        databaseTypesMap.put("DEC",new Integer JavaDoc(Datatype.DEC));
47        databaseTypesMap.put("INT",new Integer JavaDoc(Datatype.INT));
48        databaseTypesMap.put("REAL",new Integer JavaDoc(Datatype.REAL));
49        databaseTypesMap.put("DOUBLE PRECISION",new Integer JavaDoc(Datatype.DOUBLEPRECISION));
50        databaseTypesMap.put("SMALLINT",new Integer JavaDoc(Datatype.SMALLINT));
51        databaseTypesMap.put("TINYINT",new Integer JavaDoc(Datatype.TINYINT));
52        databaseTypesMap.put("BIGINT",new Integer JavaDoc(Datatype.BIGINT));
53        databaseTypesMap.put("LONG VARCHAR",new Integer JavaDoc(Datatype.LONGVARCHAR));
54        databaseTypesMap.put("LONG VARBINARY",new Integer JavaDoc(Datatype.LONGVARBINARY));
55        databaseTypesMap.put("VARBINARY",new Integer JavaDoc(Datatype.VARBINARY));
56        databaseTypesMap.put("BINARY",new Integer JavaDoc(Datatype.BINARY));
57        databaseTypesMap.put("TABLEKEY",new Integer JavaDoc(Datatype.TABLEKEY));
58
59    };
60
61    public TypeConverter() throws DException
62    {}
63
64    public static String JavaDoc getDataBaseTypeName(int databaseType) throws DException {
65      switch (databaseType){
66        case Datatype.CHARACTER : return "CHARACTER";
67        case Datatype.INTEGER : return "INTEGER";
68        case Datatype.LONG : return "LONG";
69        case Datatype.SHORT : return "SHORT";
70        case Datatype.BOOLEAN : return "BOOLEAN";
71        case Datatype.FLOAT : return "FLOAT";
72        case Datatype.DOUBLE : return "DOUBLE";
73        case Datatype.DATE : return "DATE";
74        case Datatype.MODULE : return "MODULE";
75        case Datatype.SUM : return "SUM";
76        case Datatype.ARRAY : return "ARRAY";
77        case Datatype.RECORD : return "RECORD";
78        case Datatype.RECORDSET : return "RECORDSET";
79        case Datatype.BIGDECIMAL : return "BIGDECIMAL";
80        case Datatype.TIME : return "TIME";
81        case Datatype.TIMESTAMP : return "TIMESTAMP";
82        case Datatype.BYTE : return "BYTE";
83        case Datatype.BLOB : return "BLOB";
84        case Datatype.CLOB : return "CLOB";
85        case Datatype.REF : return "REF";
86        case Datatype.STRUCT : return "STRUCT";
87
88        case Datatype.VARCHAR : return "VARCHAR";
89        case Datatype.CHAR : return "CHAR";
90        case Datatype.CHARACTERVARYING :return "CHARACTER VARYING";
91        case Datatype.CHARVARYING : return "CHAR VARYING";
92        case Datatype.CHARACTERLARGEOBJECT : return "CHARACTER LARGE OBJECT";
93        case Datatype.CHARLARGEOBJECT : return "CHAR LARGE OBJECT";
94        case Datatype.BINARYLARGEOBJECT : return "BINARY LARGE OBJECT";
95        case Datatype.BIT : return "BIT";
96        case Datatype.BITVARYING : return "BIT VARYING";
97        case Datatype.NUMERIC : return "NUMERIC";
98        case Datatype.DECIMAL : return "DECIMAL";
99        case Datatype.DEC : return "DEC";
100        case Datatype.INT : return "INT";
101        case Datatype.REAL : return "REAL";
102        case Datatype.DOUBLEPRECISION : return "DOUBLE PRECISION";
103        case Datatype.SMALLINT : return "SMALLINT";
104
105        case Datatype.TINYINT : return "TINYINT";
106        case Datatype.BIGINT : return "BIGINT";
107        case Datatype.LONGVARCHAR : return "LONG VARCHAR";
108        case Datatype.LONGVARBINARY : return "LONG VARBINARY";
109        case Datatype.VARBINARY : return "VARBINARY";
110        case Datatype.BINARY : return "BINARY";
111        case Datatype.TABLEKEY : return "TABLEKEY";
112    }
113       throw new IllegalColumnPropertyException("DSE1168", new Object JavaDoc[]{"","Type",new Integer JavaDoc(databaseType)});
114    }
115
116    public static int getCorrespondingSqlTypeOfDatabaseType(int type) throws DException {
117      switch (type) {
118        case Datatype.CHAR :
119        case Datatype.CHARACTER : return Types.CHAR;
120        case Datatype.INT :
121        case Datatype.INTEGER : return Types.INTEGER;
122        case Datatype.BIGINT :
123        case Datatype.LONG : return Types.BIGINT;
124        case Datatype.SMALLINT :
125        case Datatype.SHORT : return Types.SMALLINT;
126        case Datatype.REAL : return Types.REAL ;
127        case Datatype.FLOAT : return Types.FLOAT;
128        case Datatype.DOUBLEPRECISION :
129        case Datatype.DOUBLE : return Types.DOUBLE;
130        case Datatype.DATE : return Types.DATE;
131        case Datatype.MODULE : return Types.BIGINT;
132        case Datatype.SUM : return Types.DOUBLE;
133        case Datatype.ARRAY : return Types.ARRAY;
134        case Datatype.RECORD : return Types.BIGINT;
135        case Datatype.NUMERIC :
136        case Datatype.DECIMAL :
137        case Datatype.DEC :
138        case Datatype.BIGDECIMAL : return Types.DECIMAL;
139        case Datatype.TIME : return Types.TIME;
140        case Datatype.TIMESTAMP : return Types.TIMESTAMP;
141        case Datatype.TINYINT :
142        case Datatype.BYTE : return Types.TINYINT;
143
144        case Datatype.LONGVARBINARY :
145        case Datatype.BINARYLARGEOBJECT :
146        case Datatype.BLOB : return Types.BLOB;
147        case Datatype.LONGVARCHAR :
148        case Datatype.CHARACTERLARGEOBJECT :
149        case Datatype.CHARLARGEOBJECT :
150        case Datatype.CLOB : return Types.CLOB;
151        case Datatype.REF : return Types.REF;
152        case Datatype.STRUCT : return Types.STRUCT;
153
154        case Datatype.CHARACTERVARYING :
155        case Datatype.CHARVARYING :
156        case Datatype.VARCHAR : return Types.VARCHAR;
157        case Datatype.BIT : return Types.BINARY;
158        case Datatype.BITVARYING : return Types.VARBINARY;
159
160    }
161      return Types.OTHER;
162
163   }
164
165
166
167   public static String JavaDoc getCorrespondingJavaClassOfDatabaseType(int type) throws DException {
168      switch (type) {
169        case Datatype.CHAR :
170        case Datatype.VARCHAR :
171        case Datatype.CHARACTERVARYING :
172        case Datatype.CHARVARYING :
173        case Datatype.CHARACTER : return "java.lang.String";
174
175        case Datatype.INT :
176        case Datatype.INTEGER : return "int";
177
178        case Datatype.MODULE :
179        case Datatype.RECORD :
180        case Datatype.BIGINT :
181        case Datatype.LONG : return "long";
182
183        case Datatype.SMALLINT :
184        case Datatype.SHORT : return "short";
185
186        case Datatype.BOOLEAN : return "boolean";
187
188        case Datatype.REAL : return "float";
189
190        case Datatype.SUM :
191        case Datatype.FLOAT :
192        case Datatype.DOUBLEPRECISION :
193        case Datatype.DOUBLE : return "double";
194
195        case Datatype.DATE : return "java.sql.Date";
196
197        case Datatype.ARRAY : return "java.sql.Array";
198
199        case Datatype.NUMERIC :
200        case Datatype.DECIMAL :
201        case Datatype.DEC :
202        case Datatype.BIGDECIMAL : return "java.math.BigDecimal";
203
204        case Datatype.TIME : return "java.sql.Time";
205
206        case Datatype.TIMESTAMP : return "java.sql.TimeStamp";
207
208        case Datatype.TINYINT :
209        case Datatype.BYTE : return "byte";
210
211        case Datatype.LONGVARBINARY :
212        case Datatype.BINARYLARGEOBJECT :
213        case Datatype.BLOB : return "java.sql.Blob";
214
215        case Datatype.CHARACTERLARGEOBJECT :
216        case Datatype.CHARLARGEOBJECT :
217        case Datatype.LONGVARCHAR :
218        case Datatype.CLOB : return "java.sql.Clob";
219
220        case Datatype.REF : return "java.sql.Ref";
221
222        case Datatype.STRUCT : return "java.sql.Struct";
223
224        case Datatype.BIT :
225        case Datatype.BITVARYING : return "java.lang.String";
226      }
227      return "java.lang.Object";
228
229   }
230
231   public static String JavaDoc getCorrespondingJavaClassesOfSqlTypes(int type) throws DException {
232      switch (type) {
233        case Types.VARCHAR :
234        case Types.LONGVARCHAR :
235        case Types.CHAR : return "java.lang.String";
236        case Types.INTEGER : return "int";
237        case Types.BIGINT : return "long";
238        case Types.SMALLINT : return "short";
239
240        case Types.BIT :
241                 return "boolean";
242
243        case Types.REAL : return "float";
244        case Types.FLOAT :
245        case Types.DOUBLE : return "double";
246
247        case Types.TINYINT : return "byte";
248        case Types.NUMERIC :
249        case Types.DECIMAL : return "java.math.BigDecimal";
250        case Types.DATE : return "java.sql.Date";
251        case Types.TIME : return "java.sql.Time";
252        case Types.TIMESTAMP : return "java.sql.TimeStamp";
253
254        case Types.BINARY :
255        case Types.VARBINARY :
256        case Types.LONGVARBINARY : return "java.lang.String";//"[B"
257
case Types.ARRAY : return "java.sql.Array";
258        case Types.CLOB : return "java.sql.Clob";
259        case Types.BLOB : return "java.sql.Blob";
260        case Types.REF : return "java.sql.Ref";
261        case Types.STRUCT : return "java.sql.Struct";
262    }
263      return "java.Object";
264
265   }
266
267   public static int getCorrespondingDatabaseTypeOfSqlTypes(int type) throws DException {
268      switch (type) {
269        case Types.VARCHAR :
270        case Types.LONGVARCHAR : return Datatype.VARCHAR;
271        case Types.CHAR : return Datatype.CHARACTER;
272        case Types.INTEGER : return Datatype.INTEGER;
273        case Types.BIGINT : return Datatype.LONG;
274        case Types.SMALLINT : return Datatype.SHORT;
275
276        case Types.BIT :
277         return Datatype.BOOLEAN;
278
279        case Types.REAL : return Datatype.REAL;
280        case Types.FLOAT : return Datatype.FLOAT;
281        case Types.DOUBLE : return Datatype.DOUBLE;
282
283        case Types.TINYINT : return Datatype.BYTE;
284        case Types.NUMERIC :
285        case Types.DECIMAL : return Datatype.BIGDECIMAL;
286        case Types.DATE : return Datatype.DATE;
287        case Types.TIME : return Datatype.TIME;
288        case Types.TIMESTAMP : return Datatype.TIMESTAMP;
289
290        case Types.BINARY : return Datatype.BIT;
291        case Types.VARBINARY :
292        case Types.LONGVARBINARY : return Datatype.BITVARYING;
293        case Types.ARRAY : return Datatype.ARRAY;
294        case Types.CLOB : return Datatype.CLOB;
295        case Types.BLOB : return Datatype.BLOB;
296        case Types.REF : return Datatype.REF;
297        case Types.STRUCT : return Datatype.STRUCT;
298    }
299      return Datatype.CHARACTER;
300
301   }
302   public static int getDataBaseType(String JavaDoc databaseType) throws DException {
303      databaseType = databaseType.toUpperCase();
304      if(databaseTypesMap.containsKey(databaseType) )
305         return databaseTypesMap.get(databaseType).hashCode();
306      throw new IllegalColumnPropertyException("DSE1168",new Object JavaDoc[]{"","Type",databaseType});
307   }
308 }
309
Popular Tags