1
2
3
4
5 package pt.digitalis.dif.dem.objects.parameters;
6
7 import java.util.HashMap;
8 import java.util.Map;
9
10 import pt.digitalis.dif.exception.objects.ParameterException;
11
12
13
14
15
16
17
18 public class ParameterList {
19
20
21 @SuppressWarnings({"rawtypes"})
22 private Map<String, IParameter> parameters = new HashMap<String, IParameter>();
23
24
25
26
27
28
29
30 public void addParameter(IParameter<?> parameter)
31 {
32 parameters.put(parameter.getId(), parameter);
33 }
34
35
36
37
38
39
40
41
42 public ParameterList addParameters(ParameterList list)
43 {
44 parameters.putAll(list.getParameters());
45
46 return this;
47 }
48
49
50
51
52
53
54
55 public ParameterList cloneMe() throws CloneNotSupportedException
56 {
57 ParameterList parameterListObj = new ParameterList();
58
59 for (String key: parameters.keySet())
60 parameterListObj.parameters.put(key, parameters.get(key).clone());
61
62 return parameterListObj;
63 }
64
65
66
67
68
69
70
71
72 public IParameter<?> getParameter(String id)
73 {
74 if (id != null)
75 id = id.toLowerCase();
76
77 return parameters.get(id);
78 }
79
80
81
82
83
84
85
86
87
88
89
90
91 @SuppressWarnings("unchecked")
92 public <T> IParameter<T> getParameter(String id, Class<T> clazz)
93 {
94 return parameters.get(id.toLowerCase());
95 }
96
97
98
99
100 @SuppressWarnings("rawtypes")
101 public Map<String, IParameter> getParameters()
102 {
103 return parameters;
104 }
105
106
107
108
109
110
111
112
113
114 @SuppressWarnings({"rawtypes", "unchecked"})
115 public void updatesParameter(IParameter parameter) throws ParameterException
116 {
117 IParameter old = parameters.get(parameter.getId());
118
119 if (old == null)
120 addParameter(parameter);
121 else
122 old.setValue(parameter.getValue(null), null);
123 }
124 }