KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > pentaho > ui > portlet > PortletRequestParameterProvider


1 /*
2  * Copyright 2006 Pentaho Corporation. All rights reserved.
3  * This software was developed by Pentaho Corporation and is provided under the terms
4  * of the Mozilla Public License, Version 1.1, or any later version. You may not use
5  * this file except in compliance with the license. If you need a copy of the license,
6  * please go to http://www.mozilla.org/MPL/MPL-1.1.txt. The Original Code is the Pentaho
7  * BI Platform. The Initial Developer is Pentaho Corporation.
8  *
9  * Software distributed under the Mozilla Public License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. Please refer to
11  * the license for the specific language governing your rights and limitations.
12  *
13  * @created Aug 2, 2005
14  * @author James Dixon
15  */

16
17 package org.pentaho.ui.portlet;
18
19 import java.util.Iterator JavaDoc;
20 import java.util.Map JavaDoc;
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) { //$NON-NLS-1$
37
String JavaDoc additionalParameters = portletRequest.getParameter("_PENTAHO_ADDITIONAL_PARAMS_"); //$NON-NLS-1$
38
int idx = additionalParameters.indexOf("?"); //$NON-NLS-1$
39
if (idx > 0) {
40                 additionalParameters = additionalParameters.substring(idx + 1);
41             }
42             Map JavaDoc additionalParms = HttpUtil.parseQueryString(additionalParameters);
43             setPortletRequestParameters(additionalParms);
44         }
45     }
46
47     /**
48      * Converts single value arrays to String parameters
49      *
50      */

51     private void setPortletRequestParameters( Map JavaDoc paramMap ) {
52         for ( Iterator JavaDoc it = paramMap.entrySet().iterator(); it.hasNext(); ) {
53             Map.Entry JavaDoc entry = (Map.Entry JavaDoc)it.next();
54             Object JavaDoc value = entry.getValue();
55             if (value != null) {
56                 if ( (value instanceof Object JavaDoc[]) && ( ((Object JavaDoc[])value).length == 1 ) ) {
57                     setParameter( (String JavaDoc)entry.getKey(), String.valueOf( ((Object JavaDoc[])value)[0] ) );
58                 }
59                 else {
60                     setParameter( (String JavaDoc)entry.getKey(), value );
61                 }
62             }
63         }
64     }
65
66     public PortletRequest getRequest() {
67         return portletRequest;
68     }
69 }
70
Popular Tags