KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > configuration > web > ServletConfiguration


1 /*
2  * Copyright 2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License")
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.apache.commons.configuration.web;
18
19 import java.util.Iterator JavaDoc;
20 import java.util.List JavaDoc;
21 import javax.servlet.Servlet JavaDoc;
22 import javax.servlet.ServletConfig JavaDoc;
23
24 import org.apache.commons.collections.iterators.EnumerationIterator;
25 import org.apache.commons.configuration.AbstractConfiguration;
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: 155408 $, $Date: 2005-02-26 13:56:39 +0100 (Sa, 26 Feb 2005) $
35  * @since 1.1
36  */

37 public class ServletConfiguration extends AbstractConfiguration
38 {
39     protected ServletConfig JavaDoc config;
40
41     /**
42      * Create a ServletConfiguration using the initialization parameter of
43      * the specified servlet.
44      *
45      * @param servlet the servlet
46      */

47     public ServletConfiguration(Servlet JavaDoc servlet)
48     {
49         this(servlet.getServletConfig());
50     }
51
52     /**
53      * Create a ServletConfiguration using the servlet initialization parameters.
54      *
55      * @param config the servlet configuration
56      */

57     public ServletConfiguration(ServletConfig JavaDoc config)
58     {
59         this.config = config;
60     }
61
62     public Object JavaDoc getProperty(String JavaDoc key)
63     {
64         Object JavaDoc value = config.getInitParameter(key);
65         List JavaDoc list = PropertyConverter.split((String JavaDoc) value, getDelimiter());
66
67         return list.size() > 1 ? list : value;
68     }
69
70     /**
71      * <p><strong>This operation is not supported and will throw an
72      * UnsupportedOperationException.</strong></p>
73      *
74      * @throws UnsupportedOperationException
75      */

76     protected void addPropertyDirect(String JavaDoc key, Object JavaDoc obj)
77     {
78         throw new UnsupportedOperationException JavaDoc("Read only configuration");
79     }
80
81     public boolean isEmpty()
82     {
83         return !getKeys().hasNext();
84     }
85
86     public boolean containsKey(String JavaDoc key)
87     {
88         return getProperty(key) != null;
89     }
90
91     /**
92      * <p><strong>This operation is not supported and will throw an
93      * UnsupportedOperationException.</strong></p>
94      *
95      * @throws UnsupportedOperationException
96      */

97     public void clearProperty(String JavaDoc key)
98     {
99         throw new UnsupportedOperationException JavaDoc("Read only configuration");
100     }
101
102     public Iterator JavaDoc getKeys()
103     {
104         return new EnumerationIterator(config.getInitParameterNames());
105     }
106
107 }
108
Popular Tags