View Javadoc

1   
2   
3   /*
4    * The contents of this file are subject to the terms
5    * of the Common Development and Distribution License
6    * (the "License").  You may not use this file except
7    * in compliance with the License.
8    *
9    * You can obtain a copy of the license at
10   * glassfish/bootstrap/legal/CDDLv1.0.txt or
11   * https://glassfish.dev.java.net/public/CDDLv1.0.html.
12   * See the License for the specific language governing
13   * permissions and limitations under the License.
14   *
15   * When distributing Covered Code, include this CDDL
16   * HEADER in each file and include the License file at
17   * glassfish/bootstrap/legal/CDDLv1.0.txt.  If applicable,
18   * add the following below this CDDL HEADER, with the
19   * fields enclosed by brackets "[]" replaced with your
20   * own identifying information: Portions Copyright [yyyy]
21   * [name of copyright owner]
22   *
23   * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
24   *
25   * Portions Copyright Apache Software Foundation.
26   */
27  
28  package javax.servlet;
29  
30  import java.io.BufferedReader;
31  import java.io.IOException;
32  import java.util.Enumeration;
33  import java.util.Locale;
34  import java.util.Map;
35  
36  
37  
38  /**
39   * 
40   * Provides a convenient implementation of the ServletRequest interface that
41   * can be subclassed by developers wishing to adapt the request to a Servlet.
42   * This class implements the Wrapper or Decorator pattern. Methods default to
43   * calling through to the wrapped request object.
44    * @since	v 2.3
45   * 
46   * 
47   *
48   * @see 	javax.servlet.ServletRequest
49   *
50   */
51  
52  public class ServletRequestWrapper implements ServletRequest {
53      private ServletRequest request;
54  
55  	/**
56  	* Creates a ServletRequest adaptor wrapping the given request object. 
57  	* @throws java.lang.IllegalArgumentException if the request is null
58  	*/
59  
60      public ServletRequestWrapper(ServletRequest request) {
61  	if (request == null) {
62  	    throw new IllegalArgumentException("Request cannot be null");   
63  	}
64  	this.request = request;
65      }
66  
67  	/**
68  	* Return the wrapped request object.
69  	*/
70  	public ServletRequest getRequest() {
71  		return this.request;
72  	}
73  	
74  	/**
75  	* Sets the request object being wrapped. 
76  	* @throws java.lang.IllegalArgumentException if the request is null.
77  	*/
78  	
79  	public void setRequest(ServletRequest request) {
80  	    if (request == null) {
81  		throw new IllegalArgumentException("Request cannot be null");
82  	    }
83  	    this.request = request;
84  	}
85  
86      /**
87       *
88       * The default behavior of this method is to call getAttribute(String name)
89       * on the wrapped request object.
90       */
91  
92      public Object getAttribute(String name) {
93  	return this.request.getAttribute(name);
94  	}
95      
96      
97  
98      /**
99       * The default behavior of this method is to return getAttributeNames()
100      * on the wrapped request object.
101      */
102 
103     public Enumeration getAttributeNames() {
104 	return this.request.getAttributeNames();
105 	}    
106     
107     
108     
109     /**
110       * The default behavior of this method is to return getCharacterEncoding()
111      * on the wrapped request object.
112      */
113 
114     public String getCharacterEncoding() {
115 	return this.request.getCharacterEncoding();
116 	}
117 	
118     /**
119       * The default behavior of this method is to set the character encoding
120      * on the wrapped request object.
121      */
122 
123     public void setCharacterEncoding(String enc) throws java.io.UnsupportedEncodingException {
124 	this.request.setCharacterEncoding(enc);
125 	}
126     
127     
128     /**
129       * The default behavior of this method is to return getContentLength()
130      * on the wrapped request object.
131      */
132 
133     public int getContentLength() {
134 	return this.request.getContentLength();
135     }
136     
137     
138     
139 
140        /**
141       * The default behavior of this method is to return getContentType()
142      * on the wrapped request object.
143      */
144     public String getContentType() {
145 	return this.request.getContentType();
146     }
147     
148     
149     
150 
151      /**
152       * The default behavior of this method is to return getInputStream()
153      * on the wrapped request object.
154      */
155 
156     public ServletInputStream getInputStream() throws IOException {
157 	return this.request.getInputStream();
158 	}
159      
160     
161     
162 
163     /**
164       * The default behavior of this method is to return getParameter(String name)
165      * on the wrapped request object.
166      */
167 
168     public String getParameter(String name) {
169 	return this.request.getParameter(name);
170     }
171     
172     /**
173       * The default behavior of this method is to return getParameterMap()
174      * on the wrapped request object.
175      */
176     public Map getParameterMap() {
177 	return this.request.getParameterMap();
178     }
179     
180     
181     
182 
183     /**
184       * The default behavior of this method is to return getParameterNames()
185      * on the wrapped request object.
186      */
187      
188     public Enumeration getParameterNames() {
189 	return this.request.getParameterNames();
190     }
191     
192     
193     
194 
195        /**
196       * The default behavior of this method is to return getParameterValues(String name)
197      * on the wrapped request object.
198      */
199     public String[] getParameterValues(String name) {
200 	return this.request.getParameterValues(name);
201 	}
202     
203     
204     
205 
206      /**
207       * The default behavior of this method is to return getProtocol()
208      * on the wrapped request object.
209      */
210     
211     public String getProtocol() {
212 	return this.request.getProtocol();
213 	}
214     
215     
216     
217 
218     /**
219       * The default behavior of this method is to return getScheme()
220      * on the wrapped request object.
221      */
222     
223 
224     public String getScheme() {
225 	return this.request.getScheme();
226 	}
227     
228     
229     
230 
231     /**
232       * The default behavior of this method is to return getServerName()
233      * on the wrapped request object.
234      */
235     public String getServerName() {
236 	return this.request.getServerName();
237 	}
238     
239     
240     
241 
242    /**
243       * The default behavior of this method is to return getServerPort()
244      * on the wrapped request object.
245      */
246 
247     public int getServerPort() {
248 	return this.request.getServerPort();
249 	}
250     
251     
252     
253   /**
254       * The default behavior of this method is to return getReader()
255      * on the wrapped request object.
256      */
257 
258     public BufferedReader getReader() throws IOException {
259 	return this.request.getReader();
260 	}
261     
262     
263     
264 
265     /**
266       * The default behavior of this method is to return getRemoteAddr()
267      * on the wrapped request object.
268      */
269     
270     public String getRemoteAddr() {
271 	return this.request.getRemoteAddr();
272     }
273     
274     
275     
276 
277       /**
278       * The default behavior of this method is to return getRemoteHost()
279      * on the wrapped request object.
280      */
281 
282     public String getRemoteHost() {
283 	return this.request.getRemoteHost();
284     }
285     
286     
287     
288 
289     /**
290       * The default behavior of this method is to return setAttribute(String name, Object o)
291      * on the wrapped request object.
292      */
293 
294     public void setAttribute(String name, Object o) {
295 	this.request.setAttribute(name, o);
296     }
297     
298     
299     
300 
301     /**
302       * The default behavior of this method is to call removeAttribute(String name)
303      * on the wrapped request object.
304      */
305     public void removeAttribute(String name) {
306 	this.request.removeAttribute(name);
307     }
308     
309     
310     
311 
312    /**
313       * The default behavior of this method is to return getLocale()
314      * on the wrapped request object.
315      */
316 
317     public Locale getLocale() {
318 	return this.request.getLocale();
319     }
320     
321     
322     
323 
324      /**
325       * The default behavior of this method is to return getLocales()
326      * on the wrapped request object.
327      */
328 
329     public Enumeration getLocales() {
330 	return this.request.getLocales();
331     }
332     
333     
334     
335 
336     /**
337       * The default behavior of this method is to return isSecure()
338      * on the wrapped request object.
339      */
340 
341     public boolean isSecure() {
342 	return this.request.isSecure();
343     }
344     
345     
346     
347 
348     /**
349       * The default behavior of this method is to return getRequestDispatcher(String path)
350      * on the wrapped request object.
351      */
352 
353     public RequestDispatcher getRequestDispatcher(String path) {
354 	return this.request.getRequestDispatcher(path);
355     }
356     
357     
358     
359 
360     /**
361       * The default behavior of this method is to return getRealPath(String path)
362      * on the wrapped request object.
363      */
364 
365     public String getRealPath(String path) {
366 	return this.request.getRealPath(path);
367     }
368     
369     /**
370      * The default behavior of this method is to return
371      * getRemotePort() on the wrapped request object.
372      *
373      * @since 2.4
374      */    
375     public int getRemotePort(){
376         return this.request.getRemotePort();
377     }
378 
379 
380     /**
381      * The default behavior of this method is to return
382      * getLocalName() on the wrapped request object.
383      *
384      * @since 2.4
385      */
386     public String getLocalName(){
387         return this.request.getLocalName();
388     }
389 
390     /**
391      * The default behavior of this method is to return
392      * getLocalAddr() on the wrapped request object.
393      *
394      * @since 2.4
395      */       
396     public String getLocalAddr(){
397         return this.request.getLocalAddr();
398     }
399 
400 
401     /**
402      * The default behavior of this method is to return
403      * getLocalPort() on the wrapped request object.
404      *
405      * @since 2.4
406      */
407     public int getLocalPort(){
408         return this.request.getLocalPort();
409     }
410     
411 }
412