View Javadoc
1   /*
2    * $Source$
3    * $Revision$
4    *
5    * Copyright (C) 2001 William Chesters
6    *
7    * Part of Melati (http://melati.org), a framework for the rapid
8    * development of clean, maintainable web applications.
9    *
10   * Melati is free software; Permission is granted to copy, distribute
11   * and/or modify this software under the terms either:
12   *
13   * a) the GNU General Public License as published by the Free Software
14   *    Foundation; either version 2 of the License, or (at your option)
15   *    any later version,
16   *
17   *    or
18   *
19   * b) any version of the Melati Software License, as published
20   *    at http://melati.org
21   *
22   * You should have received a copy of the GNU General Public License and
23   * the Melati Software License along with this program;
24   * if not, write to the Free Software Foundation, Inc.,
25   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA to obtain the
26   * GNU General Public License and visit http://melati.org to obtain the
27   * Melati Software License.
28   *
29   * Feel free to contact the Developers of Melati (http://melati.org),
30   * if you would like to work out a different arrangement than the options
31   * outlined here.  It is our intention to allow Melati to be used by as
32   * wide an audience as possible.
33   *
34   * This program is distributed in the hope that it will be useful,
35   * but WITHOUT ANY WARRANTY; without even the implied warranty of
36   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37   * GNU General Public License for more details.
38   *
39   * Contact details for copyright holder:
40   *
41   *     William Chesters <williamc At paneris.org>
42   *     http://paneris.org/~williamc
43   *     Obrechtstraat 114, 2517VX Den Haag, The Netherlands
44   */
45  
46  package org.melati.util;
47  
48  import java.util.Map;
49  import java.util.Enumeration;
50  import java.util.Locale;
51  import javax.servlet.RequestDispatcher;
52  import javax.servlet.http.HttpServletRequest;
53  
54   /**
55    * Enables Melati to compile, without warnings, with the Servlet API 
56    * versions 2.0 to 2.5.
57    * 
58    * However the database listener and admin tests rely upon 2.4 features.
59    *
60    */
61  
62  public class DelegatedHttpServletRequest implements HttpServletRequest {
63    
64    protected HttpServletRequest peer;
65    
66    /**
67     * @param peer
68     */
69    public DelegatedHttpServletRequest(HttpServletRequest peer) {
70      this.peer = peer;
71    }
72  
73    /**
74     *  Accessor to allow one to retrieve the wrapped 
75     *  HttpServletRequest.
76     *
77     *  @return Wrapped HttpServletRequest
78     */
79   public HttpServletRequest getDelegate() {
80     return peer;
81   }
82  
83    
84   /*
85    * Core methods common to all APIs; call these directly.
86    */
87  
88    /**
89     * @see javax.servlet.http.HttpServletRequest#getAuthType()
90     */
91    public String getAuthType() {
92      return peer.getAuthType();
93    }
94    /**
95     * @see javax.servlet.http.HttpServletRequest#getCookies()
96     */
97    public javax.servlet.http.Cookie[] getCookies() {
98      return peer.getCookies();
99    }
100   /**
101    * @see javax.servlet.http.HttpServletRequest#getDateHeader(String)
102    */
103   public long getDateHeader(String a) {
104     return peer.getDateHeader(a);
105   }
106   /**
107    * @see javax.servlet.http.HttpServletRequest#getHeader(String)
108    */
109   public String getHeader(String a) {
110     return peer.getHeader(a);
111   }
112   /**
113    * @see javax.servlet.http.HttpServletRequest#getHeaderNames()
114    */
115   @SuppressWarnings("unchecked")
116   public java.util.Enumeration<String> getHeaderNames() {
117     return peer.getHeaderNames();
118   }
119   /**
120    * @see javax.servlet.http.HttpServletRequest#getIntHeader(String)
121    */
122   public int getIntHeader(String a) {
123     return peer.getIntHeader(a);
124   }
125   /**
126    * @see javax.servlet.http.HttpServletRequest#getMethod()
127    */
128   public String getMethod() {
129     return peer.getMethod();
130   }
131   /**
132    * @see javax.servlet.http.HttpServletRequest#getPathInfo()
133    */
134   public String getPathInfo() {
135     return peer.getPathInfo();
136   }
137   /**
138    * @see javax.servlet.http.HttpServletRequest#getPathTranslated()
139    */
140   public String getPathTranslated() {
141     return peer.getPathTranslated();
142   }
143   /**
144    * @see javax.servlet.http.HttpServletRequest#getQueryString()
145    */
146   public String getQueryString() {
147     return peer.getQueryString();
148   }
149   /**
150    * @see javax.servlet.http.HttpServletRequest#getRemoteUser()
151    */
152   public String getRemoteUser() {
153     return peer.getRemoteUser();
154   }
155   /**
156    * @see javax.servlet.http.HttpServletRequest#getRequestURI()
157    */
158   public String getRequestURI() {
159     return peer.getRequestURI();
160   }
161   /**
162    * @see javax.servlet.http.HttpServletRequest#getRequestedSessionId()
163    */
164   public String getRequestedSessionId() {
165     return peer.getRequestedSessionId();
166   }
167   /**
168    * @see javax.servlet.http.HttpServletRequest#getServletPath()
169    */
170   public String getServletPath() {
171     return peer.getServletPath();
172   }
173   /**
174    * @see javax.servlet.http.HttpServletRequest#getSession(boolean)
175    */
176   public javax.servlet.http.HttpSession getSession(boolean a) {
177     return peer.getSession(a);
178   }
179 
180   /**
181    * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdValid()
182    */
183   public boolean isRequestedSessionIdValid() {
184     return peer.isRequestedSessionIdValid();
185   }
186   /**
187    * @see javax.servlet.ServletRequest#getAttribute(String)
188    */
189   public java.lang.Object getAttribute(String a) {
190     return peer.getAttribute(a);
191   }
192   /**
193    * @see javax.servlet.ServletRequest#getCharacterEncoding()
194    */
195   public String getCharacterEncoding() {
196     return peer.getCharacterEncoding();
197   }
198   /**
199    * @see javax.servlet.ServletRequest#getContentLength()
200    */
201   public int getContentLength() {
202     return peer.getContentLength();
203   }
204   /**
205    * @see javax.servlet.ServletRequest#getContentType()
206    */
207   public String getContentType() {
208     return peer.getContentType();
209   }
210   /**
211    * @see javax.servlet.ServletRequest#getInputStream()
212    */
213   public javax.servlet.ServletInputStream getInputStream() 
214         throws java.io.IOException {
215     return peer.getInputStream();
216   }
217   /**
218    * @see javax.servlet.ServletRequest#getParameter(String)
219    */
220   public String getParameter(String a) {
221     return peer.getParameter(a);
222   }
223   /**
224    * @see javax.servlet.ServletRequest#getParameterNames()
225    */
226   @SuppressWarnings("unchecked")
227   public java.util.Enumeration<String> getParameterNames() {
228     return peer.getParameterNames();
229   }
230   /**
231    * @see javax.servlet.ServletRequest#getParameterValues(String)
232    */
233   public String[] getParameterValues(String a) {
234     return peer.getParameterValues(a);
235   }
236   /**
237    * @see javax.servlet.ServletRequest#getProtocol()
238    */
239   public String getProtocol() {
240     return peer.getProtocol();
241   }
242   /**
243    * @see javax.servlet.ServletRequest#getReader()
244    */
245   public java.io.BufferedReader getReader() throws java.io.IOException {
246     return peer.getReader();
247   }
248 
249   /**
250    * @see javax.servlet.ServletRequest#getRemoteAddr()
251    */
252   public String getRemoteAddr() {
253     return peer.getRemoteAddr();
254   }
255   /**
256    * @see javax.servlet.ServletRequest#getRemoteHost()
257    */
258   public String getRemoteHost() {
259     return peer.getRemoteHost();
260   }
261   /**
262    * @see javax.servlet.ServletRequest#getScheme()
263    */
264   public String getScheme() {
265     return peer.getScheme();
266   }
267   /**
268    * @see javax.servlet.ServletRequest#getServerName()
269    */
270   public String getServerName() {
271     return peer.getServerName();
272   }
273   /**
274    * @see javax.servlet.ServletRequest#getServerPort()
275    */
276   public int getServerPort() {
277     return peer.getServerPort();
278   }
279 
280   /**
281    * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdFromCookie()
282    */
283   public boolean isRequestedSessionIdFromCookie() {
284     return peer.isRequestedSessionIdFromCookie();
285   }
286 
287   //
288   //  Deprecated methods, may disappear.
289   //
290   
291   /**
292    * @deprecated Servlet API 2.1
293    *  
294    * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdFromUrl()
295    */
296   public boolean isRequestedSessionIdFromUrl() {
297     return peer.isRequestedSessionIdFromUrl();
298   }
299   /**
300    * @deprecated Servlet API 2.1
301    *                
302    * @see javax.servlet.ServletRequest#getRealPath(String)
303    */
304   public String getRealPath(String a) {
305     return peer.getRealPath(a);
306   }
307 
308   //
309   // Servlet API 2.1 extensions
310   //
311   
312   /**
313    * @see javax.servlet.http.HttpServletRequest#getUserPrincipal()
314    */
315   public java.security.Principal getUserPrincipal() {
316     return peer.getUserPrincipal();
317   }
318   /**
319    * @see javax.servlet.http.HttpServletRequest#getContextPath()
320    */
321   public String getContextPath() {
322     return peer.getContextPath();
323   }
324   /**
325    * @see javax.servlet.http.HttpServletRequest#getHeaders(String)
326    */
327   @SuppressWarnings("unchecked")
328   public java.util.Enumeration<String> getHeaders(String name) {
329     return peer.getHeaders(name);
330   }
331   /**
332    * @see javax.servlet.http.HttpServletRequest#getSession()
333    */
334   public javax.servlet.http.HttpSession getSession() {
335     return peer.getSession();
336   }
337   /**
338    * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdFromURL()
339    */
340   public boolean isRequestedSessionIdFromURL() {
341     return peer.isRequestedSessionIdFromURL();
342   }
343   
344   //
345   // Servlet API 2.2 extensions
346   //
347   
348   /**
349    * @see javax.servlet.http.HttpServletRequest#isUserInRole(String)
350    */
351   public boolean isUserInRole(String a) {
352     return peer.isUserInRole(a);
353   }
354   /**
355    * @see javax.servlet.ServletRequest#getAttributeNames()
356    */
357   @SuppressWarnings("unchecked")
358   public Enumeration<String> getAttributeNames() {
359     return peer.getAttributeNames();
360   }
361   /**
362    * @see javax.servlet.ServletRequest#getLocale()
363    */
364   public Locale getLocale()  {
365     return peer.getLocale();
366   }
367   /**
368    * @see javax.servlet.ServletRequest#getLocales()
369    */
370   @SuppressWarnings("unchecked")
371   public Enumeration<Locale> getLocales() {
372     return peer.getLocales();
373   }
374 
375   /**
376    * @see javax.servlet.ServletRequest#getRequestDispatcher(String)
377    */
378   public RequestDispatcher getRequestDispatcher(String arg) {
379     return peer.getRequestDispatcher(arg);
380   }
381   /**
382    * @see javax.servlet.ServletRequest#isSecure()
383    */
384   public boolean isSecure() {
385     return peer.isSecure();
386   }
387   /**
388    * @see javax.servlet.ServletRequest#removeAttribute(String)
389    */
390   public void removeAttribute(String arg) {
391     peer.removeAttribute(arg);
392   }
393   /**
394    * @see javax.servlet.ServletRequest#setAttribute(String, java.lang.Object)
395    */
396   public void setAttribute(String arg1, Object arg2) {
397     peer.setAttribute(arg1, arg2);
398   }
399   
400   //
401   //  Servlet 2.3 extensions
402   //
403 
404   /**
405    * @see javax.servlet.http.HttpServletRequest#getRequestURL()
406    */
407   public StringBuffer getRequestURL() {
408     return peer.getRequestURL();
409   }
410 
411   /**
412    * @see javax.servlet.ServletRequest#setCharacterEncoding(String)
413    */
414   public void setCharacterEncoding (String s) throws java.io.UnsupportedEncodingException {
415     peer.setCharacterEncoding(s);
416   }
417 
418   /**
419    * @see javax.servlet.ServletRequest#getParameterMap()
420    */
421   @SuppressWarnings("unchecked")
422   public Map<String, String[]> getParameterMap () {
423     return peer.getParameterMap();
424   }
425 
426   //
427   //  Servlet 2.4 extensions
428   //
429 
430   /**
431    * @see javax.servlet.ServletRequest#getLocalAddr()
432    */
433   public String getLocalAddr() {
434     return peer.getLocalAddr();
435   }
436 
437   /**
438    * @see javax.servlet.ServletRequest#getLocalName()
439    */
440   public String getLocalName() {
441     return peer.getLocalName();    
442   }
443 
444   /**
445    * @see javax.servlet.ServletRequest#getLocalPort()
446    */
447   public int getLocalPort() {
448     return peer.getLocalPort();    
449   }
450 
451   /**
452    * @see javax.servlet.ServletRequest#getRemotePort()
453    */
454   public int getRemotePort() {
455     return peer.getRemotePort();        
456   }
457 
458   //
459   //  There are no Servlet 2.5 extensions
460   //
461 }
462 
463 
464 
465 
466 
467 
468 
469 
470 
471 
472 
473 
474 
475 
476