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 package javax.servlet;
021
022 import java.io.IOException;
023 import java.io.PrintWriter;
024 import java.util.Locale;
025
026 /**
027 *
028 * Provides a convenient implementation of the ServletResponse interface that
029 * can be subclassed by developers wishing to adapt the response from a Servlet.
030 * This class implements the Wrapper or Decorator pattern. Methods default to
031 * calling through to the wrapped response object.
032 *
033 * @author Various
034 * @version $Version$
035 * @since v 2.3
036 *
037 * @see javax.servlet.ServletResponse
038 *
039 */
040
041
042 public class ServletResponseWrapper implements ServletResponse {
043 private ServletResponse response;
044 /**
045 * Creates a ServletResponse adaptor wrapping the given response object.
046 * @throws java.lang.IllegalArgumentException if the response is null.
047 */
048
049
050 public ServletResponseWrapper(ServletResponse response) {
051 if (response == null) {
052 throw new IllegalArgumentException("Response cannot be null");
053 }
054 this.response = response;
055 }
056
057 /**
058 * Return the wrapped ServletResponse object.
059 */
060
061 public ServletResponse getResponse() {
062 return this.response;
063 }
064
065
066 /**
067 * Sets the response being wrapped.
068 * @throws java.lang.IllegalArgumentException if the response is null.
069 */
070
071 public void setResponse(ServletResponse response) {
072 if (response == null) {
073 throw new IllegalArgumentException("Response cannot be null");
074 }
075 this.response = response;
076 }
077
078 /**
079 * The default behavior of this method is to call setCharacterEncoding(String charset)
080 * on the wrapped response object.
081 *
082 * @since 2.4
083 */
084
085 public void setCharacterEncoding(String charset) {
086 this.response.setCharacterEncoding(charset);
087 }
088
089 /**
090 * The default behavior of this method is to return getCharacterEncoding()
091 * on the wrapped response object.
092 */
093
094 public String getCharacterEncoding() {
095 return this.response.getCharacterEncoding();
096 }
097
098
099 /**
100 * The default behavior of this method is to return getOutputStream()
101 * on the wrapped response object.
102 */
103
104 public ServletOutputStream getOutputStream() throws IOException {
105 return this.response.getOutputStream();
106 }
107
108 /**
109 * The default behavior of this method is to return getWriter()
110 * on the wrapped response object.
111 */
112
113
114 public PrintWriter getWriter() throws IOException {
115 return this.response.getWriter();
116 }
117
118 /**
119 * The default behavior of this method is to call setContentLength(int len)
120 * on the wrapped response object.
121 */
122
123 public void setContentLength(int len) {
124 this.response.setContentLength(len);
125 }
126
127 /**
128 * The default behavior of this method is to call setContentType(String type)
129 * on the wrapped response object.
130 */
131
132 public void setContentType(String type) {
133 this.response.setContentType(type);
134 }
135
136 /**
137 * The default behavior of this method is to return getContentType()
138 * on the wrapped response object.
139 *
140 * @since 2.4
141 */
142
143 public String getContentType() {
144 return this.response.getContentType();
145 }
146
147 /**
148 * The default behavior of this method is to call setBufferSize(int size)
149 * on the wrapped response object.
150 */
151 public void setBufferSize(int size) {
152 this.response.setBufferSize(size);
153 }
154
155 /**
156 * The default behavior of this method is to return getBufferSize()
157 * on the wrapped response object.
158 */
159 public int getBufferSize() {
160 return this.response.getBufferSize();
161 }
162
163 /**
164 * The default behavior of this method is to call flushBuffer()
165 * on the wrapped response object.
166 */
167
168 public void flushBuffer() throws IOException {
169 this.response.flushBuffer();
170 }
171
172 /**
173 * The default behavior of this method is to return isCommitted()
174 * on the wrapped response object.
175 */
176 public boolean isCommitted() {
177 return this.response.isCommitted();
178 }
179
180 /**
181 * The default behavior of this method is to call reset()
182 * on the wrapped response object.
183 */
184
185 public void reset() {
186 this.response.reset();
187 }
188
189 /**
190 * The default behavior of this method is to call resetBuffer()
191 * on the wrapped response object.
192 */
193
194 public void resetBuffer() {
195 this.response.resetBuffer();
196 }
197
198 /**
199 * The default behavior of this method is to call setLocale(Locale loc)
200 * on the wrapped response object.
201 */
202
203 public void setLocale(Locale loc) {
204 this.response.setLocale(loc);
205 }
206
207 /**
208 * The default behavior of this method is to return getLocale()
209 * on the wrapped response object.
210 */
211 public Locale getLocale() {
212 return this.response.getLocale();
213 }
214
215
216 }
217
218
219
220
221