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