1 package com.atlassian.plugin.servlet.util;
2
3 import javax.servlet.ServletOutputStream;
4 import javax.servlet.http.Cookie;
5 import javax.servlet.http.HttpServletResponse;
6 import java.io.ByteArrayOutputStream;
7 import java.io.IOException;
8 import java.io.PrintWriter;
9 import java.util.Collection;
10 import java.util.Locale;
11
12
13
14
15
16
17 public class CapturingHttpServletResponse implements HttpServletResponse
18 {
19 private final ByteArrayOutputStream baos;
20 private final ServletOutputStream servletOutputStream;
21 private PrintWriter printWriter;
22
23 public CapturingHttpServletResponse()
24 {
25 this.baos = new ByteArrayOutputStream();
26 servletOutputStream = new ServletOutputStream() {
27
28 @Override
29 public void write(final int b) throws IOException
30 {
31 baos.write(b);
32 }
33 };
34
35 printWriter = new PrintWriter(servletOutputStream);
36 }
37
38 @Override
39 public ServletOutputStream getOutputStream() throws IOException
40 {
41 return servletOutputStream;
42 }
43
44 @Override
45 public PrintWriter getWriter() throws IOException
46 {
47 return printWriter;
48 }
49
50 @Override
51 public String toString()
52 {
53 return baos.toString();
54 }
55
56
57 @Override
58 public void addCookie(final Cookie cookie)
59 {
60 }
61
62 @Override
63 public boolean containsHeader(final String name)
64 {
65 return false;
66 }
67
68 @Override
69 public String encodeURL(final String url)
70 {
71 return null;
72 }
73
74 @Override
75 public String encodeRedirectURL(final String url)
76 {
77 return null;
78 }
79
80 @Override
81 public String encodeUrl(final String url)
82 {
83 return null;
84 }
85
86 @Override
87 public String encodeRedirectUrl(final String url)
88 {
89 return null;
90 }
91
92 @Override
93 public void sendError(final int sc, final String msg) throws IOException
94 {
95 }
96
97 @Override
98 public void sendError(final int sc) throws IOException
99 {
100 }
101
102 @Override
103 public void sendRedirect(final String location) throws IOException
104 {
105 }
106
107 @Override
108 public void setDateHeader(final String name, final long date)
109 {
110 }
111
112 @Override
113 public void addDateHeader(final String name, final long date)
114 {
115 }
116
117 @Override
118 public void setHeader(final String name, final String value)
119 {
120 }
121
122 @Override
123 public void addHeader(final String name, final String value)
124 {
125 }
126
127 @Override
128 public void setIntHeader(final String name, final int value)
129 {
130 }
131
132 @Override
133 public void addIntHeader(final String name, final int value)
134 {
135 }
136
137 @Override
138 public void setStatus(final int sc)
139 {
140 }
141
142 @Override
143 public void setStatus(final int sc, final String sm)
144 {
145 }
146
147 @Override
148 public String getCharacterEncoding()
149 {
150 return null;
151 }
152
153 @Override
154 public void setContentLength(final int len)
155 {
156 }
157
158 @Override
159 public void setContentType(final String type)
160 {
161 }
162
163 @Override
164 public void setBufferSize(final int size)
165 {
166 }
167
168 @Override
169 public int getBufferSize()
170 {
171 return 0;
172 }
173
174 @Override
175 public void flushBuffer() throws IOException
176 {
177 printWriter.flush();
178 }
179
180 @Override
181 public void resetBuffer()
182 {
183 }
184
185 @Override
186 public boolean isCommitted()
187 {
188 return false;
189 }
190
191 @Override
192 public void reset()
193 {
194 }
195
196 @Override
197 public void setLocale(final Locale loc)
198 {
199 }
200
201 @Override
202 public Locale getLocale()
203 {
204 return null;
205 }
206
207
208
209 @Override
210 public void setCharacterEncoding(String charset)
211 {
212 }
213
214 @Override
215 public int getStatus()
216 {
217 return 0;
218 }
219
220 @Override
221 public String getHeader(String name)
222 {
223 return null;
224 }
225
226 @Override
227 public Collection<String> getHeaders(String name)
228 {
229 return null;
230 }
231
232 @Override
233 public Collection<String> getHeaderNames()
234 {
235 return null;
236 }
237
238 @Override
239 public String getContentType()
240 {
241 return null;
242 }
243 }