1 /*
2 * Copyright 2004-2005 the original author or authors.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * 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, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16 package net.sf.morph.reflect.reflectors;
17
18 import javax.servlet.ServletContext;
19
20 /**
21 * Exposes servlet context attributes.
22 *
23 * @author Matt Sgarlata
24 * @since Nov 21, 2004
25 */
26 public class ServletContextAttributeReflector extends BaseServletReflector {
27
28 // public static final String PSEUDO_PROPERTY_INIT_PARAMETER_NAMES = "initParameterNames";
29 // public static final String PSEUDO_PROPERTY_MAJOR_VERSION = "majorVersion";
30 // public static final String PSEUDO_PROPERTY_MINOR_VERSION = "minorVersion";
31 // public static final String PSEUDO_PROPERTY_SERRVER_INFO = "serverInfo";
32 // public static final String PSEUDO_PROPERTY_SERVLET_CONTEXT_NAME = "servletContextName";
33
34 private static final Class[] REFLECTABLE_TYPES = new Class[] {
35 ServletContext.class
36 };
37
38 protected ServletContext getServletContext(Object bean) {
39 return (ServletContext) bean;
40 }
41
42 protected String[] getPropertyNamesImpl(Object bean) throws Exception {
43 return enumerationToStringArray(getServletContext(bean).getAttributeNames());
44 }
45
46 protected Object getImpl(Object bean, String propertyName) throws Exception {
47 return getServletContext(bean).getAttribute(propertyName);
48 }
49
50 protected void setImpl(Object bean, String propertyName, Object value) throws Exception {
51 getServletContext(bean).setAttribute(propertyName, value);
52 }
53
54 public Class[] getReflectableClassesImpl() {
55 return REFLECTABLE_TYPES;
56 }
57
58 }