1 package com.indexdata.mkjsf.config;
\r
3 import java.io.Serializable;
\r
4 import java.util.ArrayList;
\r
5 import java.util.HashMap;
\r
6 import java.util.List;
\r
7 import java.util.Map;
\r
8 import java.util.StringTokenizer;
\r
10 import org.apache.log4j.Logger;
\r
12 import com.indexdata.masterkey.config.MissingMandatoryParameterException;
\r
13 import com.indexdata.mkjsf.utils.Utils;
\r
16 * Represents a configuration as a set of key-value pairs
\r
18 * @author Niels Erik
\r
21 public class Configuration implements Serializable {
\r
23 private static final long serialVersionUID = -6801241975338182197L;
\r
24 private static Logger logger = Logger.getLogger(Configuration.class);
\r
25 Map<String,String> properties = new HashMap<String,String>();
\r
27 public Configuration () {
\r
28 logger.debug(Utils.objectId(this) + " being constructed with no argument");
\r
31 public Configuration(Map<String,String> parameters) {
\r
35 public void addAll(Map<String,String> parameters) {
\r
36 for (String key : parameters.keySet()) {
\r
37 properties.put(key, parameters.get(key));
\r
41 public void addAll(Map<String,String> defaults, Map<String,String> parameters) {
\r
42 for (String key : defaults.keySet()) {
\r
43 properties.put(key, defaults.get(key));
\r
45 for (String key : parameters.keySet()) {
\r
46 properties.put(key, parameters.get(key));
\r
50 public String get(String key) {
\r
51 return properties.get(key);
\r
54 public void set(String key, String value) {
\r
55 properties.put(key, value);
\r
58 public String get(String key, String defaultValue) {
\r
59 if (properties.containsKey(key)) {
\r
60 return properties.get(key);
\r
62 return defaultValue;
\r
66 public String getMandatory(String key) throws MissingMandatoryParameterException {
\r
67 if (properties.containsKey(key)) {
\r
68 return properties.get(key);
\r
70 throw new MissingMandatoryParameterException("Missing mandatory parameter: " + key);
\r
73 public List<String> getMultiProperty(String key, String separator) {
\r
74 List<String> props = new ArrayList<String>();
\r
75 String prop = get(key);
\r
76 if (prop != null) {
\r
77 StringTokenizer tokenizer = new StringTokenizer(prop,separator);
\r
78 while (tokenizer.hasMoreElements()) {
\r
79 props.add(tokenizer.nextToken());
\r
86 public String getConfigFilePath() {
87 return get("configpath","nopathgiven");
\r
90 public Map<String,String> getConfigMap() {
\r