annotate gnv/src/main/java/de/intevation/gnv/propertiesreader/PropertiesReaderFactory.java @ 3:d7b4a77ba892

Infrastructur for Providing Applicationsettings gnv/trunk@72 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Fri, 11 Sep 2009 15:19:52 +0000
parents
children fe6a64545552
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>
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 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
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 logger, used to log exceptions and additonaly information
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 Logger log = Logger.getLogger(PropertiesReaderFactory.class);
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 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
27 * The singleton Instance of this Factory.
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 private static PropertiesReaderFactory instance = null;
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 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
32 * The ConnectionPool providing the Connections to the DatabaseBackends
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 private PropertiesReader propertiesReader = null;
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 * Constructor
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 private PropertiesReaderFactory() {
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39 super();
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
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
42 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 * This Method provides an singleton Instance of this Class.
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
44 * @return an singleton Instance of this Class
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 public static PropertiesReaderFactory getInstance(){
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 if (instance == null){
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 instance = null;
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 return instance;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 }
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
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
54 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
55 * Getting the ConnectionPool
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
56 * @return the ConnectionPool
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
57 */
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
58 public PropertiesReader getPropertiesReader(){
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
59 return this.propertiesReader;
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
60 }
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 /**
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
63 * Getting the ConnectionPool
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
64 * @param config The Config that should be read
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
65 */
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
66 public void initPropertiesReader(Object config){
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
67 if (config instanceof ServletConfig){
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
68 this.propertiesReader = new ServletPropertiesReader((ServletConfig)config);
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
69 }else if (config instanceof Map){
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
70 this.propertiesReader = new MapPropertiesReader((Map<String, String>)config);
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
71 }else{
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
72 log.error("No PropertiesReader for Instance "+ config.getClass().getName());
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
73 }
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
74
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
d7b4a77ba892 Infrastructur for Providing Applicationsettings
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77 }

http://dive4elements.wald.intevation.org