diff artifact-database/src/main/java/org/dive4elements/artifactdatabase/DBConfig.java @ 473:d0ac790a6c89 dive4elements-move

Moved directories to org.dive4elements
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 10:57:18 +0200
parents artifact-database/src/main/java/de/intevation/artifactdatabase/DBConfig.java@c40729bfe06d
children 415df0fc4fa1
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifact-database/src/main/java/org/dive4elements/artifactdatabase/DBConfig.java	Thu Apr 25 10:57:18 2013 +0200
@@ -0,0 +1,83 @@
+package de.intevation.artifactdatabase;
+
+import de.intevation.artifacts.common.utils.Config;
+
+import de.intevation.artifactdatabase.db.SQL;
+import de.intevation.artifactdatabase.db.DBConnection;
+
+public class DBConfig
+{
+    /**
+     * XPath to access the database driver within the global configuration.
+     */
+    public static final String DB_DRIVER =
+        "/artifact-database/database/driver/text()";
+    /**
+     * XPath to access the database URL within the global configuration.
+     */
+    public static final String DB_URL =
+        "/artifact-database/database/url/text()";
+    /**
+     * XPath to access the database use within the global configuration.
+     */
+    public static final String DB_USER =
+        "/artifact-database/database/user/text()";
+    /**
+     * XPath to access the database password within the global configuration.
+     */
+    public static final String DB_PASSWORD =
+        "/artifact-database/database/password/text()";
+
+    private static DBConfig instance;
+
+    private DBConnection dbConnection;
+    private SQL          sql;
+
+    private DBConfig() {
+    }
+
+    private DBConfig(DBConnection dbConnection, SQL sql) {
+        this.dbConnection = dbConnection;
+        this.sql          = sql;
+    }
+
+    public static synchronized DBConfig getInstance() {
+        if (instance == null) {
+            instance = createInstance();
+        }
+        return instance;
+    }
+
+    public SQL getSQL() {
+        return sql;
+    }
+
+    public DBConnection getDBConnection() {
+        return dbConnection;
+    }
+
+    private static DBConfig createInstance() {
+
+        String driver = Config.getStringXPath(
+            DB_DRIVER, DBConnection.DEFAULT_DRIVER);
+
+        String url = Config.getStringXPath(
+            DB_URL, DBConnection.DEFAULT_URL);
+
+        url = Config.replaceConfigDir(url);
+
+        String user = Config.getStringXPath(
+            DB_USER, DBConnection.DEFAULT_USER);
+
+        String password = Config.getStringXPath(
+            DB_PASSWORD, DBConnection.DEFAULT_PASSWORD);
+
+        DBConnection dbConnection = new DBConnection(
+            driver, url, user, password);
+
+        SQL sql = new SQL(driver);
+
+        return new DBConfig(dbConnection, sql);
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org