1
22
23
41
42 package com.liferay.portal.portletcontainer;
43
44 import com.liferay.portal.kernel.util.ParamUtil;
45 import com.liferay.portal.util.PortalUtil;
46 import com.liferay.portlet.PortletQName;
47 import com.liferay.portlet.PortletQNameUtil;
48
49 import com.sun.portal.container.ChannelMode;
50 import com.sun.portal.container.ChannelState;
51 import com.sun.portal.container.ChannelURLType;
52 import com.sun.portal.container.WindowRequestReader;
53
54 import java.util.HashMap;
55 import java.util.Map;
56 import java.util.Set;
57
58 import javax.servlet.http.HttpServletRequest;
59
60
67 public class PortletWindowRequestReader implements WindowRequestReader {
68
69 public PortletWindowRequestReader(boolean facesPortlet) {
70 _facesPortlet = facesPortlet;
71 }
72
73 public String getCacheLevel(HttpServletRequest request) {
74 return request.getParameter("p_p_cacheability");
75 }
76
77 public String getResourceID(HttpServletRequest request) {
78 return request.getParameter("p_p_resource_id");
79 }
80
81 public ChannelMode readNewPortletWindowMode(HttpServletRequest request) {
82 String portletMode = request.getParameter("p_p_mode");
83
84 if (portletMode != null) {
85 return new ChannelMode(portletMode);
86 }
87 else {
88 return null;
89 }
90 }
91
92 public ChannelState readNewWindowState(HttpServletRequest request) {
93 String windowState = request.getParameter("p_p_state");
94
95 if (windowState != null) {
96 return new ChannelState(windowState);
97 }
98 else {
99 return null;
100 }
101 }
102
103 public Map<String, String[]> readParameterMap(HttpServletRequest request) {
104 Map<String, String[]> parameterMap = new HashMap<String, String[]>();
105
106 String portletId = request.getParameter("p_p_id");
107
108 String namespace = PortalUtil.getPortletNamespace(portletId);
109
110 Set<Map.Entry<String, String[]>> entries =
111 request.getParameterMap().entrySet();
112
113 for (Map.Entry<String, String[]> mapEntry : entries) {
114 String key = mapEntry.getKey();
115
116 if (PortalUtil.isReservedParameter(key)) {
117 continue;
118 }
119
120 if (key.startsWith(namespace) && !_facesPortlet) {
121 parameterMap.put(
122 key.substring(namespace.length()), mapEntry.getValue());
123
124 }
125 else if (key.startsWith(
126 PortletQName.PUBLIC_RENDER_PARAMETER_NAMESPACE)) {
127
128 String identifier =
129 PortletQNameUtil.getPublicRenderParameterIdentifier(key);
130
131 parameterMap.put(identifier, mapEntry.getValue());
132 }
133 else {
134 parameterMap.put(key, mapEntry.getValue());
135 }
136 }
137
138 return parameterMap;
139 }
140
141 public ChannelURLType readURLType(HttpServletRequest request) {
142 String urlType = ParamUtil.getString(request, "p_p_url_type");
143
144 if (urlType.equals("0")) {
145 return ChannelURLType.RENDER;
146 }
147 else if (urlType.equals("1")) {
148 return ChannelURLType.ACTION;
149 }
150 else if (urlType.equals("2")) {
151 return ChannelURLType.RESOURCE;
152 }
153 else {
154 return ChannelURLType.RENDER;
155 }
156 }
157
158 private boolean _facesPortlet;
159
160 }