annotate gnv/src/main/java/de/intevation/gnv/propertiesreader/PropertiesReaderFactory.java @ 700:89ade245ca7a

Using unix line endings only. gnv/trunk@940 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 18 Apr 2010 09:27:11 +0000
parents 254f062e334b
children 28a0628b11b0
rev   line source
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 package de.intevation.gnv.propertiesreader;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 import java.util.Map;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5 import javax.servlet.ServletConfig;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7 import org.apache.log4j.Logger;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9 /**
684
57fa8019fbdc Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 683
diff changeset
10 * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a>
681
15ac78a91d1b Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 38
diff changeset
11 *
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12 */
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
13 public class PropertiesReaderFactory {
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
14
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
15 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
16 * the logger, used to log exceptions and additonaly information
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
17 */
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
18 private static Logger log = Logger.getLogger(PropertiesReaderFactory.class);
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
19
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
20 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
21 * The singleton Instance of this Factory.
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
22 */
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
23 private static PropertiesReaderFactory instance = null;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
25 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
26 * The ConnectionPool providing the Connections to the DatabaseBackends
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
27 */
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 private PropertiesReader propertiesReader = null;
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
29
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
30 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
31 * Constructor
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
32 */
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
33 private PropertiesReaderFactory() {
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
34 super();
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
35 }
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
36
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 * This Method provides an singleton Instance of this Class.
681
15ac78a91d1b Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 38
diff changeset
39 *
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 * @return an singleton Instance of this Class
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
41 */
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
42 public static PropertiesReaderFactory getInstance() {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
43 if (instance == null) {
7
fe6a64545552 Support for creating an Artifact integrated
Tim Englich <tim.englich@intevation.de>
parents: 3
diff changeset
44 instance = new PropertiesReaderFactory();
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
45 }
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
46 return instance;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 }
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
48
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 * Getting the ConnectionPool
681
15ac78a91d1b Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 38
diff changeset
51 *
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52 * @return the ConnectionPool
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
53 */
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
54 public PropertiesReader getPropertiesReader() {
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
55 return this.propertiesReader;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
56 }
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
57
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 * Getting the ConnectionPool
681
15ac78a91d1b Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 38
diff changeset
60 *
690
254f062e334b Added JavaDoc.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 684
diff changeset
61 * @param config The Config that should be read
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
62 */
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
63 public void initPropertiesReader(Object config) {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
64 if (config instanceof ServletConfig) {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
65 this.propertiesReader = new ServletPropertiesReader(
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
66 (ServletConfig) config);
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
67 } else if (config instanceof Map) {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
68 this.propertiesReader = new MapPropertiesReader(
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
69 (Map<String, String>) config);
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
70 } else {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
71 log.error("No PropertiesReader for Instance "
38
fccf90761825 Format Code to max 80 Chars per Row better Formatter choosen
Tim Englich <tim.englich@intevation.de>
parents: 36
diff changeset
72 + config.getClass().getName());
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
73 }
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
74
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
75 }
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76 }
700
89ade245ca7a Using unix line endings only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 690
diff changeset
77 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org