1 23 package org.infoglue.deliver.portal.information; 24 25 import java.util.Arrays ; 26 import java.util.Collections ; 27 import java.util.Enumeration ; 28 import java.util.HashMap ; 29 import java.util.Iterator ; 30 import java.util.Map ; 31 import java.util.Vector ; 32 33 import javax.servlet.http.HttpServletRequest ; 34 import javax.servlet.http.HttpServletRequestWrapper ; 35 36 import org.apache.commons.logging.Log; 37 import org.apache.commons.logging.LogFactory; 38 import org.apache.pluto.om.window.PortletWindow; 39 import org.infoglue.deliver.portal.PortalControlURL; 40 41 45 public class ServletRequestIG extends HttpServletRequestWrapper { 46 private static final Log log = LogFactory.getLog(ServletRequestIG.class); 47 48 private Map paramMap; 49 private Map attributeMap = new HashMap (); 50 51 public ServletRequestIG(PortletWindow window, HttpServletRequest req) { 52 super(req); 53 54 PortalControlURL url = new PortalControlURL(req); 55 this.paramMap = url.getRenderParameterMap(window); 56 this.paramMap.putAll(url.getQueryParameterMap(window)); 58 if (log.isDebugEnabled()) { 59 StringBuffer str = new StringBuffer (); 60 for (Iterator it = paramMap.keySet().iterator(); it.hasNext();) { 61 String name = (String ) it.next(); 62 str.append(name); 63 str.append(": "); 64 str.append(Arrays.asList((String []) paramMap.get(name))); 65 if (it.hasNext()) 66 str.append(", "); 67 } 68 log.debug("Available params: " + str); 69 } 70 } 71 72 75 public String getParameter(String name) { 76 String [] values = (String []) paramMap.get(name); 77 if (values != null && values.length > 0) { 78 return values[0]; 79 } 80 return null; 81 } 82 83 86 public Map getParameterMap() { 87 return paramMap; 88 } 89 90 93 public Enumeration getParameterNames() { 94 return Collections.enumeration(paramMap.keySet()); 95 } 96 97 100 public String [] getParameterValues(String name) { 101 return (String []) paramMap.get(name); 102 } 103 104 107 public void setAttribute(String key, Object value) { 108 this.attributeMap.put(key, value); 109 } 110 111 114 public Object getAttribute(String name) { 115 Object o = attributeMap.get(name); 116 if (o == null) { 117 o = super.getAttribute(name); 118 } 119 if (o == null) { 120 o = super.getRequest().getAttribute(name); 121 } 122 return o; 123 } 124 125 128 public Enumeration getAttributeNames() { 129 Vector v = new Vector (); 130 131 for (Iterator iter = attributeMap.keySet().iterator(); iter.hasNext();) { 132 v.add(iter.next()); 133 } 134 for (Enumeration enumeration = super.getAttributeNames(); enumeration.hasMoreElements();) { 135 v.add(enumeration.nextElement()); 136 } 137 for (Enumeration enumeration = super.getRequest().getAttributeNames(); enumeration.hasMoreElements();) { 138 v.add(enumeration.nextElement()); 139 } 140 return v.elements(); 141 } 142 143 } 144 | Popular Tags |