1
14
15 package com.liferay.portal.kernel.servlet;
16
17 import com.liferay.portal.kernel.io.unsync.UnsyncPrintWriter;
18
19 import java.io.OutputStream;
20 import java.io.PrintWriter;
21 import java.io.Writer;
22
23 import javax.servlet.ServletOutputStream;
24 import javax.servlet.http.HttpServletResponse;
25 import javax.servlet.http.HttpServletResponseWrapper;
26 import javax.servlet.jsp.PageContext;
27
28
33 public class PipingServletResponse extends HttpServletResponseWrapper {
34
35 public PipingServletResponse(
36 HttpServletResponse response, OutputStream outputStream) {
37
38 super(response);
39
40 _servletOutputStream = new PipingServletOutputStream(outputStream);
41 }
42
43 public PipingServletResponse(
44 HttpServletResponse response, PrintWriter printWriter) {
45
46 super(response);
47
48 _printWriter = printWriter;
49 }
50
51 public PipingServletResponse(
52 HttpServletResponse response, ServletOutputStream servletOutputStream) {
53
54 super(response);
55
56 _servletOutputStream = servletOutputStream;
57 }
58
59 public PipingServletResponse(HttpServletResponse response, Writer writer) {
60 super(response);
61
62 _printWriter = new UnsyncPrintWriter(writer, true);
63 }
64
65 public PipingServletResponse(PageContext pageContext) {
66 this(
67 (HttpServletResponse)pageContext.getResponse(),
68 pageContext.getOut());
69 }
70
71 public ServletOutputStream getOutputStream() {
72 if (_servletOutputStream == null) {
73 throw new IllegalStateException("Servlet output stream is null");
74 }
75
76 return _servletOutputStream;
77 }
78
79 public PrintWriter getWriter() {
80 if (_printWriter == null) {
81 throw new IllegalStateException("Print writer is null");
82 }
83
84 return _printWriter;
85 }
86
87 private PrintWriter _printWriter;
88 private ServletOutputStream _servletOutputStream;
89
90 }