Mercurial > dive4elements > framework
comparison artifact-database/src/main/java/de/intevation/artifactdatabase/DBConfig.java @ 305:f33401ea2a6c
Artifact database: Refactorized the usage of dialect independent SQL to be reusable.
artifacts/trunk@2412 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 28 Jul 2011 10:19:35 +0000 |
parents | |
children | c40729bfe06d |
comparison
equal
deleted
inserted
replaced
304:40b64b4aafce | 305:f33401ea2a6c |
---|---|
1 package de.intevation.artifactdatabase; | |
2 | |
3 import de.intevation.artifacts.common.utils.Config; | |
4 | |
5 import de.intevation.artifactdatabase.db.SQL; | |
6 import de.intevation.artifactdatabase.db.DBConnection; | |
7 | |
8 public class DBConfig | |
9 { | |
10 /** | |
11 * XPath to access the database driver within the global configuration. | |
12 */ | |
13 public static final String DB_DRIVER = | |
14 "/artifact-database/database/driver/text()"; | |
15 /** | |
16 * XPath to access the database URL within the global configuration. | |
17 */ | |
18 public static final String DB_URL = | |
19 "/artifact-database/database/url/text()"; | |
20 /** | |
21 * XPath to access the database use within the global configuration. | |
22 */ | |
23 public static final String DB_USER = | |
24 "/artifact-database/database/user/text()"; | |
25 /** | |
26 * XPath to access the database password within the global configuration. | |
27 */ | |
28 public static final String DB_PASSWORD = | |
29 "/artifact-database/database/password/text()"; | |
30 | |
31 private static DBConfig instance; | |
32 | |
33 private DBConnection dbConnection; | |
34 private SQL sql; | |
35 | |
36 private DBConfig() { | |
37 } | |
38 | |
39 private DBConfig(DBConnection dbConnection, SQL sql) { | |
40 this.dbConnection = dbConnection; | |
41 this.sql = sql; | |
42 } | |
43 | |
44 public static synchronized DBConfig getInstance() { | |
45 if (instance == null) { | |
46 instance = createInstance(); | |
47 } | |
48 return instance; | |
49 } | |
50 | |
51 public SQL getSQL() { | |
52 return sql; | |
53 } | |
54 | |
55 public DBConnection getDBConnection() { | |
56 return dbConnection; | |
57 } | |
58 | |
59 private static DBConfig createInstance() { | |
60 | |
61 String driver = Config.getStringXPath( | |
62 DB_DRIVER, DBConnection.DEFAULT_DRIVER); | |
63 | |
64 String url = Config.getStringXPath( | |
65 DB_URL, DBConnection.DEFAULT_URL); | |
66 | |
67 url = Config.replaceConfigDir(url); | |
68 | |
69 String user = Config.getStringXPath( | |
70 DB_USER, DBConnection.DEFAULT_USER); | |
71 | |
72 String password = Config.getStringXPath( | |
73 DB_PASSWORD, DBConnection.DEFAULT_PASSWORD); | |
74 | |
75 DBConnection dbConnection = new DBConnection( | |
76 driver, url, user, password); | |
77 | |
78 SQL sql = new SQL(driver); | |
79 | |
80 return new DBConfig(dbConnection, sql); | |
81 } | |
82 } | |
83 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |