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 private final ByteArrayOutputStream baos;
19 private final ServletOutputStream servletOutputStream;
20 private PrintWriter printWriter;
21
22 public CapturingHttpServletResponse() {
23 this.baos = new ByteArrayOutputStream();
24 servletOutputStream = new ServletOutputStream() {
25
26 @Override
27 public void write(final int b) throws IOException {
28 baos.write(b);
29 }
30 };
31
32 printWriter = new PrintWriter(servletOutputStream);
33 }
34
35 @Override
36 public ServletOutputStream getOutputStream() throws IOException {
37 return servletOutputStream;
38 }
39
40 @Override
41 public PrintWriter getWriter() throws IOException {
42 return printWriter;
43 }
44
45 @Override
46 public String toString() {
47 return baos.toString();
48 }
49
50
51 @Override
52 public void addCookie(final Cookie cookie) {
53 }
54
55 @Override
56 public boolean containsHeader(final String name) {
57 return false;
58 }
59
60 @Override
61 public String encodeURL(final String url) {
62 return null;
63 }
64
65 @Override
66 public String encodeRedirectURL(final String url) {
67 return null;
68 }
69
70 @Override
71 public String encodeUrl(final String url) {
72 return null;
73 }
74
75 @Override
76 public String encodeRedirectUrl(final String url) {
77 return null;
78 }
79
80 @Override
81 public void sendError(final int sc, final String msg) throws IOException {
82 }
83
84 @Override
85 public void sendError(final int sc) throws IOException {
86 }
87
88 @Override
89 public void sendRedirect(final String location) throws IOException {
90 }
91
92 @Override
93 public void setDateHeader(final String name, final long date) {
94 }
95
96 @Override
97 public void addDateHeader(final String name, final long date) {
98 }
99
100 @Override
101 public void setHeader(final String name, final String value) {
102 }
103
104 @Override
105 public void addHeader(final String name, final String value) {
106 }
107
108 @Override
109 public void setIntHeader(final String name, final int value) {
110 }
111
112 @Override
113 public void addIntHeader(final String name, final int value) {
114 }
115
116 @Override
117 public void setStatus(final int sc) {
118 }
119
120 @Override
121 public void setStatus(final int sc, final String sm) {
122 }
123
124 @Override
125 public String getCharacterEncoding() {
126 return null;
127 }
128
129 @Override
130 public void setContentLength(final int len) {
131 }
132
133 @Override
134 public void setContentType(final String type) {
135 }
136
137 @Override
138 public void setBufferSize(final int size) {
139 }
140
141 @Override
142 public int getBufferSize() {
143 return 0;
144 }
145
146 @Override
147 public void flushBuffer() throws IOException {
148 printWriter.flush();
149 }
150
151 @Override
152 public void resetBuffer() {
153 }
154
155 @Override
156 public boolean isCommitted() {
157 return false;
158 }
159
160 @Override
161 public void reset() {
162 }
163
164 @Override
165 public void setLocale(final Locale loc) {
166 }
167
168 @Override
169 public Locale getLocale() {
170 return null;
171 }
172
173
174
175 @Override
176 public void setCharacterEncoding(String charset) {
177 }
178
179 @Override
180 public int getStatus() {
181 return 0;
182 }
183
184 @Override
185 public String getHeader(String name) {
186 return null;
187 }
188
189 @Override
190 public Collection<String> getHeaders(String name) {
191 return null;
192 }
193
194 @Override
195 public Collection<String> getHeaderNames() {
196 return null;
197 }
198
199 @Override
200 public String getContentType() {
201 return null;
202 }
203 }