1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.configuration2.web;
19
20 import java.util.ArrayList;
21 import java.util.Collection;
22 import java.util.Iterator;
23 import java.util.List;
24 import java.util.Map;
25
26 import javax.servlet.ServletRequest;
27
28
29
30
31
32
33
34 public class ServletRequestConfiguration extends BaseWebConfiguration {
35
36 protected ServletRequest request;
37
38
39
40
41
42
43 public ServletRequestConfiguration(final ServletRequest request) {
44 this.request = request;
45 }
46
47 @Override
48 protected Object getPropertyInternal(final String key) {
49 final String[] values = request.getParameterValues(key);
50
51 if (values == null || values.length == 0) {
52 return null;
53 }
54 if (values.length == 1) {
55 return handleDelimiters(values[0]);
56 }
57
58 final List<Object> result = new ArrayList<>(values.length);
59 for (final String value : values) {
60 final Object val = handleDelimiters(value);
61 if (val instanceof Collection) {
62 result.addAll((Collection<?>) val);
63 } else {
64 result.add(val);
65 }
66 }
67 return result;
68 }
69
70 @Override
71 protected Iterator<String> getKeysInternal() {
72
73 final Map<String, ?> parameterMap = request.getParameterMap();
74 return parameterMap.keySet().iterator();
75 }
76 }