Service proxy client and configuration schemes
[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 public class Configuration implements Serializable {\r
13 \r
14   private static final long serialVersionUID = -6801241975338182197L;\r
15   private static Logger logger = Logger.getLogger(Configuration.class);\r
16   Map<String,String> properties = new HashMap<String,String>();\r
17   \r
18   public Configuration () {\r
19     logger.debug(Utils.objectId(this) + " being constructed with no argument");    \r
20   }\r
21   \r
22   public Configuration(Map<String,String> parameters) {\r
23     addAll(parameters);\r
24   }\r
25   \r
26   public void addAll(Map<String,String> parameters) {\r
27     for (String key : parameters.keySet()) {\r
28       properties.put(key, parameters.get(key));\r
29     }    \r
30   }\r
31   \r
32   public void addAll(Map<String,String> defaults, Map<String,String> parameters) {\r
33     for (String key : defaults.keySet()) {\r
34       properties.put(key, defaults.get(key));\r
35     }    \r
36     for (String key : parameters.keySet()) {\r
37       properties.put(key, parameters.get(key));\r
38     }    \r
39   }\r
40           \r
41   public String get(String key) {\r
42     return properties.get(key);    \r
43   }\r
44   \r
45   public void set(String key, String value) {\r
46     properties.put(key, value);\r
47   }\r
48     \r
49   public String get(String key, String defaultValue) {\r
50     if (properties.containsKey(key)) {\r
51       return properties.get(key);\r
52     } else {\r
53       return defaultValue;\r
54     }\r
55   }\r
56   \r
57   public String getMandatory(String key) throws MissingMandatoryParameterException {\r
58     if (properties.containsKey(key)) {\r
59       return properties.get(key);\r
60     } \r
61     throw new MissingMandatoryParameterException("Missing mandatory parameter: " + key);     \r
62   }\r
63 \r
64   public String getConfigFilePath() {
65     return get("configfilepath","nopathgiven");\r
66   }\r
67   \r
68   public Map<String,String> getConfigMap() {\r
69     return properties;\r
70   }\r
71   \r
72 \r
73 }\r