sascha@305: package de.intevation.artifactdatabase; sascha@305: sascha@305: import de.intevation.artifacts.common.utils.Config; sascha@305: sascha@305: import de.intevation.artifactdatabase.db.SQL; sascha@305: import de.intevation.artifactdatabase.db.DBConnection; sascha@305: sascha@305: public class DBConfig sascha@305: { sascha@305: /** sascha@305: * XPath to access the database driver within the global configuration. sascha@305: */ sascha@305: public static final String DB_DRIVER = sascha@305: "/artifact-database/database/driver/text()"; sascha@305: /** sascha@305: * XPath to access the database URL within the global configuration. sascha@305: */ sascha@305: public static final String DB_URL = sascha@305: "/artifact-database/database/url/text()"; sascha@305: /** sascha@305: * XPath to access the database use within the global configuration. sascha@305: */ sascha@305: public static final String DB_USER = sascha@305: "/artifact-database/database/user/text()"; sascha@305: /** sascha@305: * XPath to access the database password within the global configuration. sascha@305: */ sascha@305: public static final String DB_PASSWORD = sascha@305: "/artifact-database/database/password/text()"; sascha@305: sascha@305: private static DBConfig instance; sascha@305: sascha@305: private DBConnection dbConnection; sascha@305: private SQL sql; sascha@305: sascha@305: private DBConfig() { sascha@305: } sascha@305: sascha@305: private DBConfig(DBConnection dbConnection, SQL sql) { sascha@305: this.dbConnection = dbConnection; sascha@305: this.sql = sql; sascha@305: } sascha@305: sascha@305: public static synchronized DBConfig getInstance() { sascha@305: if (instance == null) { sascha@305: instance = createInstance(); sascha@305: } sascha@305: return instance; sascha@305: } sascha@305: sascha@305: public SQL getSQL() { sascha@305: return sql; sascha@305: } sascha@305: sascha@305: public DBConnection getDBConnection() { sascha@305: return dbConnection; sascha@305: } sascha@305: sascha@305: private static DBConfig createInstance() { sascha@305: sascha@305: String driver = Config.getStringXPath( sascha@305: DB_DRIVER, DBConnection.DEFAULT_DRIVER); sascha@305: sascha@305: String url = Config.getStringXPath( sascha@305: DB_URL, DBConnection.DEFAULT_URL); sascha@305: sascha@305: url = Config.replaceConfigDir(url); sascha@305: sascha@305: String user = Config.getStringXPath( sascha@305: DB_USER, DBConnection.DEFAULT_USER); sascha@305: sascha@305: String password = Config.getStringXPath( sascha@305: DB_PASSWORD, DBConnection.DEFAULT_PASSWORD); sascha@305: sascha@305: DBConnection dbConnection = new DBConnection( sascha@305: driver, url, user, password); sascha@305: sascha@305: SQL sql = new SQL(driver); sascha@305: sascha@305: return new DBConfig(dbConnection, sql); sascha@305: } sascha@305: } sascha@305: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :