Merge branch 'temp'
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / config / Pz2Config.java
1 package com.indexdata.pz2utils4jsf.config;\r
2 \r
3 import java.io.IOException;\r
4 import java.io.Serializable;\r
5 import java.util.HashMap;\r
6 import java.util.Map;\r
7 \r
8 import javax.enterprise.context.SessionScoped;\r
9 import javax.inject.Named;\r
10 \r
11 import org.apache.log4j.Logger;\r
12 \r
13 import com.indexdata.masterkey.config.MissingMandatoryParameterException;\r
14 import com.indexdata.masterkey.config.ModuleConfiguration;\r
15 import com.indexdata.masterkey.config.ModuleConfigurationGetter;\r
16 import com.indexdata.pz2utils4jsf.utils.Utils;\r
17 \r
18 @Named @SessionScoped\r
19 public class Pz2Config implements ModuleConfigurationGetter, Serializable {\r
20 \r
21   private static final long serialVersionUID = -6801241975338182197L;\r
22   private static Logger logger = Logger.getLogger(Pz2Config.class);\r
23   Map<String,String> properties = new HashMap<String,String>();\r
24   ModuleConfiguration moduleConfig = null;\r
25   \r
26   public Pz2Config () {\r
27     logger.debug(Utils.objectId(this) + " being constructed with no argument");\r
28     setDefaults();\r
29   }\r
30   \r
31   public Pz2Config (Map<String,String> parameters) {\r
32     //logger.debug(Utils.objectId(this) + " being constructed with parameter map argument");\r
33     setDefaults();\r
34     for (String key : parameters.keySet()) {\r
35       properties.put(key, parameters.get(key));\r
36     }\r
37   }\r
38   \r
39   public Pz2Config (ModuleConfiguration moduleConfig) throws IOException {\r
40     logger.debug(Utils.objectId(this) + " being constructed with moduleConfig argument.");\r
41     this.moduleConfig = moduleConfig;\r
42     for (String key : moduleConfig.getConfigMap().keySet()) {\r
43       properties.put(key, moduleConfig.getConfigParameter(key));\r
44     }\r
45   }\r
46   \r
47   private void setDefaults () {\r
48     properties.put("PROXY_MODE","1");\r
49     properties.put("SERIALIZE_REQUESTS", "false");\r
50     properties.put("STREAMBUFF_SIZE", "4096");\r
51     properties.put("PARSE_RESPONSES", "true");    \r
52   }\r
53   \r
54   @Override\r
55   public String get(String key) {\r
56     return properties.get(key);    \r
57   }\r
58   \r
59   public void set(String key, String value) {\r
60     properties.put(key, value);\r
61   }\r
62   \r
63   public void setPazpar2Url (String value) {\r
64     properties.put("PAZPAR2_URL", value);\r
65   }\r
66   \r
67   public void setPazpar2ServiceId (String value) {\r
68     properties.put("PAZPAR2_SERVICE_ID",value);\r
69   }\r
70 \r
71   @Override\r
72   public String get(String key, String defaultValue) {\r
73     if (properties.containsKey(key)) {\r
74       return properties.get(key);\r
75     } else {\r
76       return defaultValue;\r
77     }\r
78   }\r
79 \r
80   @Override\r
81   public String getMandatory(String key) throws MissingMandatoryParameterException {\r
82     if (properties.containsKey(key)) {\r
83       return properties.get(key);\r
84     } \r
85     throw new MissingMandatoryParameterException("Missing mandatory parameter: " + key);     \r
86   }\r
87 \r
88   @Override\r
89   public String getConfigFilePath() {
90     return (moduleConfig != null ? moduleConfig.getConfigFilePath() : "nopath");\r
91   }\r
92   \r
93   \r
94 \r
95 }\r