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.List;
22 import javax.servlet.Servlet;
23 import javax.servlet.ServletConfig;
24
25 import org.apache.commons.collections.iterators.EnumerationIterator;
26 import org.apache.commons.configuration.PropertyConverter;
27
28 /***
29 * A configuration wrapper around a {@link ServletConfig}. This configuration
30 * is read only, adding or removing a property will throw an
31 * UnsupportedOperationException.
32 *
33 * @author <a href="mailto:ebourg@apache.org">Emmanuel Bourg</a>
34 * @version $Revision: 439648 $, $Date: 2006-09-02 22:42:10 +0200 (Sa, 02 Sep 2006) $
35 * @since 1.1
36 */
37 public class ServletConfiguration extends BaseWebConfiguration
38 {
39 /*** Stores a reference to the wrapped <code>ServletConfig</code>.*/
40 protected ServletConfig config;
41
42 /***
43 * Create a ServletConfiguration using the initialization parameter of
44 * the specified servlet.
45 *
46 * @param servlet the servlet
47 */
48 public ServletConfiguration(Servlet servlet)
49 {
50 this(servlet.getServletConfig());
51 }
52
53 /***
54 * Create a ServletConfiguration using the servlet initialization parameters.
55 *
56 * @param config the servlet configuration
57 */
58 public ServletConfiguration(ServletConfig config)
59 {
60 this.config = config;
61 }
62
63 public Object getProperty(String key)
64 {
65 Object value = config.getInitParameter(key);
66 if (!isDelimiterParsingDisabled())
67 {
68 List list = PropertyConverter.split((String) value, getListDelimiter());
69 value = list.size() > 1 ? list : value;
70 }
71
72 return value;
73 }
74
75 public Iterator getKeys()
76 {
77 return new EnumerationIterator(config.getInitParameterNames());
78 }
79 }