package org.sothis.mvc.http.servlet;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletResponse;
import org.sothis.mvc.Headers;
import org.sothis.mvc.Response;
public class ServletHttpResponse implements Response {
private final HttpServletResponse response;
private Headers headers;
private String protocolVersion;
public ServletHttpResponse(HttpServletResponse response, String protocolVersion) {
super();
this.response = response;
this.protocolVersion = protocolVersion;
}
@Override
public OutputStream getOutputStream() throws IOException {
return response.getOutputStream();
}
@Override
public Headers headers() {
if (null == headers) {
headers = new ServletResponseHttpHeaders(response);
}
return headers;
}
@Override
public int getStatus() {
return response.getStatus();
}
@Override
public void setStatus(int status) {
response.setStatus(status);
}
@Override
public String getProtocolVersion() {
return protocolVersion;
}
@Override
public void setProtocolVersion(String protocolVersion) {
this.protocolVersion = protocolVersion;
}
@Override
public String getCharset() {
return response.getCharacterEncoding();
}
@Override
public void setCharset(String charset) throws UnsupportedEncodingException {
response.setCharacterEncoding(charset);
}
@Override
public boolean isCommitted() {
return response.isCommitted();
}
@Override
public PrintWriter getWriter() throws IOException {
return response.getWriter();
}
@Override
public void reset() {
response.reset();
}
}