1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.morph.reflect.reflectors;
17
18 import javax.servlet.jsp.PageContext;
19
20 import net.sf.morph.reflect.ReflectionException;
21
22 /**
23 * Exposes page context attributes.
24 *
25 * @author Matt Sgarlata
26 * @since Dec 4, 2004
27 */
28 public class PageContextAttributeReflector extends
29 BaseServletReflector {
30
31 private static final Class[] REFLECTABLE_TYPES = new Class[] { PageContext.class };
32
33 protected PageContext getPageContext(Object bean) {
34 return (PageContext) bean;
35 }
36
37 protected String[] getPropertyNamesImpl(Object bean) throws Exception {
38 return enumerationToStringArray(getPageContext(bean).getAttributeNamesInScope(
39 PageContext.PAGE_SCOPE));
40 }
41
42 protected Object getImpl(Object bean, String propertyName) throws Exception {
43 return getPageContext(bean).getAttribute(propertyName);
44 }
45
46 protected void setImpl(Object bean, String propertyName, Object value)
47 throws Exception {
48 if (value == null) {
49 throw new ReflectionException("Cannot set null for property '" + propertyName + "' because null values are not allowed for " + PageContext.class.getName() + " attributes");
50 }
51 getPageContext(bean).setAttribute(propertyName, value);
52 }
53
54 public Class[] getReflectableClassesImpl() {
55 return REFLECTABLE_TYPES;
56 }
57
58 }