001package csheets.ext.database.core;
002
003/**
004 * A factory of database connection adapters
005 * @author João Carreira
006 */
007public class DBConnectionFactory 
008{
009    private static DBConnectionFactory uniqueInstance = null;
010    
011    /**
012     * private constructor (as required in the singleton pattern)
013     */
014    private DBConnectionFactory()
015    {
016        
017    }
018    
019    /**
020     * getInstance
021     * @return DBConnectionFactory singleton
022     */
023    public static DBConnectionFactory getInstance()
024    {
025        if(uniqueInstance == null)
026        {
027            uniqueInstance = new DBConnectionFactory();
028        }
029        return uniqueInstance;
030    }
031    
032    public DBConnectionStrategy getDBTechnology(String dbName) throws Exception
033    {
034        //return (DBConnectionStrategy) Class.forName(adapteeName).newInstance();
035        if(dbName.startsWith("HSQL"))
036        {
037            return new HsqlDBConnection();
038        }
039        else if (dbName.startsWith("Derby"))
040        {
041            return new DerbyConnection();
042        }else{
043                return null;
044        }
045    }
046}