1 package net.sourceforge.phpdt.sql.adapters;
3 import java.util.ArrayList;
5 import net.sourceforge.phpdt.sql.Messages;
9 * Basically this Factory is a Singleton that is used to return the proper adapter
11 public class AdapterFactory {
12 public static final String GENERIC = "GENERIC"; //$NON-NLS-1$
13 public static final String ORACLE = "ORACLE"; //$NON-NLS-1$
14 public static final String POSTGRES = "POSTGRES"; //$NON-NLS-1$
15 public static final String MYSQL = "MYSQL"; //$NON-NLS-1$
16 public static final String DB2 = "DB2"; //$NON-NLS-1$
17 public static final String DB2AS400 = "DB2AS400"; //$NON-NLS-1$
18 public static final String ADABASD = "ADABASD"; //$NON-NLS-1$
19 public static final String INFORMIX = "INFORMIX"; //$NON-NLS-1$
20 public static final String REDBRICK = "REDBRICK"; //$NON-NLS-1$
22 private static AdapterFactory instance;
24 private ArrayList drivers;
26 private AdapterFactory() {
29 public static synchronized AdapterFactory getInstance() {
30 if (instance == null) {
31 instance = new AdapterFactory();
37 * Master list of supported drivers
39 private void loadDrivers() {
40 drivers = new ArrayList();
42 DriverInfo generic = new DriverInfo(GENERIC, Messages.getString("adapters.generic"), new GenericAdapter()); //$NON-NLS-1$
43 DriverInfo oracle = new DriverInfo(ORACLE, Messages.getString("adapters.oracle"), new OracleAdapter()); //$NON-NLS-1$
44 DriverInfo db2 = new DriverInfo(DB2, Messages.getString("adapters.db2"), new DB2Adapter()); //$NON-NLS-1$
45 DriverInfo db2as400 = new DriverInfo(DB2AS400, Messages.getString("adapters.db2as400"), new DB2AS400Adapter()); //$NON-NLS-1$
46 DriverInfo postgres = new DriverInfo(POSTGRES, Messages.getString("adapters.postgres"), new PostgresAdapter()); //$NON-NLS-1$
47 DriverInfo mysql = new DriverInfo(MYSQL, Messages.getString("adapters.mysql"), new MySQLAdapter()); //$NON-NLS-1$
48 DriverInfo adabasd = new DriverInfo(ADABASD, Messages.getString("adapters.adabasd"), new AdabasDAdapter()); //$NON-NLS-1$
49 DriverInfo informix = new DriverInfo(INFORMIX, Messages.getString("adapters.informix"), new GenericAdapter()); //$NON-NLS-1$
50 DriverInfo redbrick = new DriverInfo(REDBRICK, Messages.getString("adapters.redbrick"), new RedBrickAdapter()); //$NON-NLS-1$
55 drivers.add(db2as400);
56 drivers.add(postgres);
59 drivers.add(informix);
60 drivers.add(redbrick);
63 public synchronized DatabaseAdapter getAdapter(String type){
64 if (drivers == null) {
67 for (int i = 0; i < drivers.size(); i++) {
68 DriverInfo info = (DriverInfo) drivers.get(i);
69 if (type.equals(info.getDriverType())) {
70 return info.getAdapter();
73 // If its not a recognized driver, we return the generic one
74 for (int i = 0; i < drivers.size(); i++) {
75 DriverInfo info = (DriverInfo) drivers.get(i);
76 if (type.equals(GENERIC)) {
77 return info.getAdapter();
83 public synchronized DriverInfo[] getDriverList() {
84 DriverInfo[] driverList = new DriverInfo[drivers.size()];
85 for (int i = 0; i < drivers.size(); i++) {
86 DriverInfo info = (DriverInfo) drivers.get(i);