1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.jxpath.servlet;
19
20 import java.util.Enumeration;
21 import java.util.HashSet;
22
23 import javax.servlet.ServletContext;
24
25 import org.apache.commons.jxpath.DynamicPropertyHandler;
26
27
28
29
30 public class ServletContextHandler implements DynamicPropertyHandler {
31
32 private static final int DEFAULT_PROPERTY_COUNT = 16;
33
34
35
36
37 public ServletContextHandler() {
38
39 }
40
41
42
43
44
45
46
47 protected void collectPropertyNames(final HashSet<String> set, Object bean) {
48 if (bean instanceof HttpSessionAndServletContext) {
49 bean = ((HttpSessionAndServletContext) bean).getServletContext();
50 }
51 final Enumeration<String> e = ((ServletContext) bean).getAttributeNames();
52 while (e.hasMoreElements()) {
53 set.add(e.nextElement());
54 }
55 }
56
57 @Override
58 public Object getProperty(final Object context, final String property) {
59 return ((ServletContext) context).getAttribute(property);
60 }
61
62 @Override
63 public String[] getPropertyNames(final Object context) {
64 final HashSet<String> set = new HashSet<>(DEFAULT_PROPERTY_COUNT);
65 collectPropertyNames(set, context);
66 return set.toArray(new String[set.size()]);
67 }
68
69 @Override
70 public void setProperty(final Object context, final String property, final Object value) {
71 ((ServletContext) context).setAttribute(property, value);
72 }
73 }