annotate gnv/src/main/java/de/intevation/gnv/propertiesreader/PropertiesReaderFactory.java @ 36:ad381cc47217

Format Code to max 80 Chars per Row gnv/trunk@172 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 02 Oct 2009 08:54:13 +0000
parents fe6a64545552
children fccf90761825
rev   line source
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /**
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 */
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 package de.intevation.gnv.propertiesreader;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 import java.util.Map;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8 import javax.servlet.ServletConfig;
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 import org.apache.log4j.Logger;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
11
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 * @author Tim Englich <tim.englich@intevation.de>
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
14 *
3
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 public class PropertiesReaderFactory {
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 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
19 * the logger, used to log exceptions and additonaly information
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 private static Logger log = Logger.getLogger(PropertiesReaderFactory.class);
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 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24 * The singleton Instance of this Factory.
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 private static PropertiesReaderFactory instance = null;
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 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
29 * The ConnectionPool providing the Connections to the DatabaseBackends
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 private PropertiesReader propertiesReader = null;
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
32
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
33 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
34 * Constructor
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 private PropertiesReaderFactory() {
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 super();
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
38 }
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
41 * This Method provides an singleton Instance of this Class.
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
42 *
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 * @return an singleton Instance of this Class
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 */
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
45 public static PropertiesReaderFactory getInstance() {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
46 if (instance == null) {
7
fe6a64545552 Support for creating an Artifact integrated
Tim Englich <tim.englich@intevation.de>
parents: 3
diff changeset
47 instance = new PropertiesReaderFactory();
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 }
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 return instance;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 }
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
51
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
53 * Getting the ConnectionPool
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
54 *
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
55 * @return the ConnectionPool
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 public PropertiesReader getPropertiesReader() {
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 return this.propertiesReader;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 }
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
60
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
61 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
62 * Getting the ConnectionPool
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
63 *
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
64 * @param config
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
65 * The Config that should be read
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
66 */
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
67 public void initPropertiesReader(Object config) {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
68 if (config instanceof ServletConfig) {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
69 this.propertiesReader = new ServletPropertiesReader(
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
70 (ServletConfig) config);
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
71 } else if (config instanceof Map) {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
72 this.propertiesReader = new MapPropertiesReader(
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
73 (Map<String, String>) config);
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
74 } else {
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
75 log.error("No PropertiesReader for Instance "
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
76 + config.getClass().getName());
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77 }
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 7
diff changeset
78
3
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
79 }
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
80
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
81 }

http://dive4elements.wald.intevation.org