package org.insightech.er.db; import java.util.ArrayList; import java.util.List; import org.insightech.er.ResourceString; import org.insightech.er.db.impl.access.AccessDBManager; import org.insightech.er.db.impl.db2.DB2DBManager; import org.insightech.er.db.impl.hsqldb.HSQLDBDBManager; import org.insightech.er.db.impl.mysql.MySQLDBManager; import org.insightech.er.db.impl.oracle.OracleDBManager; import org.insightech.er.db.impl.postgres.PostgresDBManager; import org.insightech.er.db.impl.sqlite.SQLiteDBManager; import org.insightech.er.db.impl.sqlserver.SqlServerDBManager; import org.insightech.er.db.impl.sqlserver2008.SqlServer2008DBManager; import org.insightech.er.db.impl.standard_sql.StandardSQLDBManager; import org.insightech.er.editor.model.ERDiagram; public class DBManagerFactory { private static final List<DBManager> DB_LIST = new ArrayList<DBManager>(); private static final List<String> DB_ID_LIST = new ArrayList<String>(); static { new StandardSQLDBManager(); new DB2DBManager(); new HSQLDBDBManager(); new AccessDBManager(); new MySQLDBManager(); new OracleDBManager(); new PostgresDBManager(); new SQLiteDBManager(); new SqlServerDBManager(); new SqlServer2008DBManager(); } static void addDB(DBManager manager) { DB_LIST.add(manager); DB_ID_LIST.add(manager.getId()); } public static DBManager getDBManager(String database) { for (DBManager manager : DB_LIST) { if (manager.getId().equals(database)) { return manager; } } throw new IllegalArgumentException( ResourceString .getResourceString("error.database.is.not.supported") + database); } public static DBManager getDBManager(ERDiagram diagram) { return getDBManager(diagram.getDatabase()); } public static List<String> getAllDBList() { return DB_ID_LIST; } }