001: /*
002: * Copyright (c) JForum Team
003: * All rights reserved.
004: *
005: * Redistribution and use in source and binary forms,
006: * with or without modification, are permitted provided
007: * that the following conditions are met:
008: *
009: * 1) Redistributions of source code must retain the above
010: * copyright notice, this list of conditions and the
011: * following disclaimer.
012: * 2) Redistributions in binary form must reproduce the
013: * above copyright notice, this list of conditions and
014: * the following disclaimer in the documentation and/or
015: * other materials provided with the distribution.
016: * 3) Neither the name of "Rafael Steil" nor
017: * the names of its contributors may be used to endorse
018: * or promote products derived from this software without
019: * specific prior written permission.
020: *
021: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
022: * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
023: * EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
024: * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
025: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR
026: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
027: * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
028: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
029: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES
030: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
031: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
032: * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
033: * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
034: * IN CONTRACT, STRICT LIABILITY, OR TORT
035: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
036: * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
037: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
038: *
039: * The JForum Project
040: * http://www.jforum.net
041: * 20.08.2006 18:52:22
042: */
043: package net.jforum.context.web;
044:
045: import javax.servlet.http.HttpServletResponse;
046: import javax.servlet.http.Cookie;
047: import javax.servlet.ServletOutputStream;
048:
049: import net.jforum.context.ResponseContext;
050: import net.jforum.util.preferences.ConfigKeys;
051: import net.jforum.util.preferences.SystemGlobals;
052:
053: import java.io.IOException;
054: import java.io.PrintWriter;
055: import java.net.URI;
056:
057: /**
058: * @author SergeMaslyukov
059: * @version $Id: WebResponseContext.java,v 1.3 2007/08/26 17:15:20 rafaelsteil Exp $
060: */
061: public class WebResponseContext implements ResponseContext {
062: private HttpServletResponse response = null;
063:
064: public WebResponseContext(HttpServletResponse response) {
065: this .response = response;
066: }
067:
068: public void setContentLength(int len) {
069: response.setContentLength(len);
070: }
071:
072: public boolean containsHeader(String name) {
073: return response.containsHeader(name);
074: }
075:
076: public void setHeader(String name, String value) {
077: response.setHeader(name, value);
078: }
079:
080: public void addCookie(Cookie cookie) {
081: response.addCookie(cookie);
082: }
083:
084: public String encodeRedirectURL(String url) {
085: return response.encodeRedirectURL(url);
086: }
087:
088: public void sendRedirect(String location) throws IOException {
089: if (SystemGlobals
090: .getBoolValue(ConfigKeys.REDIRECT_ABSOLUTE_PATHS)) {
091: URI uri = URI.create(location);
092:
093: if (!uri.isAbsolute()) {
094: location = SystemGlobals
095: .getValue(ConfigKeys.REDIRECT_BASE_URL)
096: + location;
097: }
098: }
099:
100: response.sendRedirect(location);
101: }
102:
103: public String getCharacterEncoding() {
104: return response.getCharacterEncoding();
105: }
106:
107: public void setContentType(String type) {
108: response.setContentType(type);
109: }
110:
111: public ServletOutputStream getOutputStream() throws IOException {
112: return response.getOutputStream();
113: }
114:
115: public PrintWriter getWriter() throws IOException {
116: return response.getWriter();
117: }
118:
119: public String encodeURL(String url) {
120: return response.encodeURL(url);
121: }
122:
123: public void sendError(int sc) throws IOException {
124: response.sendError(sc);
125: }
126:
127: public void addHeader(String name, String value) {
128: response.addHeader(name, value);
129: }
130: }
|