forked from MKLab-ITI/mklab-socialmedia-abstractions
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Configuration.java
60 lines (47 loc) · 1.34 KB
/
Configuration.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package eu.socialsensor.sfc.builder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import eu.socialsensor.framework.common.domain.JSONable;
/**
* Class for the configuration of streams or storages
* reading a set of parameters
*
* @author manosetro
* @email manosetro@iti.gr
*
*/
public class Configuration implements Iterable<String>, JSONable {
/**
*
*/
private static final long serialVersionUID = 5070483137103099259L;
@Expose
@SerializedName(value = "parameters")
private Map<String,String> params = new HashMap<String,String>();
public String getParameter(String name) {
return getParameter(name,null);
}
public String getParameter(String name, String defaultValue){
String value = params.get(name);
return value == null ? defaultValue : value;
}
public void setParameter(String name, String value) {
params.put(name,value);
}
@Override
public Iterator<String> iterator() {
return params.keySet().iterator();
}
@Override
public String toJSONString() {
Gson gson = new GsonBuilder()
.excludeFieldsWithoutExposeAnnotation()
.create();
return gson.toJson(this);
}
}