1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 20 package javax.servlet; 21 22 import java.io.IOException; 23 import java.io.PrintWriter; 24 import java.util.Locale; 25 26 /** 27 * 28 * Provides a convenient implementation of the ServletResponse interface that 29 * can be subclassed by developers wishing to adapt the response from a Servlet. 30 * This class implements the Wrapper or Decorator pattern. Methods default to 31 * calling through to the wrapped response object. 32 * 33 * @author Various 34 * @version $Version$ 35 * @since v 2.3 36 * 37 * @see javax.servlet.ServletResponse 38 * 39 */ 40 41 42 public class ServletResponseWrapper implements ServletResponse { 43 private ServletResponse response; 44 /** 45 * Creates a ServletResponse adaptor wrapping the given response object. 46 * @throws java.lang.IllegalArgumentException if the response is null. 47 */ 48 49 50 public ServletResponseWrapper(ServletResponse response) { 51 if (response == null) { 52 throw new IllegalArgumentException("Response cannot be null"); 53 } 54 this.response = response; 55 } 56 57 /** 58 * Return the wrapped ServletResponse object. 59 */ 60 61 public ServletResponse getResponse() { 62 return this.response; 63 } 64 65 66 /** 67 * Sets the response being wrapped. 68 * @throws java.lang.IllegalArgumentException if the response is null. 69 */ 70 71 public void setResponse(ServletResponse response) { 72 if (response == null) { 73 throw new IllegalArgumentException("Response cannot be null"); 74 } 75 this.response = response; 76 } 77 78 /** 79 * The default behavior of this method is to call setCharacterEncoding(String charset) 80 * on the wrapped response object. 81 * 82 * @since 2.4 83 */ 84 85 public void setCharacterEncoding(String charset) { 86 this.response.setCharacterEncoding(charset); 87 } 88 89 /** 90 * The default behavior of this method is to return getCharacterEncoding() 91 * on the wrapped response object. 92 */ 93 94 public String getCharacterEncoding() { 95 return this.response.getCharacterEncoding(); 96 } 97 98 99 /** 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