View Javadoc

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  * A {@link javax.servlet.http.HttpServletResponse} that captures its output (in platform specific charset!)
14  *
15  * @since v4.0
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     // Servlet 3.0 methods
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 }