001 /*
002 * Copyright 2004 The Apache Software Foundation
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package javax.servlet;
017
018 import java.io.IOException;
019 import java.io.PrintWriter;
020 import java.util.Locale;
021
022 /**
023 *
024 * Provides a convenient implementation of the ServletResponse interface that
025 * can be subclassed by developers wishing to adapt the response from a Servlet.
026 * This class implements the Wrapper or Decorator pattern. Methods default to
027 * calling through to the wrapped response object.
028 *
029 * @author Various
030 * @version $Version$
031 * @since v 2.3
032 *
033 * @see javax.servlet.ServletResponse
034 *
035 */
036
037
038 public class ServletResponseWrapper implements ServletResponse {
039 private ServletResponse response;
040 /**
041 * Creates a ServletResponse adaptor wrapping the given response object.
042 * @throws java.lang.IllegalArgumentException if the response is null.
043 */
044
045
046 public ServletResponseWrapper(ServletResponse response) {
047 if (response == null) {
048 throw new IllegalArgumentException("Response cannot be null");
049 }
050 this.response = response;
051 }
052
053 /**
054 * Return the wrapped ServletResponse object.
055 */
056
057 public ServletResponse getResponse() {
058 return this.response;
059 }
060
061
062 /**
063 * Sets the response being wrapped.
064 * @throws java.lang.IllegalArgumentException if the response is null.
065 */
066
067 public void setResponse(ServletResponse response) {
068 if (response == null) {
069 throw new IllegalArgumentException("Response cannot be null");
070 }
071 this.response = response;
072 }
073
074 /**
075 * The default behavior of this method is to call setCharacterEncoding(String charset)
076 * on the wrapped response object.
077 *
078 * @since 2.4
079 */
080
081 public void setCharacterEncoding(String charset) {
082 this.response.setCharacterEncoding(charset);
083 }
084
085 /**
086 * The default behavior of this method is to return getCharacterEncoding()
087 * on the wrapped response object.
088 */
089
090 public String getCharacterEncoding() {
091 return this.response.getCharacterEncoding();
092 }
093
094
095 /**
096 * The default behavior of this method is to return getOutputStream()
097 * on the wrapped response object.
098 */
099
100 public ServletOutputStream getOutputStream() throws IOException {
101 return this.response.getOutputStream();
102 }
103
104 /**
105 * The default behavior of this method is to return getWriter()
106 * on the wrapped response object.
107 */
108
109
110 public PrintWriter getWriter() throws IOException {
111 return this.response.getWriter();
112 }
113
114 /**
115 * The default behavior of this method is to call setContentLength(int len)
116 * on the wrapped response object.
117 */
118
119 public void setContentLength(int len) {
120 this.response.setContentLength(len);
121 }
122
123 /**
124 * The default behavior of this method is to call setContentType(String type)
125 * on the wrapped response object.
126 */
127
128 public void setContentType(String type) {
129 this.response.setContentType(type);
130 }
131
132 /**
133 * The default behavior of this method is to return getContentType()
134 * on the wrapped response object.
135 *
136 * @since 2.4
137 */
138
139 public String getContentType() {
140 return this.response.getContentType();
141 }
142
143 /**
144 * The default behavior of this method is to call setBufferSize(int size)
145 * on the wrapped response object.
146 */
147 public void setBufferSize(int size) {
148 this.response.setBufferSize(size);
149 }
150
151 /**
152 * The default behavior of this method is to return getBufferSize()
153 * on the wrapped response object.
154 */
155 public int getBufferSize() {
156 return this.response.getBufferSize();
157 }
158
159 /**
160 * The default behavior of this method is to call flushBuffer()
161 * on the wrapped response object.
162 */
163
164 public void flushBuffer() throws IOException {
165 this.response.flushBuffer();
166 }
167
168 /**
169 * The default behavior of this method is to return isCommitted()
170 * on the wrapped response object.
171 */
172 public boolean isCommitted() {
173 return this.response.isCommitted();
174 }
175
176 /**
177 * The default behavior of this method is to call reset()
178 * on the wrapped response object.
179 */
180
181 public void reset() {
182 this.response.reset();
183 }
184
185 /**
186 * The default behavior of this method is to call resetBuffer()
187 * on the wrapped response object.
188 */
189
190 public void resetBuffer() {
191 this.response.resetBuffer();
192 }
193
194 /**
195 * The default behavior of this method is to call setLocale(Locale loc)
196 * on the wrapped response object.
197 */
198
199 public void setLocale(Locale loc) {
200 this.response.setLocale(loc);
201 }
202
203 /**
204 * The default behavior of this method is to return getLocale()
205 * on the wrapped response object.
206 */
207 public Locale getLocale() {
208 return this.response.getLocale();
209 }
210
211
212 }
213
214
215
216
217