1 16 17 package org.pentaho.ui.portlet; 18 19 import java.util.Iterator ; 20 import java.util.Map ; 21 22 import javax.portlet.PortletRequest; 23 24 import org.pentaho.core.solution.IParameterSetter; 25 import org.pentaho.core.solution.SimpleParameterProvider; 26 import org.pentaho.util.HttpUtil; 27 28 public class PortletRequestParameterProvider extends SimpleParameterProvider implements IParameterSetter { 29 30 private PortletRequest portletRequest; 31 32 public PortletRequestParameterProvider(PortletRequest portletRequest) { 33 this.portletRequest = portletRequest; 34 setPortletRequestParameters(portletRequest.getParameterMap()); 35 36 if (portletRequest.getParameter("_PENTAHO_ADDITIONAL_PARAMS_") != null) { String additionalParameters = portletRequest.getParameter("_PENTAHO_ADDITIONAL_PARAMS_"); int idx = additionalParameters.indexOf("?"); if (idx > 0) { 40 additionalParameters = additionalParameters.substring(idx + 1); 41 } 42 Map additionalParms = HttpUtil.parseQueryString(additionalParameters); 43 setPortletRequestParameters(additionalParms); 44 } 45 } 46 47 51 private void setPortletRequestParameters( Map paramMap ) { 52 for ( Iterator it = paramMap.entrySet().iterator(); it.hasNext(); ) { 53 Map.Entry entry = (Map.Entry )it.next(); 54 Object value = entry.getValue(); 55 if (value != null) { 56 if ( (value instanceof Object []) && ( ((Object [])value).length == 1 ) ) { 57 setParameter( (String )entry.getKey(), String.valueOf( ((Object [])value)[0] ) ); 58 } 59 else { 60 setParameter( (String )entry.getKey(), value ); 61 } 62 } 63 } 64 } 65 66 public PortletRequest getRequest() { 67 return portletRequest; 68 } 69 } 70 | Popular Tags |