Coverage Report - org.webslinger.resolver.ServletRequestResolver
 
Classes in this File Line Coverage Branch Coverage Complexity
ServletRequestResolver
100%
14/14
N/A
0
ServletRequestResolver$1
25%
1/4
N/A
0
ServletRequestResolver$10
50%
1/2
N/A
0
ServletRequestResolver$11
50%
1/2
N/A
0
ServletRequestResolver$2
50%
1/2
N/A
0
ServletRequestResolver$3
50%
1/2
N/A
0
ServletRequestResolver$4
50%
1/2
N/A
0
ServletRequestResolver$5
50%
1/2
N/A
0
ServletRequestResolver$6
50%
1/2
N/A
0
ServletRequestResolver$7
50%
1/2
N/A
0
ServletRequestResolver$8
50%
1/2
N/A
0
ServletRequestResolver$9
50%
1/2
N/A
0
ServletRequestResolver$ServletRequestAttributesLookup
0%
0/18
0%
0/1
0
ServletRequestResolver$ServletRequestResolverInfo
100%
3/3
N/A
0
 
 1  
 package org.webslinger.resolver;
 2  
 
 3  
 import java.util.HashMap;
 4  
 import java.util.HashSet;
 5  
 import java.util.Set;
 6  
 import java.util.Map;
 7  
 import javax.servlet.ServletRequest;
 8  
 
 9  
 import org.apache.commons.collections.CollectionUtils;
 10  
 
 11  
 public class ServletRequestResolver<T extends ServletRequest> extends BeanResolver<T> {
 12  
     protected ServletRequestResolver() {
 13  2
         super();
 14  2
         addFetcher("character-encoding", new BeanResolver.BeanGet<T, String>("character-encoding", String.class) {
 15  
             public String getValue(ServletRequest request) {
 16  0
                 return request.getCharacterEncoding();
 17  
             }
 18  
 
 19  
             public void setValue(ServletRequest request, String value) throws Exception {
 20  0
                 request.setCharacterEncoding(value);
 21  0
             }
 22  
         });
 23  2
         addFetcher("content-length", new BeanResolver.BeanGet<T, Integer>("content-length", Integer.class) {
 24  
             public Integer getValue(ServletRequest request) {
 25  0
                 return request.getContentLength();
 26  
             }
 27  
         });
 28  2
         addFetcher("content-type", new BeanResolver.BeanGet<T, String>("content-type", String.class) {
 29  
             public String getValue(ServletRequest request) {
 30  0
                 return request.getContentType();
 31  
             }
 32  
         });
 33  2
         addFetcher("parameters", new BeanResolver.BeanGet<T, Map>("parameters", Map.class) {
 34  
             public Map getValue(ServletRequest request) {
 35  0
                 return request.getParameterMap();
 36  
             }
 37  
         });
 38  2
         addFetcher("protocol", new BeanResolver.BeanGet<T, String>("protocol", String.class) {
 39  
             public String getValue(ServletRequest request) {
 40  0
                 return request.getProtocol();
 41  
             }
 42  
         });
 43  2
         addFetcher("remote-address", new BeanResolver.BeanGet<T, String>("remote-address", String.class) {
 44  
             public String getValue(ServletRequest request) {
 45  0
                 return request.getRemoteAddr();
 46  
             }
 47  
         });
 48  2
         addFetcher("remote-host", new BeanResolver.BeanGet<T, String>("remote-host", String.class) {
 49  
             public String getValue(ServletRequest request) {
 50  0
                 return request.getRemoteHost();
 51  
             }
 52  
         });
 53  2
         addFetcher("scheme", new BeanResolver.BeanGet<T, String>("scheme", String.class) {
 54  
             public String getValue(ServletRequest request) {
 55  0
                 return request.getScheme();
 56  
             }
 57  
         });
 58  2
         addFetcher("secure", new BeanResolver.BeanGet<T, Boolean>("secure", Boolean.class) {
 59  
             public Boolean getValue(ServletRequest request) {
 60  0
                 return request.isSecure();
 61  
             }
 62  
         });
 63  2
         addFetcher("server-port", new BeanResolver.BeanGet<T, Integer>("server-port", Integer.class) {
 64  
             public Integer getValue(ServletRequest request) {
 65  0
                 return request.getServerPort();
 66  
             }
 67  
         });
 68  2
         addFetcher("attributes", new BeanResolver.BeanGet<T, ServletRequestAttributesLookup>("attributes", ServletRequestAttributesLookup.class) {
 69  
             public ServletRequestAttributesLookup getValue(ServletRequest request) {
 70  0
                 return new ServletRequestAttributesLookup(request);
 71  
             }
 72  
         });
 73  2
     }
 74  
 
 75  1
     public static final ServletRequestResolver<ServletRequest> RESOLVER = new ServletRequestResolver<ServletRequest>();
 76  
 
 77  0
     public static final class ServletRequestAttributesLookup implements ObjectLookup {
 78  
         private final ServletRequest request;
 79  
 
 80  0
         private ServletRequestAttributesLookup(ServletRequest request) {
 81  0
             this.request = request;
 82  0
         }
 83  
 
 84  
         public boolean objectContains(String name) {
 85  0
             Set names = getAttributeNames();
 86  0
             return names.contains(name);
 87  
         }
 88  
 
 89  
         public Object objectGet(String name) {
 90  0
             return request.getAttribute(name);
 91  
         }
 92  
 
 93  
         public void objectSet(String name, Object value) throws Exception {
 94  0
             request.setAttribute(name, value);
 95  0
         }
 96  
 
 97  
         public String[] objectList() {
 98  0
             Set<String> names = getAttributeNames();
 99  0
             return (String[]) names.toArray(new String[names.size()]);
 100  
         }
 101  
 
 102  
         private Set<String> getAttributeNames() {
 103  0
             Set<String> names = new HashSet<String>();
 104  0
             CollectionUtils.addAll(names, request.getAttributeNames());
 105  0
             return names;
 106  
         }
 107  
 
 108  
         public boolean objectHasChildren() {
 109  0
             return true;
 110  
         }
 111  
 
 112  
         public Class getType(String name) {
 113  0
             Object value = request.getAttribute(name);
 114  0
             if (value == null) return Void.TYPE;
 115  0
             return value.getClass();
 116  
         }
 117  
     }
 118  
 
 119  2
     public static class ServletRequestResolverInfo implements ObjectResolverInfo<ServletRequest> {
 120  
         public String getType() {
 121  1
             return "javax.servlet.ServletRequest";
 122  
         }
 123  
 
 124  
         public ServletRequestResolver<ServletRequest> getResolver() {
 125  1
             return RESOLVER;
 126  
         }
 127  
     }
 128  
 }