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