1 16 package org.springframework.webflow.context.portlet; 17 18 import java.util.Iterator ; 19 20 import javax.portlet.PortletRequest; 21 22 import org.springframework.binding.collection.CompositeIterator; 23 import org.springframework.binding.collection.StringKeyedMapAdapter; 24 import org.springframework.web.portlet.multipart.MultipartActionRequest; 25 import org.springframework.webflow.core.collection.CollectionUtils; 26 27 33 public class PortletRequestParameterMap extends StringKeyedMapAdapter { 34 35 38 private PortletRequest request; 39 40 43 public PortletRequestParameterMap(PortletRequest request) { 44 this.request = request; 45 } 46 47 protected Object getAttribute(String key) { 48 if (request instanceof MultipartActionRequest) { 49 MultipartActionRequest multipartRequest = (MultipartActionRequest)request; 50 Object data = multipartRequest.getFileMap().get(key); 51 if (data != null) { 52 return data; 53 } 54 } 55 String [] parameters = request.getParameterValues(key); 56 if (parameters == null) { 57 return null; 58 } else if (parameters.length == 1) { 59 return parameters[0]; 60 } else { 61 return parameters; 62 } 63 } 64 65 protected void setAttribute(String key, Object value) { 66 throw new UnsupportedOperationException ("PortletRequest parameter maps are immutable"); 67 } 68 69 protected void removeAttribute(String key) { 70 throw new UnsupportedOperationException ("PortletRequest parameter maps are immutable"); 71 } 72 73 protected Iterator getAttributeNames() { 74 if (request instanceof MultipartActionRequest) { 75 MultipartActionRequest multipartRequest = (MultipartActionRequest)request; 76 CompositeIterator iterator = new CompositeIterator(); 77 iterator.add(multipartRequest.getFileMap().keySet().iterator()); 78 iterator.add(CollectionUtils.toIterator(request.getParameterNames())); 79 return iterator; 80 } 81 else { 82 return CollectionUtils.toIterator(request.getParameterNames()); 83 } 84 } 85 } | Popular Tags |