Coverage report

  %line %branch
org.apache.torque.adapter.DBFactory
88% 
100% 

 1  
 package org.apache.torque.adapter;
 2  
 
 3  
 /*
 4  
  * Licensed to the Apache Software Foundation (ASF) under one
 5  
  * or more contributor license agreements.  See the NOTICE file
 6  
  * distributed with this work for additional information
 7  
  * regarding copyright ownership.  The ASF licenses this file
 8  
  * to you under the Apache License, Version 2.0 (the
 9  
  * "License"); you may not use this file except in compliance
 10  
  * with the License.  You may obtain a copy of the License at
 11  
  *
 12  
  *   http://www.apache.org/licenses/LICENSE-2.0
 13  
  *
 14  
  * Unless required by applicable law or agreed to in writing,
 15  
  * software distributed under the License is distributed on an
 16  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 17  
  * KIND, either express or implied.  See the License for the
 18  
  * specific language governing permissions and limitations
 19  
  * under the License.
 20  
  */
 21  
 
 22  
 import java.util.HashMap;
 23  
 import java.util.Map;
 24  
 
 25  
 /**
 26  
  * This class creates different {@link org.apache.torque.adapter.DB}
 27  
  * objects based on specified JDBC driver name.
 28  
  *
 29  
  * @author <a href="mailto:frank.kim@clearink.com">Frank Y. Kim</a>
 30  
  * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>
 31  
  * @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a>
 32  
  * @author <a href="mailto:ralf@reswi.ruhr.de">Ralf Stranzenbach</a>
 33  
  * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
 34  
  * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
 35  
  * @version $Id: DBFactory.java 476550 2006-11-18 16:08:37Z tfischer $
 36  
  */
 37  
 public class DBFactory
 38  
 {
 39  
     /**
 40  
      * JDBC driver to Torque Adapter map.
 41  
      */
 42  80
     private static Map adapters = new HashMap(40);
 43  
 
 44  
     /**
 45  
      * Initialize the JDBC driver to Torque Adapter map.
 46  
      */
 47  
     static
 48  
     {
 49  1680
         adapters.put("com.ibm.as400.access.AS400JDBCDriver", DBDB2400.class);
 50  80
         adapters.put("COM.ibm.db2.jdbc.app.DB2Driver", DBDB2App.class);
 51  80
         adapters.put("COM.ibm.db2.jdbc.net.DB2Driver", DBDB2Net.class);
 52  80
         adapters.put("COM.cloudscape.core.JDBCDriver", DBCloudscape.class);
 53  80
         adapters.put("org.firebirdsql.jdbc.FBDriver", DBFirebird.class);
 54  80
         adapters.put("org.hsql.jdbcDriver", DBHypersonicSQL.class);
 55  80
         adapters.put("org.hsqldb.jdbcDriver", DBHypersonicSQL.class);
 56  80
         adapters.put("interbase.interclient.Driver", DBInterbase.class);
 57  80
         adapters.put("org.enhydra.instantdb.jdbc.idbDriver", DBInstantDB.class);
 58  80
         adapters.put("com.microsoft.jdbc.sqlserver.SQLServerDriver",
 59  
             DBMSSQL.class);
 60  80
         adapters.put("com.jnetdirect.jsql.JSQLDriver", DBMSSQL.class);
 61  80
         adapters.put("org.gjt.mm.mysql.Driver", DBMM.class);
 62  80
         adapters.put("oracle.jdbc.driver.OracleDriver", DBOracle.class);
 63  80
         adapters.put("org.postgresql.Driver", DBPostgres.class);
 64  80
         adapters.put("com.sap.dbtech.jdbc.DriverSapDB", DBSapDB.class);
 65  80
         adapters.put("com.sybase.jdbc.SybDriver", DBSybase.class);
 66  80
         adapters.put("com.sybase.jdbc2.jdbc.SybDriver", DBSybase.class);
 67  80
         adapters.put("weblogic.jdbc.pool.Driver", DBWeblogic.class);
 68  80
         adapters.put("org.axiondb.jdbc.AxionDriver", DBAxion.class);
 69  80
         adapters.put("com.informix.jdbc.IfxDriver", DBInformix.class);
 70  80
         adapters.put("sun.jdbc.odbc.JdbcOdbcDriver", DBOdbc.class);
 71  
 
 72  80
         adapters.put("com.ibm.db2.jcc.DB2Driver", DBDerby.class);
 73  80
         adapters.put("org.apache.derby.jdbc.EmbeddedDriver", DBDerby.class);
 74  
 
 75  
 
 76  
         // add some short names to be used when drivers are not used
 77  80
         adapters.put("as400", DBDB2400.class);
 78  80
         adapters.put("db2app", DBDB2App.class);
 79  80
         adapters.put("db2net", DBDB2Net.class);
 80  80
         adapters.put("cloudscape", DBCloudscape.class);
 81  80
         adapters.put("firebird", DBFirebird.class);
 82  80
         adapters.put("hypersonic", DBHypersonicSQL.class);
 83  80
         adapters.put("interbase", DBInterbase.class);
 84  80
         adapters.put("instantdb", DBInstantDB.class);
 85  80
         adapters.put("mssql", DBMSSQL.class);
 86  80
         adapters.put("mysql", DBMM.class);
 87  80
         adapters.put("oracle", DBOracle.class);
 88  80
         adapters.put("postgresql", DBPostgres.class);
 89  80
         adapters.put("sapdb", DBSapDB.class);
 90  80
         adapters.put("sybase", DBSybase.class);
 91  80
         adapters.put("weblogic", DBWeblogic.class);
 92  80
         adapters.put("axion", DBAxion.class);
 93  80
         adapters.put("informix", DBInformix.class);
 94  80
         adapters.put("odbc", DBOdbc.class);
 95  80
         adapters.put("msaccess", DBOdbc.class);
 96  
 
 97  80
         adapters.put("derby", DBDerby.class);
 98  
 
 99  80
         adapters.put("", DBNone.class);
 100  80
     }
 101  
 
 102  
     /**
 103  
      * Private constructor to prevent instantiation.
 104  
      *
 105  
      * Class contains only static methods, so no instances are needed.
 106  
      */
 107  
     private DBFactory()
 108  0
     {
 109  0
     }
 110  
 
 111  
     /**
 112  
      * Creates a new instance of the Torque database adapter associated
 113  
      * with the specified JDBC driver or adapter key.
 114  
      *
 115  
      * @param key The fully-qualified name of the JDBC driver
 116  
      *        or a shorter form adapter key.
 117  
      * @return An instance of a Torque database adapter, or null if
 118  
      *         no adapter exists for the given key.
 119  
      * @throws InstantiationException throws if the adapter could not be
 120  
      *         instantiated
 121  
      */
 122  
     public static DB create(String key)
 123  
         throws InstantiationException
 124  
     {
 125  160
         Class adapterClass = (Class) adapters.get(key);
 126  
 
 127  160
         if (adapterClass == null)
 128  
         {
 129  64
             return null;
 130  
         }
 131  
 
 132  
         try
 133  
         {
 134  96
             DB adapter = (DB) adapterClass.newInstance();
 135  
             // adapter.setJDBCDriver(driver);
 136  96
             return adapter;
 137  
         }
 138  0
         catch (IllegalAccessException e)
 139  
         {
 140  0
             throw new InstantiationException(
 141  
                 "Could not instantiate adapter for key : "
 142  
                 + key
 143  
                 + ": Assure that adapter classes are in your classpath");
 144  
         }
 145  
     }
 146  
 
 147  
     /**
 148  
      * Creates a new instance of the Torque database adapter associated
 149  
      * with the specified JDBC driver or adapter key and the class defined.
 150  
      *
 151  
      * @param key The fully-qualified name of the JDBC driver
 152  
      *        or a shorter form adapter key.
 153  
      * @param className The fully qualified name of the adapter class
 154  
      * @return An instance of a Torque database adapter.
 155  
      * @throws InstantiationException throws if the adapter could not be
 156  
      *         instantiated
 157  
      */
 158  
     public static DB create(String key, String className)
 159  
         throws InstantiationException
 160  
     {
 161  
         Class adapterClass;
 162  
 
 163  
         try
 164  
         {
 165  64
             adapterClass = (Class) Class.forName(className);
 166  
         }
 167  0
         catch (ClassNotFoundException e)
 168  
         {
 169  0
             throw new InstantiationException(
 170  
                     "Could not find adapter "
 171  
                     + className
 172  
                     + " for key "
 173  
                     + key
 174  
                     + ": Check your configuration file");
 175  64
         }
 176  
 
 177  
         try
 178  
         {
 179  64
             DB adapter = (DB) adapterClass.newInstance();
 180  64
             adapters.put(key, adapterClass);
 181  
             // adapter.setJDBCDriver(driver);
 182  64
             return adapter;
 183  
         }
 184  0
         catch (IllegalAccessException e)
 185  
         {
 186  0
             throw new InstantiationException(
 187  
                 "Could not instantiate adapter for key: "
 188  
                 + key
 189  
                 + ": Assure that adapter classes are in your classpath");
 190  
         }
 191  
     }
 192  
 }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.