Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: jac/aspects/gui/web/MultiMapJacRequest.java


1   /*
2     Copyright (C) 2002 Laurent Martelli <laurent@aopsys.com>
3   
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU Lesser General Public License as
6     published by the Free Software Foundation; either version 2 of the
7     License, or (at your option) any later version.
8   
9     This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU Lesser General Public License for more details.
13  
14    You should have received a copy of the GNU Lesser General Public License
15    along with this program; if not, write to the Free Software
16    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
17  
18  package jac.aspects.gui.web;
19  
20  import java.util.Iterator;
21  import java.util.Map;
22  import javax.servlet.http.HttpServletRequest;
23  import org.mortbay.util.MultiMap;
24  
25  /**
26   * This class represents a multi-part HttpRequest.
27   */
28  public class MultiMapJacRequest extends AbstractJacRequest implements JacRequest {
29     MultiMap parameters;
30  
31     /**
32      * Parameters are initialized from the given map.
33      */
34     public MultiMapJacRequest(MultiMap map, HttpServletRequest servletRequest) {
35        super(servletRequest);
36        this.parameters = map;
37        readParamsFromRequest(servletRequest);
38     }
39  
40     public MultiMapJacRequest(MultiMap map, HttpServletRequest servletRequest,
41                               JacRequest parent) {
42        this(map,servletRequest);
43        this.parent = parent;
44     }
45  
46     /**
47      * Parameters are copied from the HttpServletRequest.
48      */
49     public MultiMapJacRequest(HttpServletRequest servletRequest) {
50        super(servletRequest);
51        parameters = new MultiMap();
52        readParamsFromRequest(servletRequest);
53     }
54  
55     protected void readParamsFromRequest(HttpServletRequest servletRequest) {
56        // We must copy the parameters because HttpServletRequest
57        // objects are recycled by Jetty
58        Map servletParameters = servletRequest.getParameterMap();
59        Iterator it = servletParameters.keySet().iterator();
60        while(it.hasNext()) {
61           String name = (String)it.next();
62           String[] values = (String[])servletParameters.get(name);
63           parameters.putValues(name,values);
64        }
65     }
66  
67     public Object getParameter(String name) {
68        if (parameters.containsKey(name))
69           return parameters.getString(name);
70        else if (parent!=null)
71           return parent.getParameter(name);
72        else
73           return null;
74     }
75  
76  }