001 /**
002 *
003 * Copyright 2003-2004 The Apache Software Foundation
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 //
019 // This source code implements specifications defined by the Java
020 // Community Process. In order to remain compliant with the specification
021 // DO NOT add / change / or delete method signatures!
022 //
023
024 package javax.servlet.http;
025
026 import java.io.IOException;
027 import javax.servlet.ServletResponseWrapper;
028
029 /**
030 * Provides a convenient implementation of the HttpServletResponse interface that
031 * can be subclassed by developers wishing to adapt the response from a Servlet.
032 * This class implements the Wrapper or Decorator pattern. Methods default to
033 * calling through to the wrapped response object.
034 *
035 * @since Servlet 2.3
036 *
037 * @see javax.servlet.http.HttpServletResponse
038 *
039 * @version $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14 Sep 2004) $
040 */
041 public class HttpServletResponseWrapper extends ServletResponseWrapper implements HttpServletResponse {
042 /**
043 * Constructs a response adaptor wrapping the given response.
044 * @throws java.lang.IllegalArgumentException if the response is null
045 */
046 public HttpServletResponseWrapper(HttpServletResponse response) {
047 super(response);
048 }
049
050 private HttpServletResponse _getHttpServletResponse() {
051 return (HttpServletResponse) super.getResponse();
052 }
053
054 /**
055 * The default behavior of this method is to call addCookie(Cookie cookie)
056 * on the wrapped response object.
057 */
058 public void addCookie(Cookie cookie) {
059 this._getHttpServletResponse().addCookie(cookie);
060 }
061
062 /**
063 * The default behavior of this method is to call containsHeader(String name)
064 * on the wrapped response object.
065 */
066 public boolean containsHeader(String name) {
067 return this._getHttpServletResponse().containsHeader(name);
068 }
069
070 /**
071 * The default behavior of this method is to call encodeURL(String url)
072 * on the wrapped response object.
073 */
074 public String encodeURL(String url) {
075 return this._getHttpServletResponse().encodeURL(url);
076 }
077
078 /**
079 * The default behavior of this method is to return encodeRedirectURL(String url)
080 * on the wrapped response object.
081 */
082 public String encodeRedirectURL(String url) {
083 return this._getHttpServletResponse().encodeRedirectURL(url);
084 }
085
086 /**
087 * The default behavior of this method is to call encodeUrl(String url)
088 * on the wrapped response object.
089 */
090 public String encodeUrl(String url) {
091 return this._getHttpServletResponse().encodeUrl(url);
092 }
093
094 /**
095 * The default behavior of this method is to return encodeRedirectUrl(String url)
096 * on the wrapped response object.
097 */
098 public String encodeRedirectUrl(String url) {
099 return this._getHttpServletResponse().encodeRedirectUrl(url);
100 }
101
102 /**
103 * The default behavior of this method is to call sendError(int sc, String msg)
104 * on the wrapped response object.
105 */
106 public void sendError(int sc, String msg) throws IOException {
107 this._getHttpServletResponse().sendError(sc, msg);
108 }
109
110 /**
111 * The default behavior of this method is to call sendError(int sc)
112 * on the wrapped response object.
113 */
114 public void sendError(int sc) throws IOException {
115 this._getHttpServletResponse().sendError(sc);
116 }
117
118 /**
119 * The default behavior of this method is to return sendRedirect(String location)
120 * on the wrapped response object.
121 */
122 public void sendRedirect(String location) throws IOException {
123 this._getHttpServletResponse().sendRedirect(location);
124 }
125
126 /**
127 * The default behavior of this method is to call setDateHeader(String name, long date)
128 * on the wrapped response object.
129 */
130 public void setDateHeader(String name, long date) {
131 this._getHttpServletResponse().setDateHeader(name, date);
132 }
133
134 /**
135 * The default behavior of this method is to call addDateHeader(String name, long date)
136 * on the wrapped response object.
137 */
138 public void addDateHeader(String name, long date) {
139 this._getHttpServletResponse().addDateHeader(name, date);
140 }
141
142 /**
143 * The default behavior of this method is to return setHeader(String name, String value)
144 * on the wrapped response object.
145 */
146 public void setHeader(String name, String value) {
147 this._getHttpServletResponse().setHeader(name, value);
148 }
149
150 /**
151 * The default behavior of this method is to return addHeader(String name, String value)
152 * on the wrapped response object.
153 */
154 public void addHeader(String name, String value) {
155 this._getHttpServletResponse().addHeader(name, value);
156 }
157
158 /**
159 * The default behavior of this method is to call setIntHeader(String name, int value)
160 * on the wrapped response object.
161 */
162 public void setIntHeader(String name, int value) {
163 this._getHttpServletResponse().setIntHeader(name, value);
164 }
165
166 /**
167 * The default behavior of this method is to call addIntHeader(String name, int value)
168 * on the wrapped response object.
169 */
170 public void addIntHeader(String name, int value) {
171 this._getHttpServletResponse().addIntHeader(name, value);
172 }
173
174 /**
175 * The default behavior of this method is to call setStatus(int sc)
176 * on the wrapped response object.
177 */
178 public void setStatus(int sc) {
179 this._getHttpServletResponse().setStatus(sc);
180 }
181
182 /**
183 * The default behavior of this method is to call setStatus(int sc, String sm)
184 * on the wrapped response object.
185 */
186 public void setStatus(int sc, String sm) {
187 this._getHttpServletResponse().setStatus(sc, sm);
188 }
189 }