View Javadoc
1 package org.apache.torque.engine.database.model; 2 3 /* ==================================================================== 4 * The Apache Software License, Version 1.1 5 * 6 * Copyright (c) 2001 The Apache Software Foundation. All rights 7 * reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in 18 * the documentation and/or other materials provided with the 19 * distribution. 20 * 21 * 3. The end-user documentation included with the redistribution, 22 * if any, must include the following acknowledgment: 23 * "This product includes software developed by the 24 * Apache Software Foundation (http://www.apache.org/)." 25 * Alternately, this acknowledgment may appear in the software itself, 26 * if and wherever such third-party acknowledgments normally appear. 27 * 28 * 4. The names "Apache" and "Apache Software Foundation" and 29 * "Apache Turbine" must not be used to endorse or promote products 30 * derived from this software without prior written permission. For 31 * written permission, please contact apache@apache.org. 32 * 33 * 5. Products derived from this software may not be called "Apache", 34 * "Apache Turbine", nor may "Apache" appear in their name, without 35 * prior written permission of the Apache Software Foundation. 36 * 37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 48 * SUCH DAMAGE. 49 * ==================================================================== 50 * 51 * This software consists of voluntary contributions made by many 52 * individuals on behalf of the Apache Software Foundation. For more 53 * information on the Apache Software Foundation, please see 54 * <http://www.apache.org/>. 55 */ 56 57 import java.util.Hashtable; 58 import java.sql.Types; 59 60 // I don't know if the peer system deals 61 // with the recommended mappings. 62 // 63 //import java.sql.Date; 64 //import java.sql.Time; 65 //import java.sql.Timestamp; 66 67 /*** 68 * A class that maps JDBC types to their corresponding 69 * Java object types, and Java native types. Used 70 * by Column.java to perform object/native mappings. 71 * 72 * These are the official SQL type to Java type mappings. 73 * These don't quite correspond to the way the peer 74 * system works so we'll have to make some adjustments. 75 * <pre> 76 * ------------------------------------------------------- 77 * SQL Type | Java Type | Peer Type 78 * ------------------------------------------------------- 79 * CHAR | String | String 80 * VARCHAR | String | String 81 * LONGVARCHAR | String | String 82 * NUMERIC | java.math.BigDecimal | java.math.BigDecimal 83 * DECIMAL | java.math.BigDecimal | java.math.BigDecimal 84 * BIT | boolean OR Boolean | Boolean 85 * TINYINT | byte OR Byte | Byte 86 * SMALLINT | short OR Short | Short 87 * INTEGER | int OR Integer | Integer 88 * BIGINT | long OR Long | Long 89 * REAL | float OR Float | Float 90 * FLOAT | double OR Double | Double 91 * DOUBLE | double OR Double | Double 92 * BINARY | byte[] | ? 93 * VARBINARY | byte[] | ? 94 * LONGVARBINARY | byte[] | ? 95 * DATE | java.sql.Date | java.util.Date 96 * TIME | java.sql.Time | java.util.Date 97 * TIMESTAMP | java.sql.Timestamp | java.util.Date 98 * 99 * ------------------------------------------------------- 100 * A couple variations have been introduced to cover cases 101 * that may arise, but are not covered above 102 * BOOLEANCHAR | boolean OR Boolean | String 103 * BOOLEANINT | boolean OR Boolean | Integer 104 * </pre> 105 * 106 * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a> 107 * @version $Id: TypeMap.java,v 1.2 2003/06/24 11:10:32 mpoeschl Exp $ 108 */ 109 public class TypeMap 110 { 111 public static final String CHAR = "CHAR"; 112 public static final String VARCHAR = "VARCHAR"; 113 public static final String LONGVARCHAR = "LONGVARCHAR"; 114 public static final String CLOB = "CLOB"; 115 public static final String NUMERIC = "NUMERIC"; 116 public static final String DECIMAL = "DECIMAL"; 117 public static final String BIT = "BIT"; 118 public static final String TINYINT = "TINYINT"; 119 public static final String SMALLINT = "SMALLINT"; 120 public static final String INTEGER = "INTEGER"; 121 public static final String BIGINT = "BIGINT"; 122 public static final String REAL = "REAL"; 123 public static final String FLOAT = "FLOAT"; 124 public static final String DOUBLE = "DOUBLE"; 125 public static final String BINARY = "BINARY"; 126 public static final String VARBINARY = "VARBINARY"; 127 public static final String LONGVARBINARY = "LONGVARBINARY"; 128 public static final String BLOB = "BLOB"; 129 public static final String DATE = "DATE"; 130 public static final String TIME = "TIME"; 131 public static final String TIMESTAMP = "TIMESTAMP"; 132 public static final String BOOLEANCHAR = "BOOLEANCHAR"; 133 public static final String BOOLEANINT = "BOOLEANINT"; 134 private static final String[] TEXT_TYPES = 135 { 136 CHAR, VARCHAR, LONGVARCHAR, CLOB, DATE, TIME, TIMESTAMP, BOOLEANCHAR 137 }; 138 139 public static final String CHAR_OBJECT_TYPE = "new String()"; 140 public static final String VARCHAR_OBJECT_TYPE = "new String()"; 141 public static final String LONGVARCHAR_OBJECT_TYPE = "new String()"; 142 public static final String CLOB_OBJECT_TYPE = "new String()"; 143 public static final String NUMERIC_OBJECT_TYPE = "new BigDecimal(0)"; 144 public static final String DECIMAL_OBJECT_TYPE = "new BigDecimal(0)"; 145 public static final String BIT_OBJECT_TYPE = "new Boolean(true)"; 146 public static final String TINYINT_OBJECT_TYPE = "new Byte((byte)0)"; 147 public static final String SMALLINT_OBJECT_TYPE = "new Short((short)0)"; 148 public static final String INTEGER_OBJECT_TYPE = "new Integer(0)"; 149 public static final String BIGINT_OBJECT_TYPE = "new Long(0)"; 150 public static final String REAL_OBJECT_TYPE = "new Float(0)"; 151 public static final String FLOAT_OBJECT_TYPE = "new Double(0)"; 152 public static final String DOUBLE_OBJECT_TYPE = "new Double(0)"; 153 public static final String BINARY_OBJECT_TYPE = "new Object()"; //? 154 public static final String VARBINARY_OBJECT_TYPE = "new Object()"; //? 155 public static final String LONGVARBINARY_OBJECT_TYPE = "new Object()"; //? 156 public static final String BLOB_OBJECT_TYPE = "new Object()"; //? 157 public static final String DATE_OBJECT_TYPE = "new Date()"; 158 public static final String TIME_OBJECT_TYPE = "new Date()"; 159 public static final String TIMESTAMP_OBJECT_TYPE = "new Date()"; 160 public static final String BOOLEANCHAR_OBJECT_TYPE = "new String()"; 161 public static final String BOOLEANINT_OBJECT_TYPE = "new Integer(0)"; 162 163 public static final String CHAR_NATIVE_TYPE = "String"; 164 public static final String VARCHAR_NATIVE_TYPE = "String"; 165 public static final String LONGVARCHAR_NATIVE_TYPE = "String"; 166 public static final String CLOB_NATIVE_TYPE = "String"; 167 public static final String NUMERIC_NATIVE_TYPE = "BigDecimal"; 168 public static final String DECIMAL_NATIVE_TYPE = "BigDecimal"; 169 public static final String BIT_NATIVE_TYPE = "boolean"; 170 public static final String TINYINT_NATIVE_TYPE = "byte"; 171 public static final String SMALLINT_NATIVE_TYPE = "short"; 172 public static final String INTEGER_NATIVE_TYPE = "int"; 173 public static final String BIGINT_NATIVE_TYPE = "long"; 174 public static final String REAL_NATIVE_TYPE = "float"; 175 public static final String FLOAT_NATIVE_TYPE = "double"; 176 public static final String DOUBLE_NATIVE_TYPE = "double"; 177 public static final String BINARY_NATIVE_TYPE = "byte[]"; 178 public static final String VARBINARY_NATIVE_TYPE = "byte[]"; 179 public static final String LONGVARBINARY_NATIVE_TYPE = "byte[]"; 180 public static final String BLOB_NATIVE_TYPE = "byte[]"; 181 public static final String DATE_NATIVE_TYPE = "Date"; 182 public static final String TIME_NATIVE_TYPE = "Date"; 183 public static final String TIMESTAMP_NATIVE_TYPE = "Date"; 184 public static final String BOOLEANCHAR_NATIVE_TYPE = "boolean"; 185 public static final String BOOLEANINT_NATIVE_TYPE = "boolean"; 186 187 public static final String BIT_NATIVE_OBJECT_TYPE = "Boolean"; 188 public static final String TINYINT_NATIVE_OBJECT_TYPE = "Byte"; 189 public static final String SMALLINT_NATIVE_OBJECT_TYPE = "Short"; 190 public static final String INTEGER_NATIVE_OBJECT_TYPE = "Integer"; 191 public static final String BIGINT_NATIVE_OBJECT_TYPE = "Long"; 192 public static final String REAL_NATIVE_OBJECT_TYPE = "Float"; 193 public static final String FLOAT_NATIVE_OBJECT_TYPE = "Double"; 194 public static final String DOUBLE_NATIVE_OBJECT_TYPE = "Double"; 195 public static final String BOOLEANCHAR_NATIVE_OBJECT_TYPE = "Boolean"; 196 public static final String BOOLEANINT_NATIVE_OBJECT_TYPE = "Boolean"; 197 198 public static final String CHAR_VILLAGE_METHOD = "asString()"; 199 public static final String VARCHAR_VILLAGE_METHOD = "asString()"; 200 public static final String LONGVARCHAR_VILLAGE_METHOD = "asString()"; 201 public static final String CLOB_VILLAGE_METHOD = "asString()"; 202 public static final String NUMERIC_VILLAGE_METHOD = "asBigDecimal()"; 203 public static final String DECIMAL_VILLAGE_METHOD = "asBigDecimal()"; 204 public static final String BIT_VILLAGE_METHOD = "asBoolean()"; 205 public static final String TINYINT_VILLAGE_METHOD = "asByte()"; 206 public static final String SMALLINT_VILLAGE_METHOD = "asShort()"; 207 public static final String INTEGER_VILLAGE_METHOD = "asInt()"; 208 public static final String BIGINT_VILLAGE_METHOD = "asLong()"; 209 public static final String REAL_VILLAGE_METHOD = "asFloat()"; 210 public static final String FLOAT_VILLAGE_METHOD = "asDouble()"; 211 public static final String DOUBLE_VILLAGE_METHOD = "asDouble()"; 212 public static final String BINARY_VILLAGE_METHOD = "asBytes()"; 213 public static final String VARBINARY_VILLAGE_METHOD = "asBytes()"; 214 public static final String LONGVARBINARY_VILLAGE_METHOD = "asBytes()"; 215 public static final String BLOB_VILLAGE_METHOD = "asBytes()"; 216 public static final String DATE_VILLAGE_METHOD = "asUtilDate()"; 217 public static final String TIME_VILLAGE_METHOD = "asUtilDate()"; 218 public static final String TIMESTAMP_VILLAGE_METHOD = "asUtilDate()"; 219 public static final String BOOLEANCHAR_VILLAGE_METHOD = "asBoolean()"; 220 public static final String BOOLEANINT_VILLAGE_METHOD = "asBoolean()"; 221 222 public static final String BIT_VILLAGE_OBJECT_METHOD = "asBooleanObj()"; 223 public static final String TINYINT_VILLAGE_OBJECT_METHOD = "asByteObj()"; 224 public static final String SMALLINT_VILLAGE_OBJECT_METHOD = "asShortObj()"; 225 public static final String INTEGER_VILLAGE_OBJECT_METHOD = "asIntegerObj()"; 226 public static final String BIGINT_VILLAGE_OBJECT_METHOD = "asLongObj()"; 227 public static final String REAL_VILLAGE_OBJECT_METHOD = "asFloatObj()"; 228 public static final String FLOAT_VILLAGE_OBJECT_METHOD = "asDoubleObj()"; 229 public static final String DOUBLE_VILLAGE_OBJECT_METHOD = "asDoubleObj()"; 230 public static final String BOOLEANCHAR_VILLAGE_OBJECT_METHOD = "asBooleanObj()"; 231 public static final String BOOLEANINT_VILLAGE_OBJECT_METHOD = "asBooleanObj()"; 232 233 public static final String CHAR_PP_METHOD = "getString(ppKey)"; 234 public static final String VARCHAR_PP_METHOD = "getString(ppKey)"; 235 public static final String LONGVARCHAR_PP_METHOD = "getString(ppKey)"; 236 public static final String NUMERIC_PP_METHOD = "getBigDecimal(ppKey)"; 237 public static final String DECIMAL_PP_METHOD = "getBigDecimal(ppKey)"; 238 public static final String BIT_PP_METHOD = "getBoolean(ppKey)"; 239 public static final String TINYINT_PP_METHOD = "getByte(ppKey)"; 240 public static final String SMALLINT_PP_METHOD = "getShort(ppKey)"; 241 public static final String INTEGER_PP_METHOD = "getInt(ppKey)"; 242 public static final String BIGINT_PP_METHOD = "getLong(ppKey)"; 243 public static final String REAL_PP_METHOD = "getFloat(ppKey)"; 244 public static final String FLOAT_PP_METHOD = "getDouble(ppKey)"; 245 public static final String DOUBLE_PP_METHOD = "getDouble(ppKey)"; 246 public static final String BINARY_PP_METHOD = "getBytes(ppKey)"; 247 public static final String VARBINARY_PP_METHOD = "getBytes(ppKey)"; 248 public static final String LONGVARBINARY_PP_METHOD = "getBytes(ppKey)"; 249 public static final String DATE_PP_METHOD = "getDate(ppKey)"; 250 public static final String TIME_PP_METHOD = "getDate(ppKey)"; 251 public static final String TIMESTAMP_PP_METHOD = "getDate(ppKey)"; 252 public static final String BOOLEANCHAR_PP_METHOD = "getBoolean(ppKey)"; 253 public static final String BOOLEANINT_PP_METHOD = "getBoolean(ppKey)"; 254 255 private static Hashtable jdbcToJavaObjectMap = null; 256 private static Hashtable jdbcToJavaNativeMap = null; 257 private static Hashtable jdbcToJavaNativeObjectMap = null; 258 private static Hashtable jdbcToVillageMethodMap = null; 259 private static Hashtable jdbcToVillageObjectMethodMap = null; 260 private static Hashtable jdbcToPPMethodMap = null; 261 private static Hashtable torqueTypeToJdbcTypeMap = null; 262 private static Hashtable jdbcToTorqueTypeMap = null; 263 private static boolean isInitialized = false; 264 265 /*** 266 * Initializes the SQL to Java map so that it 267 * can be used by client code. 268 */ 269 public synchronized static void initialize() 270 { 271 if (!isInitialized) 272 { 273 /* 274 * Create JDBC -> Java object mappings. 275 */ 276 277 jdbcToJavaObjectMap = new Hashtable(); 278 279 jdbcToJavaObjectMap.put(CHAR, CHAR_OBJECT_TYPE); 280 jdbcToJavaObjectMap.put(VARCHAR, VARCHAR_OBJECT_TYPE); 281 jdbcToJavaObjectMap.put(LONGVARCHAR, LONGVARCHAR_OBJECT_TYPE); 282 jdbcToJavaObjectMap.put(CLOB, CLOB_OBJECT_TYPE); 283 jdbcToJavaObjectMap.put(NUMERIC, NUMERIC_OBJECT_TYPE); 284 jdbcToJavaObjectMap.put(DECIMAL, DECIMAL_OBJECT_TYPE); 285 jdbcToJavaObjectMap.put(BIT, BIT_OBJECT_TYPE); 286 jdbcToJavaObjectMap.put(TINYINT, TINYINT_OBJECT_TYPE); 287 jdbcToJavaObjectMap.put(SMALLINT, SMALLINT_OBJECT_TYPE); 288 jdbcToJavaObjectMap.put(INTEGER, INTEGER_OBJECT_TYPE); 289 jdbcToJavaObjectMap.put(BIGINT, BIGINT_OBJECT_TYPE); 290 jdbcToJavaObjectMap.put(REAL, REAL_OBJECT_TYPE); 291 jdbcToJavaObjectMap.put(FLOAT, FLOAT_OBJECT_TYPE); 292 jdbcToJavaObjectMap.put(DOUBLE, DOUBLE_OBJECT_TYPE); 293 jdbcToJavaObjectMap.put(BINARY, BINARY_OBJECT_TYPE); 294 jdbcToJavaObjectMap.put(VARBINARY, VARBINARY_OBJECT_TYPE); 295 jdbcToJavaObjectMap.put(LONGVARBINARY, LONGVARBINARY_OBJECT_TYPE); 296 jdbcToJavaObjectMap.put(BLOB, BLOB_OBJECT_TYPE); 297 jdbcToJavaObjectMap.put(DATE, DATE_OBJECT_TYPE); 298 jdbcToJavaObjectMap.put(TIME, TIME_OBJECT_TYPE); 299 jdbcToJavaObjectMap.put(TIMESTAMP, TIMESTAMP_OBJECT_TYPE); 300 jdbcToJavaObjectMap.put(BOOLEANCHAR, BOOLEANCHAR_OBJECT_TYPE); 301 jdbcToJavaObjectMap.put(BOOLEANINT, BOOLEANINT_OBJECT_TYPE); 302 303 /* 304 * Create JDBC -> native Java type mappings. 305 */ 306 307 jdbcToJavaNativeMap = new Hashtable(); 308 309 jdbcToJavaNativeMap.put(CHAR, CHAR_NATIVE_TYPE); 310 jdbcToJavaNativeMap.put(VARCHAR, VARCHAR_NATIVE_TYPE); 311 jdbcToJavaNativeMap.put(LONGVARCHAR, LONGVARCHAR_NATIVE_TYPE); 312 jdbcToJavaNativeMap.put(CLOB, CLOB_NATIVE_TYPE); 313 jdbcToJavaNativeMap.put(NUMERIC, NUMERIC_NATIVE_TYPE); 314 jdbcToJavaNativeMap.put(DECIMAL, DECIMAL_NATIVE_TYPE); 315 jdbcToJavaNativeMap.put(BIT, BIT_NATIVE_TYPE); 316 jdbcToJavaNativeMap.put(TINYINT, TINYINT_NATIVE_TYPE); 317 jdbcToJavaNativeMap.put(SMALLINT, SMALLINT_NATIVE_TYPE); 318 jdbcToJavaNativeMap.put(INTEGER, INTEGER_NATIVE_TYPE); 319 jdbcToJavaNativeMap.put(BIGINT, BIGINT_NATIVE_TYPE); 320 jdbcToJavaNativeMap.put(REAL, REAL_NATIVE_TYPE); 321 jdbcToJavaNativeMap.put(FLOAT, FLOAT_NATIVE_TYPE); 322 jdbcToJavaNativeMap.put(DOUBLE, DOUBLE_NATIVE_TYPE); 323 jdbcToJavaNativeMap.put(BINARY, BINARY_NATIVE_TYPE); 324 jdbcToJavaNativeMap.put(VARBINARY, VARBINARY_NATIVE_TYPE); 325 jdbcToJavaNativeMap.put(LONGVARBINARY, LONGVARBINARY_NATIVE_TYPE); 326 jdbcToJavaNativeMap.put(BLOB, BLOB_NATIVE_TYPE); 327 jdbcToJavaNativeMap.put(DATE, DATE_NATIVE_TYPE); 328 jdbcToJavaNativeMap.put(TIME, TIME_NATIVE_TYPE); 329 jdbcToJavaNativeMap.put(TIMESTAMP, TIMESTAMP_NATIVE_TYPE); 330 jdbcToJavaNativeMap.put(BOOLEANCHAR, BOOLEANCHAR_NATIVE_TYPE); 331 jdbcToJavaNativeMap.put(BOOLEANINT, BOOLEANINT_NATIVE_TYPE); 332 333 jdbcToJavaNativeObjectMap = new Hashtable(); 334 jdbcToJavaNativeObjectMap.put(BIT, BIT_NATIVE_OBJECT_TYPE); 335 jdbcToJavaNativeObjectMap.put(TINYINT, TINYINT_NATIVE_OBJECT_TYPE); 336 jdbcToJavaNativeObjectMap.put(SMALLINT, SMALLINT_NATIVE_OBJECT_TYPE); 337 jdbcToJavaNativeObjectMap.put(INTEGER, INTEGER_NATIVE_OBJECT_TYPE); 338 jdbcToJavaNativeObjectMap.put(BIGINT, BIGINT_NATIVE_OBJECT_TYPE); 339 jdbcToJavaNativeObjectMap.put(REAL, REAL_NATIVE_OBJECT_TYPE); 340 jdbcToJavaNativeObjectMap.put(FLOAT, FLOAT_NATIVE_OBJECT_TYPE); 341 jdbcToJavaNativeObjectMap.put(DOUBLE, DOUBLE_NATIVE_OBJECT_TYPE); 342 jdbcToJavaNativeObjectMap.put(BOOLEANCHAR, 343 BOOLEANCHAR_NATIVE_OBJECT_TYPE); 344 jdbcToJavaNativeObjectMap.put(BOOLEANINT, 345 BOOLEANINT_NATIVE_OBJECT_TYPE); 346 347 /* 348 * Create JDBC -> Village asX() mappings. 349 */ 350 351 jdbcToVillageMethodMap = new Hashtable(); 352 353 jdbcToVillageMethodMap.put(CHAR, CHAR_VILLAGE_METHOD); 354 jdbcToVillageMethodMap.put(VARCHAR, VARCHAR_VILLAGE_METHOD); 355 jdbcToVillageMethodMap.put(LONGVARCHAR, LONGVARCHAR_VILLAGE_METHOD); 356 jdbcToVillageMethodMap.put(CLOB, CLOB_VILLAGE_METHOD); 357 jdbcToVillageMethodMap.put(NUMERIC, NUMERIC_VILLAGE_METHOD); 358 jdbcToVillageMethodMap.put(DECIMAL, DECIMAL_VILLAGE_METHOD); 359 jdbcToVillageMethodMap.put(BIT, BIT_VILLAGE_METHOD); 360 jdbcToVillageMethodMap.put(TINYINT, TINYINT_VILLAGE_METHOD); 361 jdbcToVillageMethodMap.put(SMALLINT, SMALLINT_VILLAGE_METHOD); 362 jdbcToVillageMethodMap.put(INTEGER, INTEGER_VILLAGE_METHOD); 363 jdbcToVillageMethodMap.put(BIGINT, BIGINT_VILLAGE_METHOD); 364 jdbcToVillageMethodMap.put(REAL, REAL_VILLAGE_METHOD); 365 jdbcToVillageMethodMap.put(FLOAT, FLOAT_VILLAGE_METHOD); 366 jdbcToVillageMethodMap.put(DOUBLE, DOUBLE_VILLAGE_METHOD); 367 jdbcToVillageMethodMap.put(BINARY, BINARY_VILLAGE_METHOD); 368 jdbcToVillageMethodMap.put(VARBINARY, VARBINARY_VILLAGE_METHOD); 369 jdbcToVillageMethodMap.put(LONGVARBINARY, LONGVARBINARY_VILLAGE_METHOD); 370 jdbcToVillageMethodMap.put(BLOB, BLOB_VILLAGE_METHOD); 371 jdbcToVillageMethodMap.put(DATE, DATE_VILLAGE_METHOD); 372 jdbcToVillageMethodMap.put(TIME, TIME_VILLAGE_METHOD); 373 jdbcToVillageMethodMap.put(TIMESTAMP, TIMESTAMP_VILLAGE_METHOD); 374 jdbcToVillageMethodMap.put(BOOLEANCHAR, BOOLEANCHAR_VILLAGE_METHOD); 375 jdbcToVillageMethodMap.put(BOOLEANINT, BOOLEANINT_VILLAGE_METHOD); 376 377 378 jdbcToVillageObjectMethodMap = new Hashtable(); 379 jdbcToVillageObjectMethodMap.put(BIT, BIT_VILLAGE_OBJECT_METHOD); 380 jdbcToVillageObjectMethodMap.put(TINYINT, 381 TINYINT_VILLAGE_OBJECT_METHOD); 382 jdbcToVillageObjectMethodMap.put(SMALLINT, 383 SMALLINT_VILLAGE_OBJECT_METHOD); 384 jdbcToVillageObjectMethodMap.put(INTEGER, 385 INTEGER_VILLAGE_OBJECT_METHOD); 386 jdbcToVillageObjectMethodMap.put(BIGINT, 387 BIGINT_VILLAGE_OBJECT_METHOD); 388 jdbcToVillageObjectMethodMap.put(REAL, REAL_VILLAGE_OBJECT_METHOD); 389 jdbcToVillageObjectMethodMap.put(FLOAT, FLOAT_VILLAGE_OBJECT_METHOD); 390 jdbcToVillageObjectMethodMap.put(DOUBLE, 391 DOUBLE_VILLAGE_OBJECT_METHOD); 392 jdbcToVillageObjectMethodMap.put(BOOLEANCHAR, 393 BOOLEANCHAR_VILLAGE_OBJECT_METHOD); 394 jdbcToVillageObjectMethodMap.put(BOOLEANINT, 395 BOOLEANINT_VILLAGE_OBJECT_METHOD); 396 397 /* 398 * Create JDBC -> ParameterParser getX() mappings. 399 */ 400 401 jdbcToPPMethodMap = new Hashtable(); 402 403 jdbcToPPMethodMap.put(CHAR, CHAR_PP_METHOD); 404 jdbcToPPMethodMap.put(VARCHAR, VARCHAR_PP_METHOD); 405 jdbcToPPMethodMap.put(LONGVARCHAR, LONGVARCHAR_PP_METHOD); 406 jdbcToPPMethodMap.put(NUMERIC, NUMERIC_PP_METHOD); 407 jdbcToPPMethodMap.put(DECIMAL, DECIMAL_PP_METHOD); 408 jdbcToPPMethodMap.put(BIT, BIT_PP_METHOD); 409 jdbcToPPMethodMap.put(TINYINT, TINYINT_PP_METHOD); 410 jdbcToPPMethodMap.put(SMALLINT, SMALLINT_PP_METHOD); 411 jdbcToPPMethodMap.put(INTEGER, INTEGER_PP_METHOD); 412 jdbcToPPMethodMap.put(BIGINT, BIGINT_PP_METHOD); 413 jdbcToPPMethodMap.put(REAL, REAL_PP_METHOD); 414 jdbcToPPMethodMap.put(FLOAT, FLOAT_PP_METHOD); 415 jdbcToPPMethodMap.put(DOUBLE, DOUBLE_PP_METHOD); 416 jdbcToPPMethodMap.put(BINARY, BINARY_PP_METHOD); 417 jdbcToPPMethodMap.put(VARBINARY, VARBINARY_PP_METHOD); 418 jdbcToPPMethodMap.put(LONGVARBINARY, LONGVARBINARY_PP_METHOD); 419 jdbcToPPMethodMap.put(DATE, DATE_PP_METHOD); 420 jdbcToPPMethodMap.put(TIME, TIME_PP_METHOD); 421 jdbcToPPMethodMap.put(TIMESTAMP, TIMESTAMP_PP_METHOD); 422 jdbcToPPMethodMap.put(BOOLEANCHAR, BOOLEANCHAR_PP_METHOD); 423 jdbcToPPMethodMap.put(BOOLEANINT, BOOLEANINT_PP_METHOD); 424 425 /* 426 * Create JDBC -> Java object mappings. 427 */ 428 429 torqueTypeToJdbcTypeMap = new Hashtable(); 430 431 torqueTypeToJdbcTypeMap.put(CHAR, CHAR); 432 torqueTypeToJdbcTypeMap.put(VARCHAR, VARCHAR); 433 torqueTypeToJdbcTypeMap.put(LONGVARCHAR, LONGVARCHAR); 434 torqueTypeToJdbcTypeMap.put(CLOB, CLOB); 435 torqueTypeToJdbcTypeMap.put(NUMERIC, NUMERIC); 436 torqueTypeToJdbcTypeMap.put(DECIMAL, DECIMAL); 437 torqueTypeToJdbcTypeMap.put(BIT, BIT); 438 torqueTypeToJdbcTypeMap.put(TINYINT, TINYINT); 439 torqueTypeToJdbcTypeMap.put(SMALLINT, SMALLINT); 440 torqueTypeToJdbcTypeMap.put(INTEGER, INTEGER); 441 torqueTypeToJdbcTypeMap.put(BIGINT, BIGINT); 442 torqueTypeToJdbcTypeMap.put(REAL, REAL); 443 torqueTypeToJdbcTypeMap.put(FLOAT, FLOAT); 444 torqueTypeToJdbcTypeMap.put(DOUBLE, DOUBLE); 445 torqueTypeToJdbcTypeMap.put(BINARY, BINARY); 446 torqueTypeToJdbcTypeMap.put(VARBINARY, VARBINARY); 447 torqueTypeToJdbcTypeMap.put(LONGVARBINARY, LONGVARBINARY); 448 torqueTypeToJdbcTypeMap.put(BLOB, BLOB); 449 torqueTypeToJdbcTypeMap.put(DATE, DATE); 450 torqueTypeToJdbcTypeMap.put(TIME, TIME); 451 torqueTypeToJdbcTypeMap.put(TIMESTAMP, TIMESTAMP); 452 torqueTypeToJdbcTypeMap.put(BOOLEANCHAR, CHAR); 453 torqueTypeToJdbcTypeMap.put(BOOLEANINT, INTEGER); 454 455 /* 456 * Create JDBC type code to torque type map. 457 */ 458 jdbcToTorqueTypeMap = new Hashtable(); 459 460 jdbcToTorqueTypeMap.put(new Integer(Types.CHAR), CHAR); 461 jdbcToTorqueTypeMap.put(new Integer(Types.VARCHAR), VARCHAR); 462 jdbcToTorqueTypeMap.put(new Integer(Types.LONGVARCHAR), LONGVARCHAR); 463 jdbcToTorqueTypeMap.put(new Integer(Types.CLOB), CLOB); 464 jdbcToTorqueTypeMap.put(new Integer(Types.NUMERIC), NUMERIC); 465 jdbcToTorqueTypeMap.put(new Integer(Types.DECIMAL), DECIMAL); 466 jdbcToTorqueTypeMap.put(new Integer(Types.BIT), BIT); 467 jdbcToTorqueTypeMap.put(new Integer(Types.TINYINT), TINYINT); 468 jdbcToTorqueTypeMap.put(new Integer(Types.SMALLINT), SMALLINT); 469 jdbcToTorqueTypeMap.put(new Integer(Types.INTEGER), INTEGER); 470 jdbcToTorqueTypeMap.put(new Integer(Types.BIGINT), BIGINT); 471 jdbcToTorqueTypeMap.put(new Integer(Types.REAL), REAL); 472 jdbcToTorqueTypeMap.put(new Integer(Types.FLOAT), FLOAT); 473 jdbcToTorqueTypeMap.put(new Integer(Types.DOUBLE), DOUBLE); 474 jdbcToTorqueTypeMap.put(new Integer(Types.BINARY), BINARY); 475 jdbcToTorqueTypeMap.put(new Integer(Types.VARBINARY), VARBINARY); 476 jdbcToTorqueTypeMap.put(new Integer(Types.LONGVARBINARY), LONGVARBINARY); 477 jdbcToTorqueTypeMap.put(new Integer(Types.BLOB), BLOB); 478 jdbcToTorqueTypeMap.put(new Integer(Types.DATE), DATE); 479 jdbcToTorqueTypeMap.put(new Integer(Types.TIME), TIME); 480 jdbcToTorqueTypeMap.put(new Integer(Types.TIMESTAMP), TIMESTAMP); 481 482 isInitialized = true; 483 } 484 } 485 486 /*** 487 * Report whether this object has been initialized. 488 * 489 * @return true if this object has been initialized 490 */ 491 public static boolean isInitialized() 492 { 493 return isInitialized; 494 } 495 496 /*** 497 * Return a Java object which corresponds to the 498 * JDBC type provided. Use in MapBuilder generation. 499 * 500 * @param jdbcType the JDBC type 501 * @return name of the Object 502 */ 503 public static String getJavaObject(String jdbcType) 504 { 505 // Make sure the we are initialized. 506 if (!isInitialized) 507 { 508 initialize(); 509 } 510 return (String) jdbcToJavaObjectMap.get(jdbcType); 511 } 512 513 /*** 514 * Return native java type which corresponds to the 515 * JDBC type provided. Use in the base object class generation. 516 * 517 * @param jdbcType the JDBC type 518 * @return name of the native java type 519 */ 520 public static String getJavaNative(String jdbcType) 521 { 522 // Make sure the we are initialized. 523 if (!isInitialized) 524 { 525 initialize(); 526 } 527 return (String) jdbcToJavaNativeMap.get(jdbcType); 528 } 529 530 /*** 531 * Return native java type which corresponds to the 532 * JDBC type provided. Use in the base object class generation. 533 * 534 * @param jdbcType the JDBC type 535 * @return name of the Object 536 */ 537 public static String getJavaNativeObject(String jdbcType) 538 { 539 // Make sure the we are initialized. 540 if (!isInitialized) 541 { 542 initialize(); 543 } 544 String s = (String) jdbcToJavaNativeObjectMap.get(jdbcType); 545 if (s == null) 546 { 547 s = (String) jdbcToJavaNativeMap.get(jdbcType); 548 } 549 return s; 550 } 551 552 /*** 553 * Return Village asX() method which corresponds to the 554 * JDBC type provided. Use in the Peer class generation. 555 * 556 * @param jdbcType the JDBC type 557 * @return name of the Village asX() method 558 */ 559 public static String getVillageMethod(String jdbcType) 560 { 561 // Make sure the we are initialized. 562 if (!isInitialized) 563 { 564 initialize(); 565 } 566 return (String) jdbcToVillageMethodMap.get(jdbcType); 567 } 568 569 /*** 570 * Return Village asX() method which corresponds to the 571 * JDBC type provided. Use in the Peer class generation. 572 * 573 * @param jdbcType the JDBC type 574 * @return name of the Village asX() method 575 */ 576 public static String getVillageObjectMethod(String jdbcType) 577 { 578 // Make sure the we are initialized. 579 if (!isInitialized) 580 { 581 initialize(); 582 } 583 String s = (String) jdbcToVillageObjectMethodMap.get(jdbcType); 584 if (s == null) 585 { 586 s = (String) jdbcToVillageMethodMap.get(jdbcType); 587 } 588 return s; 589 } 590 591 /*** 592 * Return ParameterParser getX() method which corresponds to the 593 * JDBC type provided. Use in the Object class generation. 594 * 595 * @param jdbcType the JDBC type 596 * @return name of the ParameterParser getX() method 597 */ 598 public static String getPPMethod(String jdbcType) 599 { 600 // Make sure the we are initialized. 601 if (!isInitialized) 602 { 603 initialize(); 604 } 605 return (String) jdbcToPPMethodMap.get(jdbcType); 606 } 607 608 /*** 609 * Returns the correct jdbc type for torque added types 610 * 611 * @param type the torque added type 612 * @return name of the the correct jdbc type 613 */ 614 public static String getJdbcType(String type) 615 { 616 // Make sure the we are initialized. 617 if (!isInitialized) 618 { 619 initialize(); 620 } 621 return (String) torqueTypeToJdbcTypeMap.get(type); 622 } 623 624 /*** 625 * Returns Torque type constant corresponding to JDBC type code. 626 * Used but Torque JDBC task. 627 * 628 * @param sqlType the SQL type 629 * @return Torque type constant 630 */ 631 public static String getTorqueType(Integer sqlType) 632 { 633 // Make sure the we are initialized. 634 if (!isInitialized) 635 { 636 initialize(); 637 } 638 return (String) jdbcToTorqueTypeMap.get(sqlType); 639 } 640 641 /*** 642 * Returns true if the type is boolean in the java 643 * object and a numeric (1 or 0) in the db. 644 * 645 * @param type The type to check. 646 * @return true if the type is BOOLEANINT 647 */ 648 public static boolean isBooleanInt(String type) 649 { 650 return BOOLEANINT.equals(type); 651 } 652 653 /*** 654 * Returns true if the type is boolean in the 655 * java object and a String "Y" or "N" in the db. 656 * 657 * @param type The type to check. 658 * @return true if the type is BOOLEANCHAR 659 */ 660 public static boolean isBooleanChar(String type) 661 { 662 return BOOLEANCHAR.equals(type); 663 } 664 665 /*** 666 * Returns true if values for the type need to be quoted. 667 * 668 * @param type The type to check. 669 * @return true if values for the type need to be quoted. 670 */ 671 public static final boolean isTextType(String type) 672 { 673 for (int i = 0; i < TEXT_TYPES.length; i++) 674 { 675 if (type.equals(TEXT_TYPES[i])) 676 { 677 return true; 678 } 679 } 680 681 // If we get this far, there were no matches. 682 return false; 683 } 684 }

This page was automatically generated by Maven