128525b9d60ff31bcdbc5b6f247085949ab30024
[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.errors.ConfigurationException;\r
17 import com.indexdata.pz2utils4jsf.utils.Utils;\r
18 \r
19 @Named @SessionScoped\r
20 public class Pz2Config implements ModuleConfigurationGetter, Serializable {\r
21 \r
22   private static final long serialVersionUID = -6801241975338182197L;\r
23   private static Logger logger = Logger.getLogger(Pz2Config.class);\r
24   Map<String,String> properties = new HashMap<String,String>();\r
25   ModuleConfiguration moduleConfig = null;\r
26   \r
27   public Pz2Config () {\r
28     logger.debug(Utils.objectId(this) + " being constructed with no argument");\r
29     setDefaults();\r
30   }\r
31   \r
32   public Pz2Config (Map<String,String> parameters) {\r
33     //logger.debug(Utils.objectId(this) + " being constructed with parameter map argument");\r
34     setDefaults();\r
35     for (String key : parameters.keySet()) {\r
36       properties.put(key, parameters.get(key));\r
37     }\r
38   }\r
39   \r
40   public Pz2Config (ModuleConfiguration moduleConfig) throws ConfigurationException {\r
41     logger.debug(Utils.objectId(this) + " being constructed with moduleConfig argument.");\r
42     this.moduleConfig = moduleConfig;\r
43     try {\r
44       for (String key : moduleConfig.getConfigMap().keySet()) {\r
45         properties.put(key, moduleConfig.getConfigParameter(key));\r
46       }\r
47     } catch (IOException e) {\r
48       throw new ConfigurationException("Could not instantiate Pazpar2 configuration: "+e.getMessage(),e);\r
49     }\r
50   }\r
51   \r
52   private void setDefaults () {\r
53     properties.put("PROXY_MODE","1");\r
54     properties.put("SERIALIZE_REQUESTS", "false");\r
55     properties.put("STREAMBUFF_SIZE", "4096");\r
56     properties.put("PARSE_RESPONSES", "true");    \r
57   }\r
58   \r
59   @Override\r
60   public String get(String key) {\r
61     return properties.get(key);    \r
62   }\r
63   \r
64   public void set(String key, String value) {\r
65     properties.put(key, value);\r
66   }\r
67   \r
68   public void setPazpar2Url (String value) {\r
69     properties.put("PAZPAR2_URL", value);\r
70   }\r
71   \r
72   public void setPazpar2ServiceId (String value) {\r
73     properties.put("PAZPAR2_SERVICE_ID",value);\r
74   }\r
75 \r
76   @Override\r
77   public String get(String key, String defaultValue) {\r
78     if (properties.containsKey(key)) {\r
79       return properties.get(key);\r
80     } else {\r
81       return defaultValue;\r
82     }\r
83   }\r
84 \r
85   @Override\r
86   public String getMandatory(String key) throws MissingMandatoryParameterException {\r
87     if (properties.containsKey(key)) {\r
88       return properties.get(key);\r
89     } \r
90     throw new MissingMandatoryParameterException("Missing mandatory parameter: " + key);     \r
91   }\r
92 \r
93   @Override\r
94   public String getConfigFilePath() {
95     return (moduleConfig != null ? moduleConfig.getConfigFilePath() : "nopath");\r
96   }\r
97   \r
98   \r
99 \r
100 }\r