1
14
15 package com.liferay.portal.kernel.portlet;
16
17 import com.liferay.portal.kernel.log.Log;
18 import com.liferay.portal.kernel.log.LogFactoryUtil;
19 import com.liferay.portal.kernel.util.PortalClassInvoker;
20
21 import java.util.Map;
22
23
29 public abstract class BaseFriendlyURLMapper implements FriendlyURLMapper {
30
31 public abstract String getPortletId();
32
33 public boolean isCheckMappingWithPrefix() {
34 return _CHECK_MAPPING_WITH_PREFIX;
35 }
36
37
40 protected void addParam(
41 Map<String, String[]> parameterMap, String name, boolean value) {
42
43 addParameter(parameterMap, name, value);
44 }
45
46
49 protected void addParam(
50 Map<String, String[]> parameterMap, String name, double value) {
51
52 addParameter(parameterMap, name, value);
53 }
54
55
58 protected void addParam(
59 Map<String, String[]> parameterMap, String name, int value) {
60
61 addParameter(parameterMap, name, value);
62 }
63
64
67 protected void addParam(
68 Map<String, String[]> parameterMap, String name, long value) {
69
70 addParameter(parameterMap, name, value);
71 }
72
73
76 protected void addParam(
77 Map<String, String[]> parameterMap, String name, Object value) {
78
79 addParameter(parameterMap, name, value);
80 }
81
82
85 protected void addParam(
86 Map<String, String[]> parameterMap, String name, short value) {
87
88 addParameter(parameterMap, name, value);
89 }
90
91
94 protected void addParam(
95 Map<String, String[]> parameterMap, String name, String value) {
96
97 addParameter(parameterMap, name, value);
98 }
99
100 protected void addParameter(
101 Map<String, String[]> parameterMap, String name, boolean value) {
102
103 addParameter(parameterMap, name, String.valueOf(value));
104 }
105
106 protected void addParameter(
107 Map<String, String[]> parameterMap, String name, double value) {
108
109 addParameter(parameterMap, name, String.valueOf(value));
110 }
111
112 protected void addParameter(
113 Map<String, String[]> parameterMap, String name, int value) {
114
115 addParameter(parameterMap, name, String.valueOf(value));
116 }
117
118 protected void addParameter(
119 Map<String, String[]> parameterMap, String name, long value) {
120
121 addParameter(parameterMap, name, String.valueOf(value));
122 }
123
124 protected void addParameter(
125 Map<String, String[]> parameterMap, String name, Object value) {
126
127 addParameter(parameterMap, name, String.valueOf(value));
128 }
129
130 protected void addParameter(
131 Map<String, String[]> parameterMap, String name, short value) {
132
133 addParameter(parameterMap, name, String.valueOf(value));
134 }
135
136 protected void addParameter(
137 Map<String, String[]> parameterMap, String name, String value) {
138
139 try {
140 if (!_isReservedParameter(name)) {
141 Map<String, String> prpIdentifers =
142 FriendlyURLMapperThreadLocal.getPRPIdentifiers();
143
144 if (prpIdentifers.containsKey(name)) {
145 name = prpIdentifers.get(name);
146 }
147 else {
148 name = getNamespace() + name;
149 }
150 }
151
152 parameterMap.put(name, new String[] {value});
153 }
154 catch (Exception e) {
155 _log.error(e, e);
156 }
157 }
158
159 protected String getNamespace() {
160 try {
161 return _getPortletNamespace(getPortletId());
162 }
163 catch (Exception e) {
164 _log.error(e, e);
165
166 return getPortletId();
167 }
168 }
169
170 private String _getPortletNamespace(String portletId)
171 throws Exception {
172
173 Object returnObj = PortalClassInvoker.invoke(
174 _CLASS, _METHOD_GETPORTLETNAMESPACE, portletId, false);
175
176 if (returnObj != null) {
177 return (String)returnObj;
178 }
179 else {
180 return null;
181 }
182 }
183
184 private boolean _isReservedParameter(String name) throws Exception {
185 Object returnObj = PortalClassInvoker.invoke(
186 _CLASS, _METHOD_ISRESERVEDPARAMETER, name, false);
187
188 if (returnObj != null) {
189 return (Boolean)returnObj;
190 }
191 else {
192 return false;
193 }
194 }
195
196 private static final boolean _CHECK_MAPPING_WITH_PREFIX = true;
197
198 private static final String _CLASS = "com.liferay.portal.util.PortalUtil";
199
200 private static final String _METHOD_GETPORTLETNAMESPACE =
201 "getPortletNamespace";
202
203 private static final String _METHOD_ISRESERVEDPARAMETER =
204 "isReservedParameter";
205
206 private static Log _log = LogFactoryUtil.getLog(
207 BaseFriendlyURLMapper.class);
208
209 }