annotate gnv/src/main/java/de/intevation/gnv/propertiesreader/PropertiesReaderFactory.java @ 683:d49e8695786c

Ordered imports. Removed needless imports. Removed empty headers. gnv/trunk@855 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 29 Mar 2010 09:10:25 +0000
parents 15ac78a91d1b
children 57fa8019fbdc
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 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10 * @author Tim Englich <tim.englich@intevation.de>
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 *
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
61 * @param config
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
62 * The Config that should be read
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
63 */
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
64 public void initPropertiesReader(Object config) {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
65 if (config instanceof ServletConfig) {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
66 this.propertiesReader = new ServletPropertiesReader(
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
67 (ServletConfig) config);
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
68 } else if (config instanceof Map) {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
69 this.propertiesReader = new MapPropertiesReader(
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
70 (Map<String, String>) config);
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
71 } else {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
72 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
73 + config.getClass().getName());
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74 }
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
75
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
76 }
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
78 }

http://dive4elements.wald.intevation.org