Renames project from pz2utils4jsf to mkjsf
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / config / Configuration.java
1 package com.indexdata.pz2utils4jsf.config;\r
2 \r
3 import java.io.Serializable;\r
4 import java.util.HashMap;\r
5 import java.util.Map;\r
6 \r
7 import org.apache.log4j.Logger;\r
8 \r
9 import com.indexdata.masterkey.config.MissingMandatoryParameterException;\r
10 import com.indexdata.pz2utils4jsf.utils.Utils;\r
11 \r
12 /**\r
13  * Represents a configuration as a set of key-value pairs\r
14  * \r
15  * @author Niels Erik\r
16  *\r
17  */\r
18 public class Configuration implements Serializable {\r
19 \r
20   private static final long serialVersionUID = -6801241975338182197L;\r
21   private static Logger logger = Logger.getLogger(Configuration.class);\r
22   Map<String,String> properties = new HashMap<String,String>();\r
23   \r
24   public Configuration () {\r
25     logger.debug(Utils.objectId(this) + " being constructed with no argument");    \r
26   }\r
27   \r
28   public Configuration(Map<String,String> parameters) {\r
29     addAll(parameters);\r
30   }\r
31   \r
32   public void addAll(Map<String,String> parameters) {\r
33     for (String key : parameters.keySet()) {\r
34       properties.put(key, parameters.get(key));\r
35     }    \r
36   }\r
37   \r
38   public void addAll(Map<String,String> defaults, Map<String,String> parameters) {\r
39     for (String key : defaults.keySet()) {\r
40       properties.put(key, defaults.get(key));\r
41     }    \r
42     for (String key : parameters.keySet()) {\r
43       properties.put(key, parameters.get(key));\r
44     }    \r
45   }\r
46           \r
47   public String get(String key) {\r
48     return properties.get(key);    \r
49   }\r
50   \r
51   public void set(String key, String value) {\r
52     properties.put(key, value);\r
53   }\r
54     \r
55   public String get(String key, String defaultValue) {\r
56     if (properties.containsKey(key)) {\r
57       return properties.get(key);\r
58     } else {\r
59       return defaultValue;\r
60     }\r
61   }\r
62   \r
63   public String getMandatory(String key) throws MissingMandatoryParameterException {\r
64     if (properties.containsKey(key)) {\r
65       return properties.get(key);\r
66     } \r
67     throw new MissingMandatoryParameterException("Missing mandatory parameter: " + key);     \r
68   }\r
69 \r
70   public String getConfigFilePath() {
71     return get("configpath","nopathgiven");\r
72   }\r
73   \r
74   public Map<String,String> getConfigMap() {\r
75     return properties;\r
76   }\r
77   \r
78 \r
79 }\r