KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > webflow > context > servlet > HttpServletRequestParameterMap


1 /*
2  * Copyright 2002-2006 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */

16 package org.springframework.webflow.context.servlet;
17
18 import java.util.Iterator JavaDoc;
19
20 import javax.servlet.http.HttpServletRequest JavaDoc;
21
22 import org.springframework.binding.collection.CompositeIterator;
23 import org.springframework.binding.collection.StringKeyedMapAdapter;
24 import org.springframework.web.multipart.MultipartHttpServletRequest;
25 import org.springframework.webflow.core.collection.CollectionUtils;
26
27 /**
28  * Map backed by the Servlet HTTP request parameter map for accessing request
29  * parameters. Also provides support for multi-part requests, providing
30  * transparent access to the request "fileMap" as a request parameter entry.
31  *
32  * @author Keith Donald
33  */

34 public class HttpServletRequestParameterMap extends StringKeyedMapAdapter {
35
36     /**
37      * The wrapped HTTP request.
38      */

39     private HttpServletRequest JavaDoc request;
40
41     /**
42      * Create a new map wrapping the parameters of given request.
43      */

44     public HttpServletRequestParameterMap(HttpServletRequest JavaDoc request) {
45         this.request = request;
46     }
47
48     protected Object JavaDoc getAttribute(String JavaDoc key) {
49         if (request instanceof MultipartHttpServletRequest) {
50             MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
51             Object JavaDoc data = multipartRequest.getFileMap().get(key);
52             if (data != null) {
53                 return data;
54             }
55         }
56         String JavaDoc[] parameters = request.getParameterValues(key);
57         if (parameters == null) {
58             return null;
59         } else if (parameters.length == 1) {
60             return parameters[0];
61         } else {
62             return parameters;
63         }
64     }
65
66     protected void setAttribute(String JavaDoc key, Object JavaDoc value) {
67         throw new UnsupportedOperationException JavaDoc("HttpServletRequest parameter maps are immutable");
68     }
69
70     protected void removeAttribute(String JavaDoc key) {
71         throw new UnsupportedOperationException JavaDoc("HttpServletRequest parameter maps are immutable");
72     }
73
74     protected Iterator JavaDoc getAttributeNames() {
75         if (request instanceof MultipartHttpServletRequest) {
76             MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
77             CompositeIterator iterator = new CompositeIterator();
78             iterator.add(multipartRequest.getFileMap().keySet().iterator());
79             iterator.add(CollectionUtils.toIterator(request.getParameterNames()));
80             return iterator;
81         }
82         else {
83             return CollectionUtils.toIterator(request.getParameterNames());
84         }
85     }
86 }
Popular Tags