1) Added missing strings for italic, underline and strike through.
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.sql / src / net / sourceforge / phpdt / sql / adapters / AdapterFactory.java
1 package net.sourceforge.phpdt.sql.adapters;
2
3 import java.util.ArrayList;
4
5 import net.sourceforge.phpdt.sql.Messages;
6
7 /**
8  * @author root
9  * Basically this Factory is a Singleton that is used to return the proper adapter
10  */
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$
21
22     private static AdapterFactory instance;
23     
24     private ArrayList drivers;
25     
26     private AdapterFactory() {
27         loadDrivers();
28     }
29     public static synchronized AdapterFactory getInstance() {
30         if (instance == null) {
31                 instance = new AdapterFactory();
32         }
33         return instance;
34     }
35
36     /**
37      * Master list of supported drivers
38      */
39     private void loadDrivers() {
40         drivers = new ArrayList();
41
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$
51
52         drivers.add(generic);
53         drivers.add(oracle);
54         drivers.add(db2);
55         drivers.add(db2as400);
56         drivers.add(postgres);
57         drivers.add(mysql);
58                 drivers.add(adabasd);
59         drivers.add(informix);
60                 drivers.add(redbrick);
61     }
62     
63     public synchronized DatabaseAdapter getAdapter(String type){
64         if (drivers == null) {
65                 loadDrivers();
66         }
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();
71                 }
72         }
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();
78                         }
79                 }
80                 return null;
81     }
82     
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);
87                 driverList[i] = info;
88         }
89         return driverList;
90     }
91 }