--- /dev/null
+package com.indexdata.mkjsf.config;\r
+\r
+import java.io.Serializable;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.StringTokenizer;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import com.indexdata.masterkey.config.MissingMandatoryParameterException;\r
+import com.indexdata.mkjsf.utils.Utils;\r
+\r
+/**\r
+ * Represents a configuration as a set of key-value pairs\r
+ * \r
+ * @author Niels Erik\r
+ *\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 List<String> getMultiProperty(String key, String separator) { \r
+ List<String> props = new ArrayList<String>();\r
+ String prop = get(key);\r
+ if (prop != null) { \r
+ StringTokenizer tokenizer = new StringTokenizer(prop,separator);\r
+ while (tokenizer.hasMoreElements()) {\r
+ props.add(tokenizer.nextToken());\r
+ } \r
+ }\r
+ return props;\r
+ }\r
+ \r
+\r
+ public String getConfigFilePath() {
+ return get("configpath","nopathgiven");\r
+ }\r
+ \r
+ public Map<String,String> getConfigMap() {\r
+ return properties;\r
+ }\r
+ \r
+ \r
+ \r
+\r
+}\r