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}