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.ServletContext;
24
25 import org.apache.commons.collections.iterators.EnumerationIterator;
26 import org.apache.commons.configuration.PropertyConverter;
27
28 /***
29 * A configuration wrapper to read the initialization parameters of a servlet
30 * context. This configuration is read only, adding or removing a property will
31 * throw an 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 ServletContextConfiguration extends BaseWebConfiguration
38 {
39 /*** Stores the wrapped servlet context.*/
40 protected ServletContext context;
41
42 /***
43 * Create a ServletContextConfiguration using the context of
44 * the specified servlet.
45 *
46 * @param servlet the servlet
47 */
48 public ServletContextConfiguration(Servlet servlet)
49 {
50 this.context = servlet.getServletConfig().getServletContext();
51 }
52
53 /***
54 * Create a ServletContextConfiguration using the servlet context
55 * initialization parameters.
56 *
57 * @param context the servlet context
58 */
59 public ServletContextConfiguration(ServletContext context)
60 {
61 this.context = context;
62 }
63
64 public Object getProperty(String key)
65 {
66 Object value = context.getInitParameter(key);
67 if (!isDelimiterParsingDisabled())
68 {
69 List list = PropertyConverter.split((String) value, getListDelimiter());
70 value = list.size() > 1 ? list : value;
71 }
72
73 return value;
74 }
75
76 public Iterator getKeys()
77 {
78 return new EnumerationIterator(context.getInitParameterNames());
79 }
80 }