|
|||||||||||||||||||
30 day Evaluation License registered to hlship@comcast.net Your 30 day evaluation period has expired. Please visit http://www.cenqua.com to obtain a licensed version of Clover | |||||||||||||||||||
Source file | Conditionals | Statements | Methods | TOTAL | |||||||||||||||
ServletWebResponse.java | 100% | 91.3% | 88.9% | 91.2% |
|
1 | // Copyright 2005 The Apache Software Foundation | |
2 | // | |
3 | // Licensed under the Apache License, Version 2.0 (the "License"); | |
4 | // you may not use this file except in compliance with the License. | |
5 | // You may obtain a copy of the License at | |
6 | // | |
7 | // http://www.apache.org/licenses/LICENSE-2.0 | |
8 | // | |
9 | // Unless required by applicable law or agreed to in writing, software | |
10 | // distributed under the License is distributed on an "AS IS" BASIS, | |
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
12 | // See the License for the specific language governing permissions and | |
13 | // limitations under the License. | |
14 | ||
15 | package org.apache.tapestry.web; | |
16 | ||
17 | import java.io.IOException; | |
18 | import java.io.OutputStream; | |
19 | import java.io.PrintWriter; | |
20 | ||
21 | import javax.servlet.http.HttpServletResponse; | |
22 | ||
23 | import org.apache.commons.logging.Log; | |
24 | import org.apache.commons.logging.LogFactory; | |
25 | import org.apache.hivemind.ApplicationRuntimeException; | |
26 | import org.apache.hivemind.util.Defense; | |
27 | import org.apache.tapestry.util.ContentType; | |
28 | ||
29 | /** | |
30 | * Adapts {@link javax.servlet.http.HttpServletResponse} as | |
31 | * {@link org.apache.tapestry.web.WebResponse}. | |
32 | * | |
33 | * @author Howard M. Lewis Ship | |
34 | * @since 4.0 | |
35 | */ | |
36 | public class ServletWebResponse implements WebResponse | |
37 | { | |
38 | private static final Log LOG = LogFactory.getLog(ServletWebResponse.class); | |
39 | ||
40 | private final HttpServletResponse _servletResponse; | |
41 | ||
42 | private boolean _needsReset; | |
43 | ||
44 | 138 | public ServletWebResponse(HttpServletResponse response) |
45 | { | |
46 | 138 | Defense.notNull(response, "response"); |
47 | ||
48 | 138 | _servletResponse = response; |
49 | } | |
50 | ||
51 | 3 | public OutputStream getOutputStream(ContentType contentType) |
52 | { | |
53 | 3 | Defense.notNull(contentType, "contentType"); |
54 | ||
55 | 3 | _servletResponse.setContentType(contentType.getMimeType()); |
56 | ||
57 | 3 | try |
58 | { | |
59 | 3 | return _servletResponse.getOutputStream(); |
60 | } | |
61 | catch (IOException ex) | |
62 | { | |
63 | 1 | throw new ApplicationRuntimeException(WebMessages.streamOpenError(contentType, ex), |
64 | null, ex); | |
65 | } | |
66 | } | |
67 | ||
68 | 145 | public PrintWriter getPrintWriter(ContentType contentType) throws IOException |
69 | { | |
70 | 145 | Defense.notNull(contentType, "contentType"); |
71 | ||
72 | 145 | if (_needsReset) |
73 | 11 | reset(); |
74 | ||
75 | 145 | _needsReset = true; |
76 | ||
77 | 145 | _servletResponse.setContentType(contentType.toString()); |
78 | ||
79 | 145 | try |
80 | { | |
81 | 145 | return _servletResponse.getWriter(); |
82 | } | |
83 | catch (IOException ex) | |
84 | { | |
85 | 1 | throw new ApplicationRuntimeException(WebMessages.writerOpenError(contentType, ex), |
86 | null, ex); | |
87 | } | |
88 | } | |
89 | ||
90 | 136 | public String encodeURL(String url) |
91 | { | |
92 | 136 | return _servletResponse.encodeURL(url); |
93 | } | |
94 | ||
95 | 12 | public void reset() |
96 | { | |
97 | 12 | try |
98 | { | |
99 | 12 | _servletResponse.reset(); |
100 | } | |
101 | catch (IllegalStateException ex) | |
102 | { | |
103 | 0 | LOG.error(WebMessages.resetFailed(ex), ex); |
104 | } | |
105 | } | |
106 | ||
107 | 1 | public void setContentLength(int length) |
108 | { | |
109 | 1 | _servletResponse.setContentLength(length); |
110 | } | |
111 | ||
112 | 122 | public String getNamespace() |
113 | { | |
114 | 122 | return ""; |
115 | } | |
116 | ||
117 | 2 | public void setDateHeader(String name, long date) |
118 | { | |
119 | 2 | _servletResponse.setDateHeader(name, date); |
120 | } | |
121 | ||
122 | 0 | public void setStatus(int status) |
123 | { | |
124 | 0 | _servletResponse.setStatus(status); |
125 | } | |
126 | } |
|