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