1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package javax.servlet;
18
19 import java.io.IOException;
20 import java.io.PrintWriter;
21 import java.util.Locale;
22
23 /**
24 *
25 * Provides a convenient implementation of the ServletResponse interface that
26 * can be subclassed by developers wishing to adapt the response from a Servlet.
27 * This class implements the Wrapper or Decorator pattern. Methods default to
28 * calling through to the wrapped response object.
29 *
30 * @author Various
31 * @version $Version$
32 * @since v 2.3
33 *
34 * @see javax.servlet.ServletResponse
35 *
36 */
37
38
39 public class ServletResponseWrapper implements ServletResponse {
40 private ServletResponse response;
41 /**
42 * Creates a ServletResponse adaptor wrapping the given response object.
43 * @throws java.lang.IllegalArgumentException if the response is null.
44 */
45
46
47 public ServletResponseWrapper(ServletResponse response) {
48 if (response == null) {
49 throw new IllegalArgumentException("Response cannot be null");
50 }
51 this.response = response;
52 }
53
54 /**
55 * Return the wrapped ServletResponse object.
56 */
57
58 public ServletResponse getResponse() {
59 return this.response;
60 }
61
62
63 /**
64 * Sets the response being wrapped.
65 * @throws java.lang.IllegalArgumentException if the response is null.
66 */
67
68 public void setResponse(ServletResponse response) {
69 if (response == null) {
70 throw new IllegalArgumentException("Response cannot be null");
71 }
72 this.response = response;
73 }
74
75 /**
76 * The default behavior of this method is to call setCharacterEncoding(String charset)
77 * on the wrapped response object.
78 *
79 * @since 2.4
80 */
81
82 public void setCharacterEncoding(String charset) {
83 this.response.setCharacterEncoding(charset);
84 }
85
86 /**
87 * The default behavior of this method is to return getCharacterEncoding()
88 * on the wrapped response object.
89 */
90
91 public String getCharacterEncoding() {
92 return this.response.getCharacterEncoding();
93 }
94
95
96 /**
97 * The default behavior of this method is to return getOutputStream()
98 * on the wrapped response object.
99 */
100
101 public ServletOutputStream getOutputStream() throws IOException {
102 return this.response.getOutputStream();
103 }
104
105 /**
106 * The default behavior of this method is to return getWriter()
107 * on the wrapped response object.
108 */
109
110
111 public PrintWriter getWriter() throws IOException {
112 return this.response.getWriter();
113 }
114
115 /**
116 * The default behavior of this method is to call setContentLength(int len)
117 * on the wrapped response object.
118 */
119
120 public void setContentLength(int len) {
121 this.response.setContentLength(len);
122 }
123
124 /**
125 * The default behavior of this method is to call setContentType(String type)
126 * on the wrapped response object.
127 */
128
129 public void setContentType(String type) {
130 this.response.setContentType(type);
131 }
132
133 /**
134 * The default behavior of this method is to return getContentType()
135 * on the wrapped response object.
136 *
137 * @since 2.4
138 */
139
140 public String getContentType() {
141 return this.response.getContentType();
142 }
143
144 /**
145 * The default behavior of this method is to call setBufferSize(int size)
146 * on the wrapped response object.
147 */
148 public void setBufferSize(int size) {
149 this.response.setBufferSize(size);
150 }
151
152 /**
153 * The default behavior of this method is to return getBufferSize()
154 * on the wrapped response object.
155 */
156 public int getBufferSize() {
157 return this.response.getBufferSize();
158 }
159
160 /**
161 * The default behavior of this method is to call flushBuffer()
162 * on the wrapped response object.
163 */
164
165 public void flushBuffer() throws IOException {
166 this.response.flushBuffer();
167 }
168
169 /**
170 * The default behavior of this method is to return isCommitted()
171 * on the wrapped response object.
172 */
173 public boolean isCommitted() {
174 return this.response.isCommitted();
175 }
176
177 /**
178 * The default behavior of this method is to call reset()
179 * on the wrapped response object.
180 */
181
182 public void reset() {
183 this.response.reset();
184 }
185
186 /**
187 * The default behavior of this method is to call resetBuffer()
188 * on the wrapped response object.
189 */
190
191 public void resetBuffer() {
192 this.response.resetBuffer();
193 }
194
195 /**
196 * The default behavior of this method is to call setLocale(Locale loc)
197 * on the wrapped response object.
198 */
199
200 public void setLocale(Locale loc) {
201 this.response.setLocale(loc);
202 }
203
204 /**
205 * The default behavior of this method is to return getLocale()
206 * on the wrapped response object.
207 */
208 public Locale getLocale() {
209 return this.response.getLocale();
210 }
211
212
213 }
214
215
216
217
218