1 package org.apache.torque.engine.database.model; 2 3 18 19 import java.sql.Types ; 20 import java.util.Hashtable ; 21 import java.util.Iterator ; 22 23 import org.apache.commons.logging.Log; 24 import org.apache.commons.logging.LogFactory; 25 26 33 76 public class TypeMap 77 { 78 79 private static Log log = LogFactory.getLog(Column.class); 80 81 private static final SchemaType[] TEXT_TYPES = 82 { 83 SchemaType.CHAR, SchemaType.VARCHAR, SchemaType.LONGVARCHAR, 84 SchemaType.CLOB, SchemaType.DATE, SchemaType.TIME, 85 SchemaType.TIMESTAMP, SchemaType.BOOLEANCHAR 86 }; 87 88 public static final String CHAR_OBJECT_TYPE = "\"\""; 89 public static final String VARCHAR_OBJECT_TYPE = "\"\""; 90 public static final String LONGVARCHAR_OBJECT_TYPE = "\"\""; 91 public static final String CLOB_OBJECT_TYPE = "\"\""; 92 public static final String NUMERIC_OBJECT_TYPE = "new BigDecimal(0)"; 93 public static final String DECIMAL_OBJECT_TYPE = "new BigDecimal(0)"; 94 public static final String BIT_OBJECT_TYPE = "new Boolean(true)"; 95 public static final String TINYINT_OBJECT_TYPE = "new Byte((byte)0)"; 96 public static final String SMALLINT_OBJECT_TYPE = "new Short((short)0)"; 97 public static final String INTEGER_OBJECT_TYPE = "new Integer(0)"; 98 public static final String BIGINT_OBJECT_TYPE = "new Long(0)"; 99 public static final String REAL_OBJECT_TYPE = "new Float(0)"; 100 public static final String FLOAT_OBJECT_TYPE = "new Double(0)"; 101 public static final String DOUBLE_OBJECT_TYPE = "new Double(0)"; 102 public static final String BINARY_OBJECT_TYPE = "new Object()"; public static final String VARBINARY_OBJECT_TYPE = "new Object()"; public static final String LONGVARBINARY_OBJECT_TYPE = "new Object()"; public static final String BLOB_OBJECT_TYPE = "new Object()"; public static final String DATE_OBJECT_TYPE = "new Date()"; 107 public static final String TIME_OBJECT_TYPE = "new Date()"; 108 public static final String TIMESTAMP_OBJECT_TYPE = "new Date()"; 109 public static final String BOOLEANCHAR_OBJECT_TYPE = "\"\""; 110 public static final String BOOLEANINT_OBJECT_TYPE = "new Integer(0)"; 111 112 public static final String CHAR_NATIVE_TYPE = "String"; 113 public static final String VARCHAR_NATIVE_TYPE = "String"; 114 public static final String LONGVARCHAR_NATIVE_TYPE = "String"; 115 public static final String CLOB_NATIVE_TYPE = "String"; 116 public static final String NUMERIC_NATIVE_TYPE = "BigDecimal"; 117 public static final String DECIMAL_NATIVE_TYPE = "BigDecimal"; 118 public static final String BIT_NATIVE_TYPE = "boolean"; 119 public static final String TINYINT_NATIVE_TYPE = "byte"; 120 public static final String SMALLINT_NATIVE_TYPE = "short"; 121 public static final String INTEGER_NATIVE_TYPE = "int"; 122 public static final String BIGINT_NATIVE_TYPE = "long"; 123 public static final String REAL_NATIVE_TYPE = "float"; 124 public static final String FLOAT_NATIVE_TYPE = "double"; 125 public static final String DOUBLE_NATIVE_TYPE = "double"; 126 public static final String BINARY_NATIVE_TYPE = "byte[]"; 127 public static final String VARBINARY_NATIVE_TYPE = "byte[]"; 128 public static final String LONGVARBINARY_NATIVE_TYPE = "byte[]"; 129 public static final String BLOB_NATIVE_TYPE = "byte[]"; 130 public static final String DATE_NATIVE_TYPE = "Date"; 131 public static final String TIME_NATIVE_TYPE = "Date"; 132 public static final String TIMESTAMP_NATIVE_TYPE = "Date"; 133 public static final String BOOLEANCHAR_NATIVE_TYPE = "boolean"; 134 public static final String BOOLEANINT_NATIVE_TYPE = "boolean"; 135 136 public static final String BIT_NATIVE_OBJECT_TYPE = "Boolean"; 137 public static final String TINYINT_NATIVE_OBJECT_TYPE = "Byte"; 138 public static final String SMALLINT_NATIVE_OBJECT_TYPE = "Short"; 139 public static final String INTEGER_NATIVE_OBJECT_TYPE = "Integer"; 140 public static final String BIGINT_NATIVE_OBJECT_TYPE = "Long"; 141 public static final String REAL_NATIVE_OBJECT_TYPE = "Float"; 142 public static final String FLOAT_NATIVE_OBJECT_TYPE = "Double"; 143 public static final String DOUBLE_NATIVE_OBJECT_TYPE = "Double"; 144 public static final String BOOLEANCHAR_NATIVE_OBJECT_TYPE = "Boolean"; 145 public static final String BOOLEANINT_NATIVE_OBJECT_TYPE = "Boolean"; 146 147 public static final String CHAR_VILLAGE_METHOD = "asString()"; 148 public static final String VARCHAR_VILLAGE_METHOD = "asString()"; 149 public static final String LONGVARCHAR_VILLAGE_METHOD = "asString()"; 150 public static final String CLOB_VILLAGE_METHOD = "asString()"; 151 public static final String NUMERIC_VILLAGE_METHOD = "asBigDecimal()"; 152 public static final String DECIMAL_VILLAGE_METHOD = "asBigDecimal()"; 153 public static final String BIT_VILLAGE_METHOD = "asBoolean()"; 154 public static final String TINYINT_VILLAGE_METHOD = "asByte()"; 155 public static final String SMALLINT_VILLAGE_METHOD = "asShort()"; 156 public static final String INTEGER_VILLAGE_METHOD = "asInt()"; 157 public static final String BIGINT_VILLAGE_METHOD = "asLong()"; 158 public static final String REAL_VILLAGE_METHOD = "asFloat()"; 159 public static final String FLOAT_VILLAGE_METHOD = "asDouble()"; 160 public static final String DOUBLE_VILLAGE_METHOD = "asDouble()"; 161 public static final String BINARY_VILLAGE_METHOD = "asBytes()"; 162 public static final String VARBINARY_VILLAGE_METHOD = "asBytes()"; 163 public static final String LONGVARBINARY_VILLAGE_METHOD = "asBytes()"; 164 public static final String BLOB_VILLAGE_METHOD = "asBytes()"; 165 public static final String DATE_VILLAGE_METHOD = "asUtilDate()"; 166 public static final String TIME_VILLAGE_METHOD = "asUtilDate()"; 167 public static final String TIMESTAMP_VILLAGE_METHOD = "asUtilDate()"; 168 public static final String BOOLEANCHAR_VILLAGE_METHOD = "asBoolean()"; 169 public static final String BOOLEANINT_VILLAGE_METHOD = "asBoolean()"; 170 171 public static final String BIT_VILLAGE_OBJECT_METHOD = "asBooleanObj()"; 172 public static final String TINYINT_VILLAGE_OBJECT_METHOD = "asByteObj()"; 173 public static final String SMALLINT_VILLAGE_OBJECT_METHOD = "asShortObj()"; 174 public static final String INTEGER_VILLAGE_OBJECT_METHOD = "asIntegerObj()"; 175 public static final String BIGINT_VILLAGE_OBJECT_METHOD = "asLongObj()"; 176 public static final String REAL_VILLAGE_OBJECT_METHOD = "asFloatObj()"; 177 public static final String FLOAT_VILLAGE_OBJECT_METHOD = "asDoubleObj()"; 178 public static final String DOUBLE_VILLAGE_OBJECT_METHOD = "asDoubleObj()"; 179 public static final String BOOLEANCHAR_VILLAGE_OBJECT_METHOD = "asBooleanObj()"; 180 public static final String BOOLEANINT_VILLAGE_OBJECT_METHOD = "asBooleanObj()"; 181 182 public static final String CHAR_PP_METHOD = "getString(ppKey)"; 183 public static final String VARCHAR_PP_METHOD = "getString(ppKey)"; 184 public static final String LONGVARCHAR_PP_METHOD = "getString(ppKey)"; 185 public static final String NUMERIC_PP_METHOD = "getBigDecimal(ppKey)"; 186 public static final String DECIMAL_PP_METHOD = "getBigDecimal(ppKey)"; 187 public static final String BIT_PP_METHOD = "getBoolean(ppKey)"; 188 public static final String TINYINT_PP_METHOD = "getByte(ppKey)"; 189 public static final String SMALLINT_PP_METHOD = "getShort(ppKey)"; 190 public static final String INTEGER_PP_METHOD = "getInt(ppKey)"; 191 public static final String BIGINT_PP_METHOD = "getLong(ppKey)"; 192 public static final String REAL_PP_METHOD = "getFloat(ppKey)"; 193 public static final String FLOAT_PP_METHOD = "getDouble(ppKey)"; 194 public static final String DOUBLE_PP_METHOD = "getDouble(ppKey)"; 195 public static final String BINARY_PP_METHOD = "getBytes(ppKey)"; 196 public static final String VARBINARY_PP_METHOD = "getBytes(ppKey)"; 197 public static final String LONGVARBINARY_PP_METHOD = "getBytes(ppKey)"; 198 public static final String DATE_PP_METHOD = "getDate(ppKey)"; 199 public static final String TIME_PP_METHOD = "getDate(ppKey)"; 200 public static final String TIMESTAMP_PP_METHOD = "getDate(ppKey)"; 201 public static final String BOOLEANCHAR_PP_METHOD = "getBoolean(ppKey)"; 202 public static final String BOOLEANINT_PP_METHOD = "getBoolean(ppKey)"; 203 204 private static Hashtable jdbcToJavaObjectMap = null; 205 private static Hashtable jdbcToJavaNativeMap = null; 206 private static Hashtable jdbcToJavaNativeObjectMap = null; 207 private static Hashtable jdbcToVillageMethodMap = null; 208 private static Hashtable jdbcToVillageObjectMethodMap = null; 209 private static Hashtable jdbcToPPMethodMap = null; 210 private static Hashtable torqueTypeToJdbcTypeMap = null; 211 private static Hashtable jdbcToTorqueTypeMap = null; 212 private static boolean isInitialized = false; 213 214 218 public synchronized static void initialize() 219 { 220 if (!isInitialized) 221 { 222 jdbcToJavaObjectMap = new Hashtable (); 224 225 jdbcToJavaObjectMap.put(SchemaType.CHAR, CHAR_OBJECT_TYPE); 226 jdbcToJavaObjectMap.put(SchemaType.VARCHAR, VARCHAR_OBJECT_TYPE); 227 jdbcToJavaObjectMap.put(SchemaType.LONGVARCHAR, LONGVARCHAR_OBJECT_TYPE); 228 jdbcToJavaObjectMap.put(SchemaType.CLOB, CLOB_OBJECT_TYPE); 229 jdbcToJavaObjectMap.put(SchemaType.NUMERIC, NUMERIC_OBJECT_TYPE); 230 jdbcToJavaObjectMap.put(SchemaType.DECIMAL, DECIMAL_OBJECT_TYPE); 231 jdbcToJavaObjectMap.put(SchemaType.BIT, BIT_OBJECT_TYPE); 232 jdbcToJavaObjectMap.put(SchemaType.TINYINT, TINYINT_OBJECT_TYPE); 233 jdbcToJavaObjectMap.put(SchemaType.SMALLINT, SMALLINT_OBJECT_TYPE); 234 jdbcToJavaObjectMap.put(SchemaType.INTEGER, INTEGER_OBJECT_TYPE); 235 jdbcToJavaObjectMap.put(SchemaType.BIGINT, BIGINT_OBJECT_TYPE); 236 jdbcToJavaObjectMap.put(SchemaType.REAL, REAL_OBJECT_TYPE); 237 jdbcToJavaObjectMap.put(SchemaType.FLOAT, FLOAT_OBJECT_TYPE); 238 jdbcToJavaObjectMap.put(SchemaType.DOUBLE, DOUBLE_OBJECT_TYPE); 239 jdbcToJavaObjectMap.put(SchemaType.BINARY, BINARY_OBJECT_TYPE); 240 jdbcToJavaObjectMap.put(SchemaType.VARBINARY, VARBINARY_OBJECT_TYPE); 241 jdbcToJavaObjectMap.put(SchemaType.LONGVARBINARY, LONGVARBINARY_OBJECT_TYPE); 242 jdbcToJavaObjectMap.put(SchemaType.BLOB, BLOB_OBJECT_TYPE); 243 jdbcToJavaObjectMap.put(SchemaType.DATE, DATE_OBJECT_TYPE); 244 jdbcToJavaObjectMap.put(SchemaType.TIME, TIME_OBJECT_TYPE); 245 jdbcToJavaObjectMap.put(SchemaType.TIMESTAMP, TIMESTAMP_OBJECT_TYPE); 246 jdbcToJavaObjectMap.put(SchemaType.BOOLEANCHAR, BOOLEANCHAR_OBJECT_TYPE); 247 jdbcToJavaObjectMap.put(SchemaType.BOOLEANINT, BOOLEANINT_OBJECT_TYPE); 248 249 jdbcToJavaNativeMap = new Hashtable (); 251 252 jdbcToJavaNativeMap.put(SchemaType.CHAR, CHAR_NATIVE_TYPE); 253 jdbcToJavaNativeMap.put(SchemaType.VARCHAR, VARCHAR_NATIVE_TYPE); 254 jdbcToJavaNativeMap.put(SchemaType.LONGVARCHAR, LONGVARCHAR_NATIVE_TYPE); 255 jdbcToJavaNativeMap.put(SchemaType.CLOB, CLOB_NATIVE_TYPE); 256 jdbcToJavaNativeMap.put(SchemaType.NUMERIC, NUMERIC_NATIVE_TYPE); 257 jdbcToJavaNativeMap.put(SchemaType.DECIMAL, DECIMAL_NATIVE_TYPE); 258 jdbcToJavaNativeMap.put(SchemaType.BIT, BIT_NATIVE_TYPE); 259 jdbcToJavaNativeMap.put(SchemaType.TINYINT, TINYINT_NATIVE_TYPE); 260 jdbcToJavaNativeMap.put(SchemaType.SMALLINT, SMALLINT_NATIVE_TYPE); 261 jdbcToJavaNativeMap.put(SchemaType.INTEGER, INTEGER_NATIVE_TYPE); 262 jdbcToJavaNativeMap.put(SchemaType.BIGINT, BIGINT_NATIVE_TYPE); 263 jdbcToJavaNativeMap.put(SchemaType.REAL, REAL_NATIVE_TYPE); 264 jdbcToJavaNativeMap.put(SchemaType.FLOAT, FLOAT_NATIVE_TYPE); 265 jdbcToJavaNativeMap.put(SchemaType.DOUBLE, DOUBLE_NATIVE_TYPE); 266 jdbcToJavaNativeMap.put(SchemaType.BINARY, BINARY_NATIVE_TYPE); 267 jdbcToJavaNativeMap.put(SchemaType.VARBINARY, VARBINARY_NATIVE_TYPE); 268 jdbcToJavaNativeMap.put(SchemaType.LONGVARBINARY, LONGVARBINARY_NATIVE_TYPE); 269 jdbcToJavaNativeMap.put(SchemaType.BLOB, BLOB_NATIVE_TYPE); 270 jdbcToJavaNativeMap.put(SchemaType.DATE, DATE_NATIVE_TYPE); 271 jdbcToJavaNativeMap.put(SchemaType.TIME, TIME_NATIVE_TYPE); 272 jdbcToJavaNativeMap.put(SchemaType.TIMESTAMP, TIMESTAMP_NATIVE_TYPE); 273 jdbcToJavaNativeMap.put(SchemaType.BOOLEANCHAR, BOOLEANCHAR_NATIVE_TYPE); 274 jdbcToJavaNativeMap.put(SchemaType.BOOLEANINT, BOOLEANINT_NATIVE_TYPE); 275 276 jdbcToJavaNativeObjectMap = new Hashtable (); 277 jdbcToJavaNativeObjectMap.put(SchemaType.BIT, BIT_NATIVE_OBJECT_TYPE); 278 jdbcToJavaNativeObjectMap.put(SchemaType.TINYINT, TINYINT_NATIVE_OBJECT_TYPE); 279 jdbcToJavaNativeObjectMap.put(SchemaType.SMALLINT, SMALLINT_NATIVE_OBJECT_TYPE); 280 jdbcToJavaNativeObjectMap.put(SchemaType.INTEGER, INTEGER_NATIVE_OBJECT_TYPE); 281 jdbcToJavaNativeObjectMap.put(SchemaType.BIGINT, BIGINT_NATIVE_OBJECT_TYPE); 282 jdbcToJavaNativeObjectMap.put(SchemaType.REAL, REAL_NATIVE_OBJECT_TYPE); 283 jdbcToJavaNativeObjectMap.put(SchemaType.FLOAT, FLOAT_NATIVE_OBJECT_TYPE); 284 jdbcToJavaNativeObjectMap.put(SchemaType.DOUBLE, DOUBLE_NATIVE_OBJECT_TYPE); 285 jdbcToJavaNativeObjectMap.put(SchemaType.BOOLEANCHAR, 286 BOOLEANCHAR_NATIVE_OBJECT_TYPE); 287 jdbcToJavaNativeObjectMap.put(SchemaType.BOOLEANINT, 288 BOOLEANINT_NATIVE_OBJECT_TYPE); 289 290 jdbcToVillageMethodMap = new Hashtable (); 292 293 jdbcToVillageMethodMap.put(SchemaType.CHAR, CHAR_VILLAGE_METHOD); 294 jdbcToVillageMethodMap.put(SchemaType.VARCHAR, VARCHAR_VILLAGE_METHOD); 295 jdbcToVillageMethodMap.put(SchemaType.LONGVARCHAR, LONGVARCHAR_VILLAGE_METHOD); 296 jdbcToVillageMethodMap.put(SchemaType.CLOB, CLOB_VILLAGE_METHOD); 297 jdbcToVillageMethodMap.put(SchemaType.NUMERIC, NUMERIC_VILLAGE_METHOD); 298 jdbcToVillageMethodMap.put(SchemaType.DECIMAL, DECIMAL_VILLAGE_METHOD); 299 jdbcToVillageMethodMap.put(SchemaType.BIT, BIT_VILLAGE_METHOD); 300 jdbcToVillageMethodMap.put(SchemaType.TINYINT, TINYINT_VILLAGE_METHOD); 301 jdbcToVillageMethodMap.put(SchemaType.SMALLINT, SMALLINT_VILLAGE_METHOD); 302 jdbcToVillageMethodMap.put(SchemaType.INTEGER, INTEGER_VILLAGE_METHOD); 303 jdbcToVillageMethodMap.put(SchemaType.BIGINT, BIGINT_VILLAGE_METHOD); 304 jdbcToVillageMethodMap.put(SchemaType.REAL, REAL_VILLAGE_METHOD); 305 jdbcToVillageMethodMap.put(SchemaType.FLOAT, FLOAT_VILLAGE_METHOD); 306 jdbcToVillageMethodMap.put(SchemaType.DOUBLE, DOUBLE_VILLAGE_METHOD); 307 jdbcToVillageMethodMap.put(SchemaType.BINARY, BINARY_VILLAGE_METHOD); 308 jdbcToVillageMethodMap.put(SchemaType.VARBINARY, VARBINARY_VILLAGE_METHOD); 309 jdbcToVillageMethodMap.put(SchemaType.LONGVARBINARY, LONGVARBINARY_VILLAGE_METHOD); 310 jdbcToVillageMethodMap.put(SchemaType.BLOB, BLOB_VILLAGE_METHOD); 311 jdbcToVillageMethodMap.put(SchemaType.DATE, DATE_VILLAGE_METHOD); 312 jdbcToVillageMethodMap.put(SchemaType.TIME, TIME_VILLAGE_METHOD); 313 jdbcToVillageMethodMap.put(SchemaType.TIMESTAMP, TIMESTAMP_VILLAGE_METHOD); 314 jdbcToVillageMethodMap.put(SchemaType.BOOLEANCHAR, BOOLEANCHAR_VILLAGE_METHOD); 315 jdbcToVillageMethodMap.put(SchemaType.BOOLEANINT, BOOLEANINT_VILLAGE_METHOD); 316 317 318 jdbcToVillageObjectMethodMap = new Hashtable (); 319 jdbcToVillageObjectMethodMap.put(SchemaType.BIT, BIT_VILLAGE_OBJECT_METHOD); 320 jdbcToVillageObjectMethodMap.put(SchemaType.TINYINT, 321 TINYINT_VILLAGE_OBJECT_METHOD); 322 jdbcToVillageObjectMethodMap.put(SchemaType.SMALLINT, 323 SMALLINT_VILLAGE_OBJECT_METHOD); 324 jdbcToVillageObjectMethodMap.put(SchemaType.INTEGER, 325 INTEGER_VILLAGE_OBJECT_METHOD); 326 jdbcToVillageObjectMethodMap.put(SchemaType.BIGINT, 327 BIGINT_VILLAGE_OBJECT_METHOD); 328 jdbcToVillageObjectMethodMap.put(SchemaType.REAL, REAL_VILLAGE_OBJECT_METHOD); 329 jdbcToVillageObjectMethodMap.put(SchemaType.FLOAT, FLOAT_VILLAGE_OBJECT_METHOD); 330 jdbcToVillageObjectMethodMap.put(SchemaType.DOUBLE, 331 DOUBLE_VILLAGE_OBJECT_METHOD); 332 jdbcToVillageObjectMethodMap.put(SchemaType.BOOLEANCHAR, 333 BOOLEANCHAR_VILLAGE_OBJECT_METHOD); 334 jdbcToVillageObjectMethodMap.put(SchemaType.BOOLEANINT, 335 BOOLEANINT_VILLAGE_OBJECT_METHOD); 336 337 jdbcToPPMethodMap = new Hashtable (); 339 340 jdbcToPPMethodMap.put(SchemaType.CHAR, CHAR_PP_METHOD); 341 jdbcToPPMethodMap.put(SchemaType.VARCHAR, VARCHAR_PP_METHOD); 342 jdbcToPPMethodMap.put(SchemaType.LONGVARCHAR, LONGVARCHAR_PP_METHOD); 343 jdbcToPPMethodMap.put(SchemaType.NUMERIC, NUMERIC_PP_METHOD); 344 jdbcToPPMethodMap.put(SchemaType.DECIMAL, DECIMAL_PP_METHOD); 345 jdbcToPPMethodMap.put(SchemaType.BIT, BIT_PP_METHOD); 346 jdbcToPPMethodMap.put(SchemaType.TINYINT, TINYINT_PP_METHOD); 347 jdbcToPPMethodMap.put(SchemaType.SMALLINT, SMALLINT_PP_METHOD); 348 jdbcToPPMethodMap.put(SchemaType.INTEGER, INTEGER_PP_METHOD); 349 jdbcToPPMethodMap.put(SchemaType.BIGINT, BIGINT_PP_METHOD); 350 jdbcToPPMethodMap.put(SchemaType.REAL, REAL_PP_METHOD); 351 jdbcToPPMethodMap.put(SchemaType.FLOAT, FLOAT_PP_METHOD); 352 jdbcToPPMethodMap.put(SchemaType.DOUBLE, DOUBLE_PP_METHOD); 353 jdbcToPPMethodMap.put(SchemaType.BINARY, BINARY_PP_METHOD); 354 jdbcToPPMethodMap.put(SchemaType.VARBINARY, VARBINARY_PP_METHOD); 355 jdbcToPPMethodMap.put(SchemaType.LONGVARBINARY, LONGVARBINARY_PP_METHOD); 356 jdbcToPPMethodMap.put(SchemaType.DATE, DATE_PP_METHOD); 357 jdbcToPPMethodMap.put(SchemaType.TIME, TIME_PP_METHOD); 358 jdbcToPPMethodMap.put(SchemaType.TIMESTAMP, TIMESTAMP_PP_METHOD); 359 jdbcToPPMethodMap.put(SchemaType.BOOLEANCHAR, BOOLEANCHAR_PP_METHOD); 360 jdbcToPPMethodMap.put(SchemaType.BOOLEANINT, BOOLEANINT_PP_METHOD); 361 362 torqueTypeToJdbcTypeMap = new Hashtable (); 364 365 Iterator iter = SchemaType.iterator(); 366 while (iter.hasNext()) 367 { 368 SchemaType type = (SchemaType) iter.next(); 369 torqueTypeToJdbcTypeMap.put(type, type); 370 } 371 torqueTypeToJdbcTypeMap.put(SchemaType.BOOLEANCHAR, SchemaType.CHAR); 372 torqueTypeToJdbcTypeMap.put(SchemaType.BOOLEANINT, SchemaType.INTEGER); 373 374 jdbcToTorqueTypeMap = new Hashtable (); 376 377 jdbcToTorqueTypeMap.put(new Integer (Types.CHAR), SchemaType.CHAR); 378 jdbcToTorqueTypeMap.put(new Integer (Types.VARCHAR), SchemaType.VARCHAR); 379 jdbcToTorqueTypeMap.put(new Integer (Types.LONGVARCHAR), SchemaType.LONGVARCHAR); 380 jdbcToTorqueTypeMap.put(new Integer (Types.CLOB), SchemaType.CLOB); 381 jdbcToTorqueTypeMap.put(new Integer (Types.NUMERIC), SchemaType.NUMERIC); 382 jdbcToTorqueTypeMap.put(new Integer (Types.DECIMAL), SchemaType.DECIMAL); 383 jdbcToTorqueTypeMap.put(new Integer (Types.BIT), SchemaType.BIT); 384 jdbcToTorqueTypeMap.put(new Integer (Types.TINYINT), SchemaType.TINYINT); 385 jdbcToTorqueTypeMap.put(new Integer (Types.SMALLINT), SchemaType.SMALLINT); 386 jdbcToTorqueTypeMap.put(new Integer (Types.INTEGER), SchemaType.INTEGER); 387 jdbcToTorqueTypeMap.put(new Integer (Types.BIGINT), SchemaType.BIGINT); 388 jdbcToTorqueTypeMap.put(new Integer (Types.REAL), SchemaType.REAL); 389 jdbcToTorqueTypeMap.put(new Integer (Types.FLOAT), SchemaType.FLOAT); 390 jdbcToTorqueTypeMap.put(new Integer (Types.DOUBLE), SchemaType.DOUBLE); 391 jdbcToTorqueTypeMap.put(new Integer (Types.BINARY), SchemaType.BINARY); 392 jdbcToTorqueTypeMap.put(new Integer (Types.VARBINARY), SchemaType.VARBINARY); 393 jdbcToTorqueTypeMap.put(new Integer (Types.LONGVARBINARY), SchemaType.LONGVARBINARY); 394 jdbcToTorqueTypeMap.put(new Integer (Types.BLOB), SchemaType.BLOB); 395 jdbcToTorqueTypeMap.put(new Integer (Types.DATE), SchemaType.DATE); 396 jdbcToTorqueTypeMap.put(new Integer (Types.TIME), SchemaType.TIME); 397 jdbcToTorqueTypeMap.put(new Integer (Types.TIMESTAMP), SchemaType.TIMESTAMP); 398 399 isInitialized = true; 400 } 401 } 402 403 408 public static boolean isInitialized() 409 { 410 return isInitialized; 411 } 412 413 420 public static String getJavaObject(SchemaType jdbcType) 421 { 422 if (!isInitialized) 424 { 425 initialize(); 426 } 427 return (String ) jdbcToJavaObjectMap.get(jdbcType); 428 } 429 430 437 public static String getJavaNative(SchemaType jdbcType) 438 { 439 if (!isInitialized) 441 { 442 initialize(); 443 } 444 return (String ) jdbcToJavaNativeMap.get(jdbcType); 445 } 446 447 454 public static String getJavaNativeObject(SchemaType jdbcType) 455 { 456 if (!isInitialized) 458 { 459 initialize(); 460 } 461 String s = (String ) jdbcToJavaNativeObjectMap.get(jdbcType); 462 if (s == null) 463 { 464 s = (String ) jdbcToJavaNativeMap.get(jdbcType); 465 } 466 return s; 467 } 468 469 476 public static String getVillageMethod(SchemaType jdbcType) 477 { 478 if (!isInitialized) 480 { 481 initialize(); 482 } 483 return (String ) jdbcToVillageMethodMap.get(jdbcType); 484 } 485 486 493 public static String getVillageObjectMethod(SchemaType jdbcType) 494 { 495 if (!isInitialized) 497 { 498 initialize(); 499 } 500 String s = (String ) jdbcToVillageObjectMethodMap.get(jdbcType); 501 if (s == null) 502 { 503 s = (String ) jdbcToVillageMethodMap.get(jdbcType); 504 } 505 return s; 506 } 507 508 515 public static String getPPMethod(SchemaType jdbcType) 516 { 517 if (!isInitialized) 519 { 520 initialize(); 521 } 522 return (String ) jdbcToPPMethodMap.get(jdbcType); 523 } 524 525 533 public static SchemaType getJdbcType(SchemaType type) 534 { 535 if (!isInitialized) 537 { 538 initialize(); 539 } 540 return (SchemaType) torqueTypeToJdbcTypeMap.get(type); 541 } 542 543 550 public static SchemaType getTorqueType(Integer sqlType) 551 { 552 if (!isInitialized) 554 { 555 initialize(); 556 } 557 SchemaType st = (SchemaType) jdbcToTorqueTypeMap.get(sqlType); 558 if (st == null) 559 { 560 st = SchemaType.VARCHAR; 561 log.warn("SchemaType for JdbcType '" + sqlType + 562 "' is not defined: Defaulting to '" + st + '\''); 563 } 564 return st; 565 } 566 567 574 public static boolean isBooleanInt(SchemaType type) 575 { 576 return SchemaType.BOOLEANINT.equals(type); 577 } 578 579 586 public static boolean isBooleanChar(SchemaType type) 587 { 588 return SchemaType.BOOLEANCHAR.equals(type); 589 } 590 591 598 public static boolean isBit(SchemaType type) 599 { 600 return SchemaType.BIT.equals(type); 601 } 602 603 609 public static final boolean isTextType(SchemaType type) 610 { 611 for (int i = 0; i < TEXT_TYPES.length; i++) 612 { 613 if (type.equals(TEXT_TYPES[i])) 614 { 615 return true; 616 } 617 } 618 619 return false; 621 } 622 } 623 | Popular Tags |