Service proxy client and configuration schemes
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / config / Configuration.java
diff --git a/src/main/java/com/indexdata/pz2utils4jsf/config/Configuration.java b/src/main/java/com/indexdata/pz2utils4jsf/config/Configuration.java
new file mode 100644 (file)
index 0000000..adab4bb
--- /dev/null
@@ -0,0 +1,73 @@
+package com.indexdata.pz2utils4jsf.config;\r
+\r
+import java.io.Serializable;\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import com.indexdata.masterkey.config.MissingMandatoryParameterException;\r
+import com.indexdata.pz2utils4jsf.utils.Utils;\r
+\r
+public class Configuration implements Serializable {\r
+\r
+  private static final long serialVersionUID = -6801241975338182197L;\r
+  private static Logger logger = Logger.getLogger(Configuration.class);\r
+  Map<String,String> properties = new HashMap<String,String>();\r
+  \r
+  public Configuration () {\r
+    logger.debug(Utils.objectId(this) + " being constructed with no argument");    \r
+  }\r
+  \r
+  public Configuration(Map<String,String> parameters) {\r
+    addAll(parameters);\r
+  }\r
+  \r
+  public void addAll(Map<String,String> parameters) {\r
+    for (String key : parameters.keySet()) {\r
+      properties.put(key, parameters.get(key));\r
+    }    \r
+  }\r
+  \r
+  public void addAll(Map<String,String> defaults, Map<String,String> parameters) {\r
+    for (String key : defaults.keySet()) {\r
+      properties.put(key, defaults.get(key));\r
+    }    \r
+    for (String key : parameters.keySet()) {\r
+      properties.put(key, parameters.get(key));\r
+    }    \r
+  }\r
+          \r
+  public String get(String key) {\r
+    return properties.get(key);    \r
+  }\r
+  \r
+  public void set(String key, String value) {\r
+    properties.put(key, value);\r
+  }\r
+    \r
+  public String get(String key, String defaultValue) {\r
+    if (properties.containsKey(key)) {\r
+      return properties.get(key);\r
+    } else {\r
+      return defaultValue;\r
+    }\r
+  }\r
+  \r
+  public String getMandatory(String key) throws MissingMandatoryParameterException {\r
+    if (properties.containsKey(key)) {\r
+      return properties.get(key);\r
+    } \r
+    throw new MissingMandatoryParameterException("Missing mandatory parameter: " + key);     \r
+  }\r
+\r
+  public String getConfigFilePath() {
+    return get("configfilepath","nopathgiven");\r
+  }\r
+  \r
+  public Map<String,String> getConfigMap() {\r
+    return properties;\r
+  }\r
+  \r
+\r
+}\r