1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.configuration.web;
19
20 import java.util.Iterator;
21 import java.util.Arrays;
22 import javax.servlet.ServletRequest;
23
24 import org.apache.commons.collections.iterators.EnumerationIterator;
25
26 /***
27 * A configuration wrapper to read the parameters of a servlet request. This
28 * configuration is read only, adding or removing a property will throw an
29 * UnsupportedOperationException.
30 *
31 * @author <a href="mailto:ebourg@apache.org">Emmanuel Bourg</a>
32 * @version $Revision: 439648 $, $Date: 2006-09-02 22:42:10 +0200 (Sa, 02 Sep 2006) $
33 * @since 1.1
34 */
35 public class ServletRequestConfiguration extends BaseWebConfiguration
36 {
37 /*** Stores the wrapped request.*/
38 protected ServletRequest request;
39
40 /***
41 * Create a ServletRequestConfiguration using the request parameters.
42 *
43 * @param request the servlet request
44 */
45 public ServletRequestConfiguration(ServletRequest request)
46 {
47 this.request = request;
48 }
49
50 public Object getProperty(String key)
51 {
52 String[] values = request.getParameterValues(key);
53
54 if (values == null || values.length == 0)
55 {
56 return null;
57 }
58 else if (values.length == 1)
59 {
60 return values[0];
61 }
62 else
63 {
64 return Arrays.asList(values);
65 }
66 }
67
68 public Iterator getKeys()
69 {
70 return new EnumerationIterator(request.getParameterNames());
71 }
72 }