Clover coverage report - JFox Service-Oriented Application Framework - 1.0-M2 Coverage timestamp: 星期四 十一月 25 2004 17:14:11 PST FRAMES NO FRAMES |
file stats: | LOC: | 144 |  | Methods: | 6
| NCLOC: | 50 |  | Classes: | 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
Source file | Conditionals | Statements | Methods | TOTAL
EncodingFilter.java | 75% | 90.9% | 100% | 87.5% |

1 |  |
     /**
2 |  |
      * JFoxSOAF, Service-Oriented Application Framework
3 |  |
      *
4 |  |
      * Copyright (C) www.huihoo.org
5 |  |
      *
6 |  |
      * Distributable under GNU LGPL
7 |  |
      *
8 |  |
      * For more information, please visit: http://www.huihoo.org/jfox/jfoxsoaf
9 |  |
      */
10 |  |
11 |  |
     package org.huihoo.jfox.soaf.util.filter;
12 |  |
13 |  |
     import java.io.IOException;
14 |  |
15 |  |
     import javax.servlet.FilterChain;
16 |  |
     import javax.servlet.FilterConfig;
17 |  |
     import javax.servlet.ServletException;
18 |  |
     import javax.servlet.ServletRequest;
19 |  |
     import javax.servlet.ServletResponse;
20 |  |
21 |  |
     /**
22 |  |
      * <p>
23 |  |
      * Filter that sets the character encoding to be used in parsing the incoming
24 |  |
      * request, either unconditionally or only if the client did not specify a
25 |  |
      * character encoding. Resource of this filter is based on the following
26 |  |
      * initialization parameters:
27 |  |
      * </p>
28 |  |
      *
29 |  |
      * @author <a href="mailto:founder_chen@yahoo.com.cn">Peter Cheng </a>
30 |  |
      * @version $Revision: 1.2 $ $Date: 2004/10/25 14:46:36 $
31 |  |
      * @version Revision: 1.0
32 |  |
      */
33 |  |
34 |  |
     public class EncodingFilter {
35 |  |
36 |  |
         /**
37 |  |
          * The default character encoding to set for requests that pass through this
38 |  |
          * filter.
39 |  |
          */
40 |  |
         private String encoding = null;
41 |  |
42 |  |
         /**
43 |  |
          * The filter configuration object we are associated with. If this value is
44 |  |
          * null, this filter instance is not currently configured.
45 |  |
          */
46 |  |
         private FilterConfig filterConfig = null;
47 |  |
48 |  |
         /**
49 |  |
          * Should a character encoding specified by the client be ignored?
50 |  |
          */
51 |  |
         private boolean ignore = true;
52 |  |
53 |  |
         /**
54 |  |
          * Take this filter out of service.
55 |  |
          */
56 | 1 |
         public void destroy() {
57 | 1 |
             this.encoding = null;
58 | 1 |
             this.filterConfig = null;
59 |  |
         }
60 |  |
61 |  |
         /**
62 |  |
          * Select and set (if specified) the character encoding to be used to
63 |  |
          * interpret request parameters for this request.
64 |  |
          *
65 |  |
          * @param request
66 |  |
          *            The servlet request we are processing
67 |  |
          * @param response
68 |  |
          *            The servlet response we are creating
69 |  |
          * @param chain
70 |  |
          *            The filter chain we are processing
71 |  |
          * @exception java.io.IOException
72 |  |
          *                if an input/output error occurs
73 |  |
          * @exception javax.servlet.ServletException
74 |  |
          *                if a servlet error occurs
75 |  |
          */
76 | 2 |
         public void doFilter(ServletRequest request, ServletResponse response,
77 |  |
                 FilterChain chain) throws IOException, ServletException {
78 |  |
             //   Conditionally select and set the character encoding to be used
79 | 2 |
             if (ignore || (request.getCharacterEncoding() == null)) {
80 | 2 |
                 String encoding = selectEncoding(request);
81 | 2 |
                 if (encoding != null)
82 | 0 |
                     request.setCharacterEncoding(encoding);
83 |  |
             }
84 |  |
85 |  |
             //   Pass control on to the next filter
86 | 2 |
             chain.doFilter(request, response);
87 |  |
         }
88 |  |
89 |  |
         /**
90 |  |
          * Place this filter into service.
91 |  |
          *
92 |  |
          * @param filterConfig
93 |  |
          *            The filter configuration object
94 |  |
          */
95 | 4 |
         public void init(FilterConfig filterConfig) throws ServletException {
96 |  |
97 | 4 |
             this.filterConfig = filterConfig;
98 | 4 |
             String encodingConfig = filterConfig.getInitParameter("encoding");
99 | 3 |
             if (encodingConfig != null) {
100 | 1 |
                 this.encoding = encodingConfig;
101 |  |
             }
102 | 3 |
             String value = filterConfig.getInitParameter("ignore");
103 | 3 |
             if (value == null) {
104 | 1 |
                 this.ignore = true;
105 | 2 |
             } else if (value.equalsIgnoreCase("true")) {
106 | 1 |
                 this.ignore = true;
107 | 1 |
             } else if (value.equalsIgnoreCase("yes")) {
108 | 0 |
                 this.ignore = true;
109 |  |
             } else {
110 | 1 |
                 this.ignore = false;
111 |  |
             }
112 |  |
         }
113 |  |
114 |  |
         /**
115 |  |
          * Select an appropriate character encoding to be used, based on the
116 |  |
          * characteristics of the current request and/or filter initialization
117 |  |
          * parameters. If no character encoding should be set, return
118 |  |
          * <code>null</code>.
119 |  |
          * <p>
120 |  |
          * The default implementation unconditionally returns the value configured
121 |  |
          * by the <strong>encoding </strong> initialization parameter for this
122 |  |
          * filter.
123 |  |
          *
124 |  |
          * @param request
125 |  |
          *            The servlet request we are processing
126 |  |
          */
127 | 4 |
         protected String selectEncoding(ServletRequest request) {
128 | 4 |
             return (this.encoding);
129 |  |
         }
130 |  |
131 |  |
         /**
132 |  |
          * @return Returns the encoding.
133 |  |
          */
134 | 3 |
         public String getEncoding() {
135 | 3 |
             return encoding;
136 |  |
         }
137 |  |
138 |  |
         /**
139 |  |
          * @return Returns the ignore.
140 |  |
          */
141 | 4 |
         public boolean isIgnore() {
142 | 4 |
             return ignore;
143 |  |
         }
144 |  |
     }