001// Copyright (C) 1998-2001 by Jason Hunter <jhunter_AT_acm_DOT_org>.
002// All rights reserved.  Use of this class is limited.
003// Please see the LICENSE for more information.
004
005package com.oreilly.servlet;
006
007import java.io.*;
008import java.util.*;
009import javax.servlet.*;
010import javax.servlet.http.*;
011
012/**
013 * A request wrapper to support MultipartFilter.  
014 * The filter capability requires Servlet API 2.3.
015 * <p>
016 * See Jason Hunter's June 2001 article in JavaWorld for a full explanation of 
017 * the class usage.
018 *
019 * @author <b>Jason Hunter</b>, Copyright &#169; 2001
020 * @version 1.0, 2001/06/19
021 */
022public class MultipartWrapper extends HttpServletRequestWrapper {
023
024  MultipartRequest mreq = null;
025
026  public MultipartWrapper(HttpServletRequest req, String dir)
027                                     throws IOException {
028    super(req);
029    mreq = new MultipartRequest(req, dir);
030  }
031
032  // Methods to replace HSR methods
033  public Enumeration getParameterNames() {
034    return mreq.getParameterNames();
035  }
036  public String getParameter(String name) {
037    return mreq.getParameter(name);
038  }
039  public String[] getParameterValues(String name) {
040    return mreq.getParameterValues(name);
041  }
042  public Map getParameterMap() {
043    Map map = new HashMap();
044    Enumeration myEnum = getParameterNames();
045    while (myEnum.hasMoreElements()) {
046      String name = (String) myEnum.nextElement();
047      map.put(name, mreq.getParameterValues(name));
048    }
049    return map;
050  }
051
052  // Methods only in MultipartRequest
053  public Enumeration getFileNames() {
054    return mreq.getFileNames();
055  }
056  public String getFilesystemName(String name) {
057    return mreq.getFilesystemName(name);
058  }
059  public String getContentType(String name) {
060    return mreq.getContentType(name);
061  }
062  public File getFile(String name) {
063    return mreq.getFile(name);
064  }
065}