You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2005/12/14 19:29:08 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/metadata JdbcTypesHelper.java

brj         2005/12/14 10:29:08

  Modified:    src/java/org/apache/ojb/broker/metadata Tag: OJB_1_0_RELEASE
                        JdbcTypesHelper.java
  Log:
  setJdbcType-Methods are public to allow users to add their own types
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.2.2   +67 -60    db-ojb/src/java/org/apache/ojb/broker/metadata/JdbcTypesHelper.java
  
  Index: JdbcTypesHelper.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/metadata/JdbcTypesHelper.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- JdbcTypesHelper.java	10 Mar 2005 17:55:30 -0000	1.1.2.1
  +++ JdbcTypesHelper.java	14 Dec 2005 18:29:07 -0000	1.1.2.2
  @@ -52,73 +52,58 @@
       private static Map jdbcObjectTypesFromType = new HashMap();
       private static Map jdbcObjectTypesFromName = new HashMap();
   
  -    /*
  -    Hold out all JdbcType in a static maps
  -    */
  +    /**
  +     * Hold out all JdbcType in a static maps
  +     */
       static
       {
  -        jdbcObjectTypesFromType.put(new Integer(Types.ARRAY), new T_Array());
  -        jdbcObjectTypesFromType.put(new Integer(Types.BIGINT), new T_BigInt());
  -        jdbcObjectTypesFromType.put(new Integer(Types.BINARY), new T_Binary());
  -        jdbcObjectTypesFromType.put(new Integer(Types.BIT), new T_Bit());
  -        jdbcObjectTypesFromType.put(new Integer(Types.BLOB), new T_Blob());
  -        jdbcObjectTypesFromType.put(new Integer(Types.CHAR), new T_Char());
  -        jdbcObjectTypesFromType.put(new Integer(Types.CLOB), new T_Clob());
  -        jdbcObjectTypesFromType.put(new Integer(Types.DATE), new T_Date());
  -        jdbcObjectTypesFromType.put(new Integer(Types.DECIMAL), new T_Decimal());
  -        jdbcObjectTypesFromType.put(new Integer(Types.DOUBLE), new T_Double());
  -        jdbcObjectTypesFromType.put(new Integer(Types.FLOAT), new T_Float());
  -        jdbcObjectTypesFromType.put(new Integer(Types.INTEGER), new T_Integer());
  -        jdbcObjectTypesFromType.put(new Integer(Types.LONGVARBINARY), new T_LongVarBinary());
  -        jdbcObjectTypesFromType.put(new Integer(Types.LONGVARCHAR), new T_LongVarChar());
  -        jdbcObjectTypesFromType.put(new Integer(Types.NUMERIC), new T_Numeric());
  -        jdbcObjectTypesFromType.put(new Integer(Types.REAL), new T_Real());
  -        jdbcObjectTypesFromType.put(new Integer(Types.REF), new T_Ref());
  -        jdbcObjectTypesFromType.put(new Integer(Types.SMALLINT), new T_SmallInt());
  -        jdbcObjectTypesFromType.put(new Integer(Types.STRUCT), new T_Struct());
  -        jdbcObjectTypesFromType.put(new Integer(Types.TIME), new T_Time());
  -        jdbcObjectTypesFromType.put(new Integer(Types.TIMESTAMP), new T_Timestamp());
  -        jdbcObjectTypesFromType.put(new Integer(Types.TINYINT), new T_TinyInt());
  -        jdbcObjectTypesFromType.put(new Integer(Types.VARBINARY), new T_VarBinary());
  -        jdbcObjectTypesFromType.put(new Integer(Types.VARCHAR), new T_Varchar());
  -//#ifdef JDBC30
  -        jdbcObjectTypesFromType.put(new Integer(Types.BOOLEAN), new T_Boolean());
  -        jdbcObjectTypesFromType.put(new Integer(Types.DATALINK), new T_Datalink());
  -//#endif
  -
  -
  -        jdbcObjectTypesFromName.put("array", jdbcObjectTypesFromType.get(new Integer(Types.ARRAY)));
  -        jdbcObjectTypesFromName.put("bigint", jdbcObjectTypesFromType.get(new Integer(Types.BIGINT)));
  -        jdbcObjectTypesFromName.put("binary", jdbcObjectTypesFromType.get(new Integer(Types.BINARY)));
  -        jdbcObjectTypesFromName.put("bit", jdbcObjectTypesFromType.get(new Integer(Types.BIT)));
  -        jdbcObjectTypesFromName.put("blob", jdbcObjectTypesFromType.get(new Integer(Types.BLOB)));
  -        jdbcObjectTypesFromName.put("char", jdbcObjectTypesFromType.get(new Integer(Types.CHAR)));
  -        jdbcObjectTypesFromName.put("clob", jdbcObjectTypesFromType.get(new Integer(Types.CLOB)));
  -        jdbcObjectTypesFromName.put("date", jdbcObjectTypesFromType.get(new Integer(Types.DATE)));
  -        jdbcObjectTypesFromName.put("decimal", jdbcObjectTypesFromType.get(new Integer(Types.DECIMAL)));
  -        jdbcObjectTypesFromName.put("double", jdbcObjectTypesFromType.get(new Integer(Types.DOUBLE)));
  -        jdbcObjectTypesFromName.put("float", jdbcObjectTypesFromType.get(new Integer(Types.FLOAT)));
  -        jdbcObjectTypesFromName.put("integer", jdbcObjectTypesFromType.get(new Integer(Types.INTEGER)));
  -        jdbcObjectTypesFromName.put("longvarbinary", jdbcObjectTypesFromType.get(new Integer(Types.LONGVARBINARY)));
  -        jdbcObjectTypesFromName.put("longvarchar", jdbcObjectTypesFromType.get(new Integer(Types.LONGVARCHAR)));
  -        jdbcObjectTypesFromName.put("numeric", jdbcObjectTypesFromType.get(new Integer(Types.NUMERIC)));
  -        jdbcObjectTypesFromName.put("real", jdbcObjectTypesFromType.get(new Integer(Types.REAL)));
  -        jdbcObjectTypesFromName.put("ref", jdbcObjectTypesFromType.get(new Integer(Types.REF)));
  -        jdbcObjectTypesFromName.put("smallint", jdbcObjectTypesFromType.get(new Integer(Types.SMALLINT)));
  -        jdbcObjectTypesFromName.put("struct", jdbcObjectTypesFromType.get(new Integer(Types.STRUCT)));
  -        jdbcObjectTypesFromName.put("time", jdbcObjectTypesFromType.get(new Integer(Types.TIME)));
  -        jdbcObjectTypesFromName.put("timestamp", jdbcObjectTypesFromType.get(new Integer(Types.TIMESTAMP)));
  -        jdbcObjectTypesFromName.put("tinyint", jdbcObjectTypesFromType.get(new Integer(Types.TINYINT)));
  -        jdbcObjectTypesFromName.put("varbinary", jdbcObjectTypesFromType.get(new Integer(Types.VARBINARY)));
  -        jdbcObjectTypesFromName.put("varchar", jdbcObjectTypesFromType.get(new Integer(Types.VARCHAR)));
  +        setJdbcType("array", Types.ARRAY, new T_Array());
  +        setJdbcType("bigint", Types.BIGINT, new T_BigInt());
  +        setJdbcType("binary", Types.BINARY, new T_Binary());
  +        setJdbcType("bit", Types.BIT, new T_Bit());
  +        setJdbcType("blob", Types.BLOB, new T_Blob());
  +        setJdbcType("char", Types.CHAR, new T_Char());
  +        setJdbcType("clob", Types.CLOB, new T_Clob());
  +        setJdbcType("date", Types.DATE, new T_Date());
  +        setJdbcType("decimal", Types.DECIMAL, new T_Decimal());
  +        setJdbcType("double", Types.DOUBLE, new T_Double());
  +        setJdbcType("float", Types.FLOAT, new T_Float());
  +        setJdbcType("integer", Types.INTEGER, new T_Integer());
  +        setJdbcType("longvarbinary", Types.LONGVARBINARY, new T_LongVarBinary());
  +        setJdbcType("longvarchar", Types.LONGVARCHAR, new T_LongVarChar());
  +        setJdbcType("numeric", Types.NUMERIC, new T_Numeric());
  +        setJdbcType("real", Types.REAL, new T_Real());
  +        setJdbcType("ref", Types.REF, new T_Ref());
  +        setJdbcType("smallint", Types.SMALLINT, new T_SmallInt());
  +        setJdbcType("struct", Types.STRUCT, new T_Struct());
  +        setJdbcType("time", Types.TIME, new T_Time());
  +        setJdbcType("timestamp", Types.TIMESTAMP, new T_Timestamp());
  +        setJdbcType("tinyint", Types.TINYINT, new T_TinyInt());
  +        setJdbcType("varbinary", Types.VARBINARY, new T_VarBinary());
  +        setJdbcType("varchar", Types.VARCHAR, new T_Varchar());
  +        
   //#ifdef JDBC30
  -        jdbcObjectTypesFromName.put("boolean", jdbcObjectTypesFromType.get(new Integer(Types.BOOLEAN)));
  -        jdbcObjectTypesFromName.put("datalink", jdbcObjectTypesFromType.get(new Integer(Types.DATALINK)));
  +        setJdbcType("boolean", Types.BOOLEAN, new T_Boolean());
  +        setJdbcType("datalink", Types.DATALINK, new T_Datalink());
   //#endif
  +        
       }
   
       public JdbcTypesHelper()
       {
  +        // default constructor
  +    }
  +
  +    /**
  +     * Set the {@link JdbcType} by name and index.
  +     * @param typeName Name of the type
  +     * @param typeIndex index of the type
  +     * @param type the type
  +     */
  +    public static void setJdbcType(String typeName, int typeIndex, JdbcType type)
  +    {
  +        setJdbcTypeByName(typeName, type);
  +        setJdbcTypeByTypesIndex(typeIndex, type);
       }
   
       /**
  @@ -130,6 +115,16 @@
       }
   
       /**
  +     * Set the {@link JdbcType} by index.
  +     * @param typeIndex index of the type
  +     * @param type the type
  +     */
  +    public static void setJdbcTypeByTypesIndex(int typeIndex, JdbcType type)
  +    {
  +        jdbcObjectTypesFromType.put(new Integer(typeIndex), type);
  +    }
  +
  +    /**
        * Lookup the {@link JdbcType} by name. If name was not found an exception
        * is thrown.
        */
  @@ -144,6 +139,16 @@
           }
           return result;
       }
  +    
  +    /**
  +     * Set the {@link JdbcType} by name.
  +     * @param typeName Name of the type
  +     * @param type the type
  +     */
  +    public static void setJdbcTypeByName(String typeName, JdbcType type)
  +    {
  +        jdbcObjectTypesFromName.put(typeName, type);
  +    }
   
       /**
        * Try to automatically assign a jdbc type for the given
  @@ -155,6 +160,7 @@
       public static JdbcType getJdbcTypeByReflection(String fieldType)
       {
           JdbcType result;
  +        
           if (fieldType.equalsIgnoreCase(Character.class.getName()) || fieldType.equalsIgnoreCase("char"))
               result = getJdbcTypeByName("char");
           else if (fieldType.equalsIgnoreCase(Short.class.getName()) || fieldType.equalsIgnoreCase("short"))
  @@ -244,6 +250,7 @@
           }
           catch (Exception ignore)
           {
  +            // ignore it
           }
           return statusName;
       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org