001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.portal.kernel.atom.AtomCollectionAdapter;
018 import com.liferay.portal.kernel.lar.PortletDataHandler;
019 import com.liferay.portal.kernel.log.Log;
020 import com.liferay.portal.kernel.log.LogFactoryUtil;
021 import com.liferay.portal.kernel.plugin.PluginPackage;
022 import com.liferay.portal.kernel.poller.PollerProcessor;
023 import com.liferay.portal.kernel.pop.MessageListener;
024 import com.liferay.portal.kernel.portlet.ConfigurationAction;
025 import com.liferay.portal.kernel.portlet.FriendlyURLMapper;
026 import com.liferay.portal.kernel.portlet.PortletBag;
027 import com.liferay.portal.kernel.portlet.PortletBagPool;
028 import com.liferay.portal.kernel.portlet.PortletLayoutListener;
029 import com.liferay.portal.kernel.scheduler.SchedulerEntry;
030 import com.liferay.portal.kernel.search.Indexer;
031 import com.liferay.portal.kernel.search.OpenSearch;
032 import com.liferay.portal.kernel.servlet.ServletContextPool;
033 import com.liferay.portal.kernel.servlet.URLEncoder;
034 import com.liferay.portal.kernel.util.ContentTypes;
035 import com.liferay.portal.kernel.util.ContextPathUtil;
036 import com.liferay.portal.kernel.util.StringPool;
037 import com.liferay.portal.kernel.util.StringUtil;
038 import com.liferay.portal.kernel.util.Validator;
039 import com.liferay.portal.kernel.webdav.WebDAVStorage;
040 import com.liferay.portal.kernel.workflow.WorkflowHandler;
041 import com.liferay.portal.kernel.xml.QName;
042 import com.liferay.portal.kernel.xmlrpc.Method;
043 import com.liferay.portal.model.Plugin;
044 import com.liferay.portal.model.PluginSetting;
045 import com.liferay.portal.model.Portlet;
046 import com.liferay.portal.model.PortletApp;
047 import com.liferay.portal.model.PortletConstants;
048 import com.liferay.portal.model.PortletFilter;
049 import com.liferay.portal.model.PortletInfo;
050 import com.liferay.portal.model.PublicRenderParameter;
051 import com.liferay.portal.model.User;
052 import com.liferay.portal.security.permission.ActionKeys;
053 import com.liferay.portal.security.permission.PermissionChecker;
054 import com.liferay.portal.security.permission.PermissionCheckerFactoryUtil;
055 import com.liferay.portal.security.permission.PermissionPropagator;
056 import com.liferay.portal.security.permission.PermissionThreadLocal;
057 import com.liferay.portal.service.UserLocalServiceUtil;
058 import com.liferay.portal.service.permission.PortletPermissionUtil;
059 import com.liferay.portal.util.PortalUtil;
060 import com.liferay.portal.util.PropsValues;
061 import com.liferay.portlet.ControlPanelEntry;
062 import com.liferay.portlet.PortletQNameUtil;
063 import com.liferay.portlet.asset.model.AssetRendererFactory;
064 import com.liferay.portlet.expando.model.CustomAttributesDisplay;
065 import com.liferay.portlet.social.model.SocialActivityInterpreter;
066 import com.liferay.portlet.social.model.SocialRequestInterpreter;
067 import com.liferay.util.bridges.alloy.AlloyPortlet;
068
069 import java.util.ArrayList;
070 import java.util.Arrays;
071 import java.util.Collections;
072 import java.util.HashMap;
073 import java.util.HashSet;
074 import java.util.Iterator;
075 import java.util.LinkedHashMap;
076 import java.util.LinkedHashSet;
077 import java.util.List;
078 import java.util.Map;
079 import java.util.Set;
080 import java.util.TreeSet;
081 import java.util.concurrent.ConcurrentHashMap;
082
083 import javax.portlet.PortletMode;
084 import javax.portlet.WindowState;
085
086 import javax.servlet.ServletContext;
087
088
091 public class PortletImpl extends PortletBaseImpl {
092
093
096 public PortletImpl() {
097 }
098
099
102 public PortletImpl(long companyId, String portletId) {
103 setCompanyId(companyId);
104 setPortletId(portletId);
105 setStrutsPath(portletId);
106 setActive(true);
107 _indexerClasses = new ArrayList<String>();
108 _schedulerEntries = new ArrayList<SchedulerEntry>();
109 _assetRendererFactoryClasses = new ArrayList<String>();
110 _atomCollectionAdapterClasses = new ArrayList<String>();
111 _customAttributesDisplayClasses = new ArrayList<String>();
112 _workflowHandlerClasses = new ArrayList<String>();
113 _autopropagatedParameters = new LinkedHashSet<String>();
114 _headerPortalCss = new ArrayList<String>();
115 _headerPortletCss = new ArrayList<String>();
116 _headerPortalJavaScript = new ArrayList<String>();
117 _headerPortletJavaScript = new ArrayList<String>();
118 _footerPortalCss = new ArrayList<String>();
119 _footerPortletCss = new ArrayList<String>();
120 _footerPortalJavaScript = new ArrayList<String>();
121 _footerPortletJavaScript = new ArrayList<String>();
122 _unlinkedRoles = new HashSet<String>();
123 _roleMappers = new LinkedHashMap<String, String>();
124 _initParams = new HashMap<String, String>();
125 _portletModes = new HashMap<String, Set<String>>();
126 _windowStates = new HashMap<String, Set<String>>();
127 _supportedLocales = new HashSet<String>();
128 _portletFilters = new LinkedHashMap<String, PortletFilter>();
129 _processingEvents = new HashSet<QName>();
130 _publishingEvents = new HashSet<QName>();
131 _publicRenderParameters = new HashSet<PublicRenderParameter>();
132 }
133
134
137 public PortletImpl(
138 String portletId, Portlet rootPortlet, PluginPackage pluginPackage,
139 PluginSetting pluginSetting, long companyId, long timestamp,
140 String icon, String virtualPath, String strutsPath,
141 String parentStrutsPath, String portletName, String displayName,
142 String portletClass, String configurationActionClass,
143 List<String> indexerClasses, String openSearchClass,
144 List<SchedulerEntry> schedulerEntries, String portletURLClass,
145 String friendlyURLMapperClass, String friendlyURLMapping,
146 String friendlyURLRoutes, String urlEncoderClass,
147 String portletDataHandlerClass, String portletLayoutListenerClass,
148 String pollerProcessorClass, String popMessageListenerClass,
149 String socialActivityInterpreterClass,
150 String socialRequestInterpreterClass, String webDAVStorageToken,
151 String webDAVStorageClass, String xmlRpcMethodClass,
152 String controlPanelEntryCategory, double controlPanelEntryWeight,
153 String controlPanelClass, List<String> assetRendererFactoryClasses,
154 List<String> atomCollectionAdapterClasses,
155 List<String> customAttributesDisplayClasses,
156 String permissionPropagatorClass, List<String> workflowHandlerClasses,
157 String defaultPreferences, String preferencesValidator,
158 boolean preferencesCompanyWide, boolean preferencesUniquePerLayout,
159 boolean preferencesOwnedByGroup, boolean useDefaultTemplate,
160 boolean showPortletAccessDenied, boolean showPortletInactive,
161 boolean actionURLRedirect, boolean restoreCurrentView,
162 boolean maximizeEdit, boolean maximizeHelp, boolean popUpPrint,
163 boolean layoutCacheable, boolean instanceable, boolean remoteable,
164 boolean scopeable, String userPrincipalStrategy,
165 boolean privateRequestAttributes, boolean privateSessionAttributes,
166 Set<String> autopropagatedParameters, int actionTimeout,
167 int renderTimeout, int renderWeight, boolean ajaxable,
168 List<String> headerPortalCss, List<String> headerPortletCss,
169 List<String> headerPortalJavaScript,
170 List<String> headerPortletJavaScript, List<String> footerPortalCss,
171 List<String> footerPortletCss, List<String> footerPortalJavaScript,
172 List<String> footerPortletJavaScript, String cssClassWrapper,
173 String facebookIntegration, boolean addDefaultResource, String roles,
174 Set<String> unlinkedRoles, Map<String, String> roleMappers,
175 boolean system, boolean active, boolean include,
176 Map<String, String> initParams, Integer expCache,
177 Map<String, Set<String>> portletModes,
178 Map<String, Set<String>> windowStates, Set<String> supportedLocales,
179 String resourceBundle, PortletInfo portletInfo,
180 Map<String, PortletFilter> portletFilters, Set<QName> processingEvents,
181 Set<QName> publishingEvents,
182 Set<PublicRenderParameter> publicRenderParameters,
183 PortletApp portletApp) {
184
185 setPortletId(portletId);
186 _rootPortlet = rootPortlet;
187 _pluginPackage = pluginPackage;
188 _defaultPluginSetting = pluginSetting;
189 setCompanyId(companyId);
190 _timestamp = timestamp;
191 _icon = icon;
192 _virtualPath = virtualPath;
193 _strutsPath = strutsPath;
194 _portletName = portletName;
195 _parentStrutsPath = parentStrutsPath;
196 _displayName = displayName;
197 _portletClass = portletClass;
198 _configurationActionClass = configurationActionClass;
199 _indexerClasses = indexerClasses;
200 _openSearchClass = openSearchClass;
201 _schedulerEntries = schedulerEntries;
202 _portletURLClass = portletURLClass;
203 _friendlyURLMapperClass = friendlyURLMapperClass;
204 _friendlyURLMapping = friendlyURLMapping;
205 _friendlyURLRoutes = friendlyURLRoutes;
206 _urlEncoderClass = urlEncoderClass;
207 _portletDataHandlerClass = portletDataHandlerClass;
208 _portletLayoutListenerClass = portletLayoutListenerClass;
209 _pollerProcessorClass = pollerProcessorClass;
210 _popMessageListenerClass = popMessageListenerClass;
211 _socialActivityInterpreterClass = socialActivityInterpreterClass;
212 _socialRequestInterpreterClass = socialRequestInterpreterClass;
213 _webDAVStorageToken = webDAVStorageToken;
214 _webDAVStorageClass = webDAVStorageClass;
215 _xmlRpcMethodClass = xmlRpcMethodClass;
216 _controlPanelEntryCategory = controlPanelEntryCategory;
217 _controlPanelEntryWeight = controlPanelEntryWeight;
218 _controlPanelEntryClass = controlPanelClass;
219 _assetRendererFactoryClasses = assetRendererFactoryClasses;
220 _atomCollectionAdapterClasses = atomCollectionAdapterClasses;
221 _customAttributesDisplayClasses = customAttributesDisplayClasses;
222 _permissionPropagatorClass = permissionPropagatorClass;
223 _workflowHandlerClasses = workflowHandlerClasses;
224 _defaultPreferences = defaultPreferences;
225 _preferencesValidator = preferencesValidator;
226 _preferencesCompanyWide = preferencesCompanyWide;
227 _preferencesUniquePerLayout = preferencesUniquePerLayout;
228 _preferencesOwnedByGroup = preferencesOwnedByGroup;
229 _useDefaultTemplate = useDefaultTemplate;
230 _showPortletAccessDenied = showPortletAccessDenied;
231 _showPortletInactive = showPortletInactive;
232 _actionURLRedirect = actionURLRedirect;
233 _restoreCurrentView = restoreCurrentView;
234 _maximizeEdit = maximizeEdit;
235 _maximizeHelp = maximizeHelp;
236 _popUpPrint = popUpPrint;
237 _layoutCacheable = layoutCacheable;
238 _instanceable = instanceable;
239 _remoteable = remoteable;
240 _scopeable = scopeable;
241 _userPrincipalStrategy = userPrincipalStrategy;
242 _privateRequestAttributes = privateRequestAttributes;
243 _privateSessionAttributes = privateSessionAttributes;
244 _autopropagatedParameters = autopropagatedParameters;
245 _actionTimeout = actionTimeout;
246 _renderTimeout = renderTimeout;
247 _renderWeight = renderWeight;
248 _ajaxable = ajaxable;
249 _headerPortalCss = headerPortalCss;
250 _headerPortletCss = headerPortletCss;
251 _headerPortalJavaScript = headerPortalJavaScript;
252 _headerPortletJavaScript = headerPortletJavaScript;
253 _footerPortalCss = footerPortalCss;
254 _footerPortletCss = footerPortletCss;
255 _footerPortalJavaScript = footerPortalJavaScript;
256 _footerPortletJavaScript = footerPortletJavaScript;
257 _cssClassWrapper = cssClassWrapper;
258 _facebookIntegration = facebookIntegration;
259 _scopeable = scopeable;
260 _addDefaultResource = addDefaultResource;
261 setRoles(roles);
262 _unlinkedRoles = unlinkedRoles;
263 _roleMappers = roleMappers;
264 _system = system;
265 setActive(active);
266 _include = include;
267 _initParams = initParams;
268 _expCache = expCache;
269 _portletModes = portletModes;
270 _windowStates = windowStates;
271 _supportedLocales = supportedLocales;
272 _resourceBundle = resourceBundle;
273 _portletInfo = portletInfo;
274 _portletFilters = portletFilters;
275 setProcessingEvents(processingEvents);
276 setPublishingEvents(publishingEvents);
277 setPublicRenderParameters(publicRenderParameters);
278 _portletApp = portletApp;
279 }
280
281
284 @Override
285 public void addProcessingEvent(QName processingEvent) {
286 _processingEvents.add(processingEvent);
287 _processingEventsByQName.put(
288 PortletQNameUtil.getKey(processingEvent), processingEvent);
289 }
290
291
296 @Override
297 public void addPublicRenderParameter(
298 PublicRenderParameter publicRenderParameter) {
299
300 _publicRenderParameters.add(publicRenderParameter);
301
302 String identifier = publicRenderParameter.getIdentifier();
303
304 _publicRenderParametersByIdentifier.put(
305 identifier, publicRenderParameter);
306
307 QName qName = publicRenderParameter.getQName();
308
309 _publicRenderParametersByQName.put(
310 PortletQNameUtil.getKey(qName), publicRenderParameter);
311
312 String publicRenderParameterName =
313 PortletQNameUtil.getPublicRenderParameterName(qName);
314
315 PortletQNameUtil.setPublicRenderParameterIdentifier(
316 publicRenderParameterName, identifier);
317 }
318
319
322 @Override
323 public void addPublishingEvent(QName publishingEvent) {
324 _publishingEvents.add(publishingEvent);
325 }
326
327
330 @Override
331 public void addSchedulerEntry(SchedulerEntry schedulerEntry) {
332 _schedulerEntries.add(schedulerEntry);
333 }
334
335
340 @Override
341 public Object clone() {
342 Portlet portlet = new PortletImpl(
343 getPortletId(), getRootPortlet(), getPluginPackage(),
344 getDefaultPluginSetting(), getCompanyId(), getTimestamp(),
345 getIcon(), getVirtualPath(), getStrutsPath(), getParentStrutsPath(),
346 getPortletName(), getDisplayName(), getPortletClass(),
347 getConfigurationActionClass(), getIndexerClasses(),
348 getOpenSearchClass(), getSchedulerEntries(), getPortletURLClass(),
349 getFriendlyURLMapperClass(), getFriendlyURLMapping(),
350 getFriendlyURLRoutes(), getURLEncoderClass(),
351 getPortletDataHandlerClass(), getPortletLayoutListenerClass(),
352 getPollerProcessorClass(), getPopMessageListenerClass(),
353 getSocialActivityInterpreterClass(),
354 getSocialRequestInterpreterClass(), getWebDAVStorageToken(),
355 getWebDAVStorageClass(), getXmlRpcMethodClass(),
356 getControlPanelEntryCategory(), getControlPanelEntryWeight(),
357 getControlPanelEntryClass(), getAssetRendererFactoryClasses(),
358 getAtomCollectionAdapterClasses(),
359 getCustomAttributesDisplayClasses(), getPermissionPropagatorClass(),
360 getWorkflowHandlerClasses(), getDefaultPreferences(),
361 getPreferencesValidator(), isPreferencesCompanyWide(),
362 isPreferencesUniquePerLayout(), isPreferencesOwnedByGroup(),
363 isUseDefaultTemplate(), isShowPortletAccessDenied(),
364 isShowPortletInactive(), isActionURLRedirect(),
365 isRestoreCurrentView(), isMaximizeEdit(), isMaximizeHelp(),
366 isPopUpPrint(), isLayoutCacheable(), isInstanceable(),
367 isRemoteable(), isScopeable(), getUserPrincipalStrategy(),
368 isPrivateRequestAttributes(), isPrivateSessionAttributes(),
369 getAutopropagatedParameters(), getActionTimeout(),
370 getRenderTimeout(), getRenderWeight(), isAjaxable(),
371 getHeaderPortalCss(), getHeaderPortletCss(),
372 getHeaderPortalJavaScript(), getHeaderPortletJavaScript(),
373 getFooterPortalCss(), getFooterPortletCss(),
374 getFooterPortalJavaScript(), getFooterPortletJavaScript(),
375 getCssClassWrapper(), getFacebookIntegration(),
376 isAddDefaultResource(), getRoles(), getUnlinkedRoles(),
377 getRoleMappers(), isSystem(), isActive(), isInclude(),
378 getInitParams(), getExpCache(), getPortletModes(),
379 getWindowStates(), getSupportedLocales(), getResourceBundle(),
380 getPortletInfo(), getPortletFilters(), getProcessingEvents(),
381 getPublishingEvents(), getPublicRenderParameters(),
382 getPortletApp());
383
384 portlet.setId(getId());
385 portlet.setUndeployedPortlet(isUndeployedPortlet());
386
387 return portlet;
388 }
389
390
399 @Override
400 public int compareTo(Portlet portlet) {
401 String portletId = getPortletId();
402
403 return portletId.compareTo(portlet.getPortletId());
404 }
405
406
412 @Override
413 public boolean equals(Object obj) {
414 if (this == obj) {
415 return true;
416 }
417
418 if (!(obj instanceof Portlet)) {
419 return false;
420 }
421
422 Portlet portlet = (Portlet)obj;
423
424 String portletId = getPortletId();
425
426 return portletId.equals(portlet.getPortletId());
427 }
428
429
434 @Override
435 public int getActionTimeout() {
436 return _actionTimeout;
437 }
438
439
446 @Override
447 public boolean getActionURLRedirect() {
448 return _actionURLRedirect;
449 }
450
451
458 @Override
459 public boolean getAddDefaultResource() {
460 return _addDefaultResource;
461 }
462
463
468 @Override
469 public boolean getAjaxable() {
470 return _ajaxable;
471 }
472
473
478 @Override
479 public Set<String> getAllPortletModes() {
480 Set<String> allPortletModes = new TreeSet<String>();
481
482 Iterator<Map.Entry <String, Set<String>>> itr1 =
483 _portletModes.entrySet().iterator();
484
485 while (itr1.hasNext()) {
486 Map.Entry<String, Set<String>> entry = itr1.next();
487
488 Set<String> mimeTypePortletModes = entry.getValue();
489
490 Iterator<String> itr2 = mimeTypePortletModes.iterator();
491
492 while (itr2.hasNext()) {
493 String portletMode = itr2.next();
494
495 allPortletModes.add(portletMode);
496 }
497 }
498
499 return allPortletModes;
500 }
501
502
507 @Override
508 public Set<String> getAllWindowStates() {
509 Set<String> allWindowStates = new TreeSet<String>();
510
511 Iterator<Map.Entry <String, Set<String>>> itr1 =
512 _windowStates.entrySet().iterator();
513
514 while (itr1.hasNext()) {
515 Map.Entry<String, Set<String>> entry = itr1.next();
516
517 Set<String> mimeTypeWindowStates = entry.getValue();
518
519 Iterator<String> itr2 = mimeTypeWindowStates.iterator();
520
521 while (itr2.hasNext()) {
522 String windowState = itr2.next();
523
524 allWindowStates.add(windowState);
525 }
526 }
527
528 return allWindowStates;
529 }
530
531
538 @Override
539 public List<String> getAssetRendererFactoryClasses() {
540 return _assetRendererFactoryClasses;
541 }
542
543
548 @Override
549 public List<AssetRendererFactory> getAssetRendererFactoryInstances() {
550 if (_assetRendererFactoryClasses.isEmpty()) {
551 return null;
552 }
553
554 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
555
556 return portletBag.getAssetRendererFactoryInstances();
557 }
558
559
566 @Override
567 public List<String> getAtomCollectionAdapterClasses() {
568 return _atomCollectionAdapterClasses;
569 }
570
571
576 @Override
577 public List<AtomCollectionAdapter<?>> getAtomCollectionAdapterInstances() {
578 if (_atomCollectionAdapterClasses.isEmpty()) {
579 return null;
580 }
581
582 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
583
584 return portletBag.getAtomCollectionAdapterInstances();
585 }
586
587
594 @Override
595 public Set<String> getAutopropagatedParameters() {
596 return _autopropagatedParameters;
597 }
598
599
605 @Override
606 public Portlet getClonedInstance(String portletId) {
607 Portlet portlet = (Portlet)clone();
608
609 portlet.setPortletId(portletId);
610
611 return portlet;
612 }
613
614
619 @Override
620 public String getConfigurationActionClass() {
621 return _configurationActionClass;
622 }
623
624
629 @Override
630 public ConfigurationAction getConfigurationActionInstance() {
631 if (Validator.isNull(getConfigurationActionClass())) {
632 return null;
633 }
634
635 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
636
637 return portletBag.getConfigurationActionInstance();
638 }
639
640
645 @Override
646 public String getContextPath() {
647 if (!_portletApp.isWARFile()) {
648 return PortalUtil.getPathContext();
649 }
650
651 String servletContextName = _portletApp.getServletContextName();
652
653 if (ServletContextPool.containsKey(servletContextName)) {
654 ServletContext servletContext = ServletContextPool.get(
655 servletContextName);
656
657 return ContextPathUtil.getContextPath(servletContext);
658 }
659
660 return StringPool.SLASH.concat(servletContextName);
661 }
662
663
670 @Override
671 public String getControlPanelEntryCategory() {
672 return _controlPanelEntryCategory;
673 }
674
675
682 @Override
683 public String getControlPanelEntryClass() {
684 return _controlPanelEntryClass;
685 }
686
687
694 @Override
695 public ControlPanelEntry getControlPanelEntryInstance() {
696 if (Validator.isNull(getControlPanelEntryClass())) {
697 return null;
698 }
699
700 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
701
702 return portletBag.getControlPanelEntryInstance();
703 }
704
705
712 @Override
713 public double getControlPanelEntryWeight() {
714 return _controlPanelEntryWeight;
715 }
716
717
724 @Override
725 public String getCssClassWrapper() {
726 return _cssClassWrapper;
727 }
728
729
736 @Override
737 public List<String> getCustomAttributesDisplayClasses() {
738 return _customAttributesDisplayClasses;
739 }
740
741
746 @Override
747 public List<CustomAttributesDisplay> getCustomAttributesDisplayInstances() {
748 if (_customAttributesDisplayClasses.isEmpty()) {
749 return null;
750 }
751
752 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
753
754 return portletBag.getCustomAttributesDisplayInstances();
755 }
756
757
762 @Override
763 public PluginSetting getDefaultPluginSetting() {
764 return _defaultPluginSetting;
765 }
766
767
772 @Override
773 public String getDefaultPreferences() {
774 if (Validator.isNull(_defaultPreferences)) {
775 return PortletConstants.DEFAULT_PREFERENCES;
776 }
777 else {
778 return _defaultPreferences;
779 }
780 }
781
782
787 @Override
788 public String getDisplayName() {
789 return _displayName;
790 }
791
792
797 @Override
798 public Integer getExpCache() {
799 return _expCache;
800 }
801
802
807 @Override
808 public String getFacebookIntegration() {
809 return _facebookIntegration;
810 }
811
812
819 @Override
820 public List<String> getFooterPortalCss() {
821 return _footerPortalCss;
822 }
823
824
831 @Override
832 public List<String> getFooterPortalJavaScript() {
833 return _footerPortalJavaScript;
834 }
835
836
843 @Override
844 public List<String> getFooterPortletCss() {
845 return _footerPortletCss;
846 }
847
848
855 @Override
856 public List<String> getFooterPortletJavaScript() {
857 return _footerPortletJavaScript;
858 }
859
860
865 @Override
866 public String getFriendlyURLMapperClass() {
867 return _friendlyURLMapperClass;
868 }
869
870
875 @Override
876 public FriendlyURLMapper getFriendlyURLMapperInstance() {
877 if (Validator.isNull(getFriendlyURLMapperClass())) {
878 return null;
879 }
880
881 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
882
883 return portletBag.getFriendlyURLMapperInstance();
884 }
885
886
891 @Override
892 public String getFriendlyURLMapping() {
893 return _friendlyURLMapping;
894 }
895
896
903 @Override
904 public String getFriendlyURLRoutes() {
905 return _friendlyURLRoutes;
906 }
907
908
915 @Override
916 public List<String> getHeaderPortalCss() {
917 return _headerPortalCss;
918 }
919
920
927 @Override
928 public List<String> getHeaderPortalJavaScript() {
929 return _headerPortalJavaScript;
930 }
931
932
939 @Override
940 public List<String> getHeaderPortletCss() {
941 return _headerPortletCss;
942 }
943
944
951 @Override
952 public List<String> getHeaderPortletJavaScript() {
953 return _headerPortletJavaScript;
954 }
955
956
961 @Override
962 public String getIcon() {
963 return _icon;
964 }
965
966
973 @Override
974 public boolean getInclude() {
975 return _include;
976 }
977
978
985 @Override
986 public List<String> getIndexerClasses() {
987 return _indexerClasses;
988 }
989
990
995 @Override
996 public List<Indexer> getIndexerInstances() {
997 if (_indexerClasses.isEmpty() &&
998 !_portletClass.equals(AlloyPortlet.class.getName())) {
999
1000 return Collections.emptyList();
1001 }
1002
1003 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1004
1005 return portletBag.getIndexerInstances();
1006 }
1007
1008
1013 @Override
1014 public Map<String, String> getInitParams() {
1015 return _initParams;
1016 }
1017
1018
1025 @Override
1026 public boolean getInstanceable() {
1027 return _instanceable;
1028 }
1029
1030
1035 @Override
1036 public String getInstanceId() {
1037 return PortletConstants.getInstanceId(getPortletId());
1038 }
1039
1040
1046 @Override
1047 public boolean getLayoutCacheable() {
1048 return _layoutCacheable;
1049 }
1050
1051
1058 @Override
1059 public boolean getMaximizeEdit() {
1060 return _maximizeEdit;
1061 }
1062
1063
1070 @Override
1071 public boolean getMaximizeHelp() {
1072 return _maximizeHelp;
1073 }
1074
1075
1080 @Override
1081 public String getOpenSearchClass() {
1082 return _openSearchClass;
1083 }
1084
1085
1090 @Override
1091 public OpenSearch getOpenSearchInstance() {
1092 if (Validator.isNull(getOpenSearchClass())) {
1093 return null;
1094 }
1095
1096 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1097
1098 return portletBag.getOpenSearchInstance();
1099 }
1100
1101
1106 @Override
1107 public String getParentStrutsPath() {
1108 return _parentStrutsPath;
1109 }
1110
1111
1116 @Override
1117 public String getPermissionPropagatorClass() {
1118 return _permissionPropagatorClass;
1119 }
1120
1121
1126 @Override
1127 public PermissionPropagator getPermissionPropagatorInstance() {
1128 if (Validator.isNull(getPermissionPropagatorClass())) {
1129 return null;
1130 }
1131
1132 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1133
1134 return portletBag.getPermissionPropagatorInstance();
1135 }
1136
1137
1142 @Override
1143 public String getPluginId() {
1144 return getRootPortletId();
1145 }
1146
1147
1152 @Override
1153 public PluginPackage getPluginPackage() {
1154 return _pluginPackage;
1155 }
1156
1157
1162 @Override
1163 public String getPluginType() {
1164 return Plugin.TYPE_PORTLET;
1165 }
1166
1167
1172 @Override
1173 public String getPollerProcessorClass() {
1174 return _pollerProcessorClass;
1175 }
1176
1177
1182 @Override
1183 public PollerProcessor getPollerProcessorInstance() {
1184 if (Validator.isNull(getPollerProcessorClass())) {
1185 return null;
1186 }
1187
1188 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1189
1190 return portletBag.getPollerProcessorInstance();
1191 }
1192
1193
1198 @Override
1199 public String getPopMessageListenerClass() {
1200 return _popMessageListenerClass;
1201 }
1202
1203
1208 @Override
1209 public MessageListener getPopMessageListenerInstance() {
1210 if (Validator.isNull(getPopMessageListenerClass())) {
1211 return null;
1212 }
1213
1214 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1215
1216 return portletBag.getPopMessageListenerInstance();
1217 }
1218
1219
1226 @Override
1227 public boolean getPopUpPrint() {
1228 return _popUpPrint;
1229 }
1230
1231
1236 @Override
1237 public PortletApp getPortletApp() {
1238 return _portletApp;
1239 }
1240
1241
1246 @Override
1247 public String getPortletClass() {
1248 return _portletClass;
1249 }
1250
1251
1256 @Override
1257 public String getPortletDataHandlerClass() {
1258 return _portletDataHandlerClass;
1259 }
1260
1261
1266 @Override
1267 public PortletDataHandler getPortletDataHandlerInstance() {
1268 if (Validator.isNull(getPortletDataHandlerClass())) {
1269 return null;
1270 }
1271
1272 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1273
1274 return portletBag.getPortletDataHandlerInstance();
1275 }
1276
1277
1282 @Override
1283 public Map<String, PortletFilter> getPortletFilters() {
1284 return _portletFilters;
1285 }
1286
1287
1292 @Override
1293 public PortletInfo getPortletInfo() {
1294 return _portletInfo;
1295 }
1296
1297
1302 @Override
1303 public String getPortletLayoutListenerClass() {
1304 return _portletLayoutListenerClass;
1305 }
1306
1307
1312 @Override
1313 public PortletLayoutListener getPortletLayoutListenerInstance() {
1314 if (Validator.isNull(getPortletLayoutListenerClass())) {
1315 return null;
1316 }
1317
1318 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1319
1320 return portletBag.getPortletLayoutListenerInstance();
1321 }
1322
1323
1328 @Override
1329 public Map<String, Set<String>> getPortletModes() {
1330 return _portletModes;
1331 }
1332
1333
1338 @Override
1339 public String getPortletName() {
1340 return _portletName;
1341 }
1342
1343
1348 @Override
1349 public String getPortletURLClass() {
1350 return _portletURLClass;
1351 }
1352
1353
1360 @Override
1361 public boolean getPreferencesCompanyWide() {
1362 return _preferencesCompanyWide;
1363 }
1364
1365
1374 @Override
1375 public boolean getPreferencesOwnedByGroup() {
1376 return _preferencesOwnedByGroup;
1377 }
1378
1379
1384 @Override
1385 public boolean getPreferencesUniquePerLayout() {
1386 return _preferencesUniquePerLayout;
1387 }
1388
1389
1394 @Override
1395 public String getPreferencesValidator() {
1396 return _preferencesValidator;
1397 }
1398
1399
1406 @Override
1407 public boolean getPrivateRequestAttributes() {
1408 return _privateRequestAttributes;
1409 }
1410
1411
1418 @Override
1419 public boolean getPrivateSessionAttributes() {
1420 return _privateSessionAttributes;
1421 }
1422
1423
1432 @Override
1433 public QName getProcessingEvent(String uri, String localPart) {
1434 return _processingEventsByQName.get(
1435 PortletQNameUtil.getKey(uri, localPart));
1436 }
1437
1438
1443 @Override
1444 public Set<QName> getProcessingEvents() {
1445 return _processingEvents;
1446 }
1447
1448
1454 @Override
1455 public PublicRenderParameter getPublicRenderParameter(String identifier) {
1456 return _publicRenderParametersByIdentifier.get(identifier);
1457 }
1458
1459
1468 @Override
1469 public PublicRenderParameter getPublicRenderParameter(
1470 String uri, String localPart) {
1471
1472 return _publicRenderParametersByQName.get(
1473 PortletQNameUtil.getKey(uri, localPart));
1474 }
1475
1476
1481 @Override
1482 public Set<PublicRenderParameter> getPublicRenderParameters() {
1483 return _publicRenderParameters;
1484 }
1485
1486
1491 @Override
1492 public Set<QName> getPublishingEvents() {
1493 return _publishingEvents;
1494 }
1495
1496
1501 @Override
1502 public boolean getReady() {
1503 return isReady();
1504 }
1505
1506
1511 @Override
1512 public boolean getRemoteable() {
1513 return _remoteable;
1514 }
1515
1516
1521 @Override
1522 public int getRenderTimeout() {
1523 return _renderTimeout;
1524 }
1525
1526
1531 @Override
1532 public int getRenderWeight() {
1533 return _renderWeight;
1534 }
1535
1536
1541 @Override
1542 public String getResourceBundle() {
1543 return _resourceBundle;
1544 }
1545
1546
1553 @Override
1554 public boolean getRestoreCurrentView() {
1555 return _restoreCurrentView;
1556 }
1557
1558
1563 @Override
1564 public Map<String, String> getRoleMappers() {
1565 return _roleMappers;
1566 }
1567
1568
1573 @Override
1574 public String[] getRolesArray() {
1575 return _rolesArray;
1576 }
1577
1578
1583 @Override
1584 public Portlet getRootPortlet() {
1585 return _rootPortlet;
1586 }
1587
1588
1593 @Override
1594 public String getRootPortletId() {
1595 return PortletConstants.getRootPortletId(getPortletId());
1596 }
1597
1598
1603 @Override
1604 public List<SchedulerEntry> getSchedulerEntries() {
1605 return _schedulerEntries;
1606 }
1607
1608
1613 @Override
1614 public boolean getScopeable() {
1615 return _scopeable;
1616 }
1617
1618
1625 @Override
1626 public boolean getShowPortletAccessDenied() {
1627 return _showPortletAccessDenied;
1628 }
1629
1630
1636 @Override
1637 public boolean getShowPortletInactive() {
1638 return _showPortletInactive;
1639 }
1640
1641
1646 @Override
1647 public String getSocialActivityInterpreterClass() {
1648 return _socialActivityInterpreterClass;
1649 }
1650
1651
1658 @Override
1659 public SocialActivityInterpreter getSocialActivityInterpreterInstance() {
1660 if (Validator.isNull(getSocialActivityInterpreterClass())) {
1661 return null;
1662 }
1663
1664 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1665
1666 return portletBag.getSocialActivityInterpreterInstance();
1667 }
1668
1669
1674 @Override
1675 public String getSocialRequestInterpreterClass() {
1676 return _socialRequestInterpreterClass;
1677 }
1678
1679
1686 @Override
1687 public SocialRequestInterpreter getSocialRequestInterpreterInstance() {
1688 if (Validator.isNull(getSocialRequestInterpreterClass())) {
1689 return null;
1690 }
1691
1692 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1693
1694 return portletBag.getSocialRequestInterpreterInstance();
1695 }
1696
1697
1704 @Override
1705 public boolean getStatic() {
1706 return _staticPortlet;
1707 }
1708
1709
1716 @Override
1717 public boolean getStaticEnd() {
1718 return !_staticPortletStart;
1719 }
1720
1721
1726 @Override
1727 public String getStaticResourcePath() {
1728 String proxyPath = PortalUtil.getPathProxy();
1729
1730 String virtualPath = getVirtualPath();
1731
1732 if (Validator.isNotNull(virtualPath)) {
1733 return proxyPath.concat(virtualPath);
1734 }
1735
1736 String contextPath = getContextPath();
1737
1738 if (!_portletApp.isWARFile()) {
1739 return contextPath;
1740 }
1741
1742 return proxyPath.concat(contextPath);
1743 }
1744
1745
1752 @Override
1753 public boolean getStaticStart() {
1754 return _staticPortletStart;
1755 }
1756
1757
1762 @Override
1763 public String getStrutsPath() {
1764 return _strutsPath;
1765 }
1766
1767
1772 @Override
1773 public Set<String> getSupportedLocales() {
1774 return _supportedLocales;
1775 }
1776
1777
1784 @Override
1785 public boolean getSystem() {
1786 return _system;
1787 }
1788
1789
1794 @Override
1795 public long getTimestamp() {
1796 return _timestamp;
1797 }
1798
1799
1805 @Override
1806 public boolean getUndeployedPortlet() {
1807 return _undeployedPortlet;
1808 }
1809
1810
1815 @Override
1816 public Set<String> getUnlinkedRoles() {
1817 return _unlinkedRoles;
1818 }
1819
1820
1825 @Override
1826 public String getURLEncoderClass() {
1827 return _urlEncoderClass;
1828 }
1829
1830
1835 @Override
1836 public URLEncoder getURLEncoderInstance() {
1837 if (Validator.isNull(getURLEncoderClass())) {
1838 return null;
1839 }
1840
1841 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1842
1843 return portletBag.getURLEncoderInstance();
1844 }
1845
1846
1851 @Override
1852 public boolean getUseDefaultTemplate() {
1853 return _useDefaultTemplate;
1854 }
1855
1856
1861 @Override
1862 public String getUserPrincipalStrategy() {
1863 return _userPrincipalStrategy;
1864 }
1865
1866
1871 @Override
1872 public String getVirtualPath() {
1873 return _virtualPath;
1874 }
1875
1876
1881 @Override
1882 public String getWebDAVStorageClass() {
1883 return _webDAVStorageClass;
1884 }
1885
1886
1891 @Override
1892 public WebDAVStorage getWebDAVStorageInstance() {
1893 if (Validator.isNull(getWebDAVStorageClass())) {
1894 return null;
1895 }
1896
1897 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1898
1899 return portletBag.getWebDAVStorageInstance();
1900 }
1901
1902
1907 @Override
1908 public String getWebDAVStorageToken() {
1909 return _webDAVStorageToken;
1910 }
1911
1912
1917 @Override
1918 public Map<String, Set<String>> getWindowStates() {
1919 return _windowStates;
1920 }
1921
1922
1929 @Override
1930 public List<String> getWorkflowHandlerClasses() {
1931 return _workflowHandlerClasses;
1932 }
1933
1934
1939 @Override
1940 public List<WorkflowHandler> getWorkflowHandlerInstances() {
1941 if (_workflowHandlerClasses.isEmpty()) {
1942 return null;
1943 }
1944
1945 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1946
1947 return portletBag.getWorkflowHandlerInstances();
1948 }
1949
1950
1955 @Override
1956 public String getXmlRpcMethodClass() {
1957 return _xmlRpcMethodClass;
1958 }
1959
1960
1965 @Override
1966 public Method getXmlRpcMethodInstance() {
1967 if (Validator.isNull(getXmlRpcMethodClass())) {
1968 return null;
1969 }
1970
1971 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1972
1973 return portletBag.getXmlRpcMethodInstance();
1974 }
1975
1976
1984 @Override
1985 public boolean hasAddPortletPermission(long userId) {
1986 PermissionChecker permissionChecker =
1987 PermissionThreadLocal.getPermissionChecker();
1988
1989 try {
1990 if ((permissionChecker == null) ||
1991 (permissionChecker.getUserId() != userId)) {
1992
1993 User user = UserLocalServiceUtil.getUser(userId);
1994
1995 permissionChecker = PermissionCheckerFactoryUtil.create(user);
1996 }
1997
1998 if (PortletPermissionUtil.contains(
1999 permissionChecker, getRootPortletId(),
2000 ActionKeys.ADD_TO_PAGE)) {
2001
2002 return true;
2003 }
2004 }
2005 catch (Exception e) {
2006 _log.error(e, e);
2007 }
2008
2009 return false;
2010 }
2011
2012
2018 @Override
2019 public boolean hasMultipleMimeTypes() {
2020 if (_portletModes.size() > 1) {
2021 return true;
2022 }
2023 else {
2024 return false;
2025 }
2026 }
2027
2028
2037 @Override
2038 public boolean hasPortletMode(String mimeType, PortletMode portletMode) {
2039 if (mimeType == null) {
2040 mimeType = ContentTypes.TEXT_HTML;
2041 }
2042
2043 Set<String> mimeTypePortletModes = _portletModes.get(mimeType);
2044
2045 if (mimeTypePortletModes == null) {
2046 return false;
2047 }
2048
2049 if (mimeTypePortletModes.contains(portletMode.toString())) {
2050 return true;
2051 }
2052 else {
2053 return false;
2054 }
2055 }
2056
2057
2065 @Override
2066 public boolean hasRoleWithName(String roleName) {
2067 if ((_rolesArray == null) || (_rolesArray.length == 0)) {
2068 return false;
2069 }
2070
2071 for (int i = 0; i < _rolesArray.length; i++) {
2072 if (_rolesArray[i].equalsIgnoreCase(roleName)) {
2073 return true;
2074 }
2075 }
2076
2077 return false;
2078 }
2079
2080
2089 @Override
2090 public boolean hasWindowState(String mimeType, WindowState windowState) {
2091 if (mimeType == null) {
2092 mimeType = ContentTypes.TEXT_HTML;
2093 }
2094
2095 Set<String> mimeTypeWindowStates = _windowStates.get(mimeType);
2096
2097 if (mimeTypeWindowStates == null) {
2098 return false;
2099 }
2100
2101 if (mimeTypeWindowStates.contains(windowState.toString())) {
2102 return true;
2103 }
2104 else {
2105 return false;
2106 }
2107 }
2108
2109
2116 @Override
2117 public boolean isActionURLRedirect() {
2118 return _actionURLRedirect;
2119 }
2120
2121
2128 @Override
2129 public boolean isAddDefaultResource() {
2130 return _addDefaultResource;
2131 }
2132
2133
2138 @Override
2139 public boolean isAjaxable() {
2140 return _ajaxable;
2141 }
2142
2143
2150 @Override
2151 public boolean isInclude() {
2152 return _include;
2153 }
2154
2155
2162 @Override
2163 public boolean isInstanceable() {
2164 return _instanceable;
2165 }
2166
2167
2173 @Override
2174 public boolean isLayoutCacheable() {
2175 return _layoutCacheable;
2176 }
2177
2178
2185 @Override
2186 public boolean isMaximizeEdit() {
2187 return _maximizeEdit;
2188 }
2189
2190
2197 @Override
2198 public boolean isMaximizeHelp() {
2199 return _maximizeHelp;
2200 }
2201
2202
2209 @Override
2210 public boolean isPopUpPrint() {
2211 return _popUpPrint;
2212 }
2213
2214
2221 @Override
2222 public boolean isPreferencesCompanyWide() {
2223 return _preferencesCompanyWide;
2224 }
2225
2226
2235 @Override
2236 public boolean isPreferencesOwnedByGroup() {
2237 return _preferencesOwnedByGroup;
2238 }
2239
2240
2245 @Override
2246 public boolean isPreferencesUniquePerLayout() {
2247 return _preferencesUniquePerLayout;
2248 }
2249
2250
2257 @Override
2258 public boolean isPrivateRequestAttributes() {
2259 return _privateRequestAttributes;
2260 }
2261
2262
2269 @Override
2270 public boolean isPrivateSessionAttributes() {
2271 return _privateSessionAttributes;
2272 }
2273
2274
2279 @Override
2280 public boolean isReady() {
2281 Boolean ready = _readyMap.get(getRootPortletId());
2282
2283 if (ready == null) {
2284 return true;
2285 }
2286 else {
2287 return ready;
2288 }
2289 }
2290
2291
2296 @Override
2297 public boolean isRemoteable() {
2298 return _remoteable;
2299 }
2300
2301
2308 @Override
2309 public boolean isRestoreCurrentView() {
2310 return _restoreCurrentView;
2311 }
2312
2313
2318 @Override
2319 public boolean isScopeable() {
2320 return _scopeable;
2321 }
2322
2323
2330 @Override
2331 public boolean isShowPortletAccessDenied() {
2332 return _showPortletAccessDenied;
2333 }
2334
2335
2341 @Override
2342 public boolean isShowPortletInactive() {
2343 return _showPortletInactive;
2344 }
2345
2346
2353 @Override
2354 public boolean isStatic() {
2355 return _staticPortlet;
2356 }
2357
2358
2365 @Override
2366 public boolean isStaticEnd() {
2367 return !_staticPortletStart;
2368 }
2369
2370
2377 @Override
2378 public boolean isStaticStart() {
2379 return _staticPortletStart;
2380 }
2381
2382
2389 @Override
2390 public boolean isSystem() {
2391 return _system;
2392 }
2393
2394
2400 @Override
2401 public boolean isUndeployedPortlet() {
2402 return _undeployedPortlet;
2403 }
2404
2405
2410 @Override
2411 public boolean isUseDefaultTemplate() {
2412 return _useDefaultTemplate;
2413 }
2414
2415
2419 @Override
2420 public void linkRoles() {
2421 List<String> linkedRoles = new ArrayList<String>();
2422
2423 Iterator<String> itr = _unlinkedRoles.iterator();
2424
2425 while (itr.hasNext()) {
2426 String unlinkedRole = itr.next();
2427
2428 String roleLink = _roleMappers.get(unlinkedRole);
2429
2430 if (Validator.isNotNull(roleLink)) {
2431 if (_log.isDebugEnabled()) {
2432 _log.debug(
2433 "Linking role for portlet [" + getPortletId() +
2434 "] with role-name [" + unlinkedRole +
2435 "] to role-link [" + roleLink + "]");
2436 }
2437
2438 linkedRoles.add(roleLink);
2439 }
2440 else {
2441 _log.error(
2442 "Unable to link role for portlet [" + getPortletId() +
2443 "] with role-name [" + unlinkedRole +
2444 "] because role-link is null");
2445 }
2446 }
2447
2448 String[] array = linkedRoles.toArray(new String[linkedRoles.size()]);
2449
2450 Arrays.sort(array);
2451
2452 setRolesArray(array);
2453 }
2454
2455
2460 @Override
2461 public void setActionTimeout(int actionTimeout) {
2462 _actionTimeout = actionTimeout;
2463 }
2464
2465
2472 @Override
2473 public void setActionURLRedirect(boolean actionURLRedirect) {
2474 _actionURLRedirect = actionURLRedirect;
2475 }
2476
2477
2484 @Override
2485 public void setAddDefaultResource(boolean addDefaultResource) {
2486 _addDefaultResource = addDefaultResource;
2487 }
2488
2489
2495 @Override
2496 public void setAjaxable(boolean ajaxable) {
2497 _ajaxable = ajaxable;
2498 }
2499
2500
2507 @Override
2508 public void setAssetRendererFactoryClasses(
2509 List<String> assetRendererFactoryClasses) {
2510
2511 _assetRendererFactoryClasses = assetRendererFactoryClasses;
2512 }
2513
2514
2521 @Override
2522 public void setAtomCollectionAdapterClasses(
2523 List<String> atomCollectionAdapterClasses) {
2524
2525 _atomCollectionAdapterClasses = atomCollectionAdapterClasses;
2526 }
2527
2528
2535 @Override
2536 public void setAutopropagatedParameters(
2537 Set<String> autopropagatedParameters) {
2538
2539 _autopropagatedParameters = autopropagatedParameters;
2540 }
2541
2542
2548 @Override
2549 public void setConfigurationActionClass(String configurationActionClass) {
2550 _configurationActionClass = configurationActionClass;
2551 }
2552
2553
2560 @Override
2561 public void setControlPanelEntryCategory(String controlPanelEntryCategory) {
2562 _controlPanelEntryCategory = controlPanelEntryCategory;
2563 }
2564
2565
2572 @Override
2573 public void setControlPanelEntryClass(String controlPanelEntryClass) {
2574 _controlPanelEntryClass = controlPanelEntryClass;
2575 }
2576
2577
2585 @Override
2586 public void setControlPanelEntryWeight(double controlPanelEntryWeight) {
2587 _controlPanelEntryWeight = controlPanelEntryWeight;
2588 }
2589
2590
2597 @Override
2598 public void setCssClassWrapper(String cssClassWrapper) {
2599 _cssClassWrapper = cssClassWrapper;
2600 }
2601
2602
2609 @Override
2610 public void setCustomAttributesDisplayClasses(
2611 List<String> customAttributesDisplayClasses) {
2612
2613 _customAttributesDisplayClasses = customAttributesDisplayClasses;
2614 }
2615
2616
2621 @Override
2622 public void setDefaultPluginSetting(PluginSetting pluginSetting) {
2623 _defaultPluginSetting = pluginSetting;
2624 }
2625
2626
2631 @Override
2632 public void setDefaultPreferences(String defaultPreferences) {
2633 _defaultPreferences = defaultPreferences;
2634 }
2635
2636
2641 @Override
2642 public void setDisplayName(String displayName) {
2643 _displayName = displayName;
2644 }
2645
2646
2651 @Override
2652 public void setExpCache(Integer expCache) {
2653 _expCache = expCache;
2654 }
2655
2656
2661 @Override
2662 public void setFacebookIntegration(String facebookIntegration) {
2663 if (Validator.isNotNull(facebookIntegration)) {
2664 _facebookIntegration = facebookIntegration;
2665 }
2666 }
2667
2668
2675 @Override
2676 public void setFooterPortalCss(List<String> footerPortalCss) {
2677 _footerPortalCss = footerPortalCss;
2678 }
2679
2680
2688 @Override
2689 public void setFooterPortalJavaScript(List<String> footerPortalJavaScript) {
2690 _footerPortalJavaScript = footerPortalJavaScript;
2691 }
2692
2693
2700 @Override
2701 public void setFooterPortletCss(List<String> footerPortletCss) {
2702 _footerPortletCss = footerPortletCss;
2703 }
2704
2705
2713 @Override
2714 public void setFooterPortletJavaScript(
2715 List<String> footerPortletJavaScript) {
2716
2717 _footerPortletJavaScript = footerPortletJavaScript;
2718 }
2719
2720
2726 @Override
2727 public void setFriendlyURLMapperClass(String friendlyURLMapperClass) {
2728 _friendlyURLMapperClass = friendlyURLMapperClass;
2729 }
2730
2731
2737 @Override
2738 public void setFriendlyURLMapping(String friendlyURLMapping) {
2739 _friendlyURLMapping = friendlyURLMapping;
2740 }
2741
2742
2749 @Override
2750 public void setFriendlyURLRoutes(String friendlyURLRoutes) {
2751 _friendlyURLRoutes = friendlyURLRoutes;
2752 }
2753
2754
2761 @Override
2762 public void setHeaderPortalCss(List<String> headerPortalCss) {
2763 _headerPortalCss = headerPortalCss;
2764 }
2765
2766
2774 @Override
2775 public void setHeaderPortalJavaScript(List<String> headerPortalJavaScript) {
2776 _headerPortalJavaScript = headerPortalJavaScript;
2777 }
2778
2779
2786 @Override
2787 public void setHeaderPortletCss(List<String> headerPortletCss) {
2788 _headerPortletCss = headerPortletCss;
2789 }
2790
2791
2799 @Override
2800 public void setHeaderPortletJavaScript(
2801 List<String> headerPortletJavaScript) {
2802
2803 _headerPortletJavaScript = headerPortletJavaScript;
2804 }
2805
2806
2811 @Override
2812 public void setIcon(String icon) {
2813 _icon = icon;
2814 }
2815
2816
2823 @Override
2824 public void setInclude(boolean include) {
2825 _include = include;
2826 }
2827
2828
2835 @Override
2836 public void setIndexerClasses(List<String> indexerClasses) {
2837 _indexerClasses = indexerClasses;
2838 }
2839
2840
2845 @Override
2846 public void setInitParams(Map<String, String> initParams) {
2847 _initParams = initParams;
2848 }
2849
2850
2857 @Override
2858 public void setInstanceable(boolean instanceable) {
2859 _instanceable = instanceable;
2860 }
2861
2862
2869 @Override
2870 public void setLayoutCacheable(boolean layoutCacheable) {
2871 _layoutCacheable = layoutCacheable;
2872 }
2873
2874
2881 @Override
2882 public void setMaximizeEdit(boolean maximizeEdit) {
2883 _maximizeEdit = maximizeEdit;
2884 }
2885
2886
2893 @Override
2894 public void setMaximizeHelp(boolean maximizeHelp) {
2895 _maximizeHelp = maximizeHelp;
2896 }
2897
2898
2903 @Override
2904 public void setOpenSearchClass(String openSearchClass) {
2905 _openSearchClass = openSearchClass;
2906 }
2907
2908
2913 @Override
2914 public void setParentStrutsPath(String parentStrutsPath) {
2915 _parentStrutsPath = parentStrutsPath;
2916 }
2917
2918
2921 @Override
2922 public void setPermissionPropagatorClass(String permissionPropagatorClass) {
2923 _permissionPropagatorClass = permissionPropagatorClass;
2924 }
2925
2926
2931 @Override
2932 public void setPluginPackage(PluginPackage pluginPackage) {
2933 _pluginPackage = pluginPackage;
2934 }
2935
2936
2942 @Override
2943 public void setPollerProcessorClass(String pollerProcessorClass) {
2944 _pollerProcessorClass = pollerProcessorClass;
2945 }
2946
2947
2953 @Override
2954 public void setPopMessageListenerClass(String popMessageListenerClass) {
2955 _popMessageListenerClass = popMessageListenerClass;
2956 }
2957
2958
2965 @Override
2966 public void setPopUpPrint(boolean popUpPrint) {
2967 _popUpPrint = popUpPrint;
2968 }
2969
2970
2975 @Override
2976 public void setPortletApp(PortletApp portletApp) {
2977 _portletApp = portletApp;
2978
2979 _portletApp.addPortlet(this);
2980 }
2981
2982
2987 @Override
2988 public void setPortletClass(String portletClass) {
2989 _portletClass = portletClass;
2990 }
2991
2992
2998 @Override
2999 public void setPortletDataHandlerClass(String portletDataHandlerClass) {
3000 _portletDataHandlerClass = portletDataHandlerClass;
3001 }
3002
3003
3008 @Override
3009 public void setPortletFilters(Map<String, PortletFilter> portletFilters) {
3010 _portletFilters = portletFilters;
3011 }
3012
3013
3018 @Override
3019 public void setPortletInfo(PortletInfo portletInfo) {
3020 _portletInfo = portletInfo;
3021 }
3022
3023
3029 @Override
3030 public void setPortletLayoutListenerClass(
3031 String portletLayoutListenerClass) {
3032
3033 _portletLayoutListenerClass = portletLayoutListenerClass;
3034 }
3035
3036
3041 @Override
3042 public void setPortletModes(Map<String, Set<String>> portletModes) {
3043 _portletModes = portletModes;
3044 }
3045
3046
3051 @Override
3052 public void setPortletName(String portletName) {
3053 _portletName = portletName;
3054 }
3055
3056
3061 @Override
3062 public void setPortletURLClass(String portletURLClass) {
3063 _portletURLClass = portletURLClass;
3064 }
3065
3066
3073 @Override
3074 public void setPreferencesCompanyWide(boolean preferencesCompanyWide) {
3075 _preferencesCompanyWide = preferencesCompanyWide;
3076 }
3077
3078
3087 @Override
3088 public void setPreferencesOwnedByGroup(boolean preferencesOwnedByGroup) {
3089 _preferencesOwnedByGroup = preferencesOwnedByGroup;
3090 }
3091
3092
3098 @Override
3099 public void setPreferencesUniquePerLayout(
3100 boolean preferencesUniquePerLayout) {
3101
3102 _preferencesUniquePerLayout = preferencesUniquePerLayout;
3103 }
3104
3105
3111 @Override
3112 public void setPreferencesValidator(String preferencesValidator) {
3113 if (preferencesValidator != null) {
3114
3115
3116
3117
3118 _preferencesValidator = preferencesValidator.trim();
3119 }
3120 else {
3121 _preferencesValidator = null;
3122 }
3123 }
3124
3125
3133 @Override
3134 public void setPrivateRequestAttributes(boolean privateRequestAttributes) {
3135 _privateRequestAttributes = privateRequestAttributes;
3136 }
3137
3138
3145 @Override
3146 public void setPrivateSessionAttributes(boolean privateSessionAttributes) {
3147 _privateSessionAttributes = privateSessionAttributes;
3148 }
3149
3150
3155 @Override
3156 public void setProcessingEvents(Set<QName> processingEvents) {
3157 for (QName processingEvent : processingEvents) {
3158 addProcessingEvent(processingEvent);
3159 }
3160 }
3161
3162
3168 @Override
3169 public void setPublicRenderParameters(
3170 Set<PublicRenderParameter> publicRenderParameters) {
3171
3172 for (PublicRenderParameter publicRenderParameter :
3173 publicRenderParameters) {
3174
3175 addPublicRenderParameter(publicRenderParameter);
3176 }
3177 }
3178
3179
3184 @Override
3185 public void setPublishingEvents(Set<QName> publishingEvents) {
3186 for (QName publishingEvent : publishingEvents) {
3187 addPublishingEvent(publishingEvent);
3188 }
3189 }
3190
3191
3196 @Override
3197 public void setReady(boolean ready) {
3198 _readyMap.put(getRootPortletId(), ready);
3199 }
3200
3201
3207 @Override
3208 public void setRemoteable(boolean remoteable) {
3209 _remoteable = remoteable;
3210 }
3211
3212
3217 @Override
3218 public void setRenderTimeout(int renderTimeout) {
3219 _renderTimeout = renderTimeout;
3220 }
3221
3222
3227 @Override
3228 public void setRenderWeight(int renderWeight) {
3229 _renderWeight = renderWeight;
3230 }
3231
3232
3237 @Override
3238 public void setResourceBundle(String resourceBundle) {
3239 _resourceBundle = resourceBundle;
3240 }
3241
3242
3249 @Override
3250 public void setRestoreCurrentView(boolean restoreCurrentView) {
3251 _restoreCurrentView = restoreCurrentView;
3252 }
3253
3254
3259 @Override
3260 public void setRoleMappers(Map<String, String> roleMappers) {
3261 _roleMappers = roleMappers;
3262 }
3263
3264
3269 @Override
3270 public void setRoles(String roles) {
3271 _rolesArray = StringUtil.split(roles);
3272
3273 super.setRoles(roles);
3274 }
3275
3276
3281 @Override
3282 public void setRolesArray(String[] rolesArray) {
3283 _rolesArray = rolesArray;
3284
3285 super.setRoles(StringUtil.merge(rolesArray));
3286 }
3287
3288
3293 @Override
3294 public void setSchedulerEntries(List<SchedulerEntry> schedulerEntries) {
3295 for (SchedulerEntry schedulerEntry : schedulerEntries) {
3296 addSchedulerEntry(schedulerEntry);
3297 }
3298 }
3299
3300
3306 @Override
3307 public void setScopeable(boolean scopeable) {
3308 _scopeable = scopeable;
3309 }
3310
3311
3318 @Override
3319 public void setShowPortletAccessDenied(boolean showPortletAccessDenied) {
3320 _showPortletAccessDenied = showPortletAccessDenied;
3321 }
3322
3323
3329 @Override
3330 public void setShowPortletInactive(boolean showPortletInactive) {
3331 _showPortletInactive = showPortletInactive;
3332 }
3333
3334
3340 @Override
3341 public void setSocialActivityInterpreterClass(
3342 String socialActivityInterpreterClass) {
3343
3344 _socialActivityInterpreterClass = socialActivityInterpreterClass;
3345 }
3346
3347
3353 @Override
3354 public void setSocialRequestInterpreterClass(
3355 String socialRequestInterpreterClass) {
3356
3357 _socialRequestInterpreterClass = socialRequestInterpreterClass;
3358 }
3359
3360
3367 @Override
3368 public void setStatic(boolean staticPortlet) {
3369 _staticPortlet = staticPortlet;
3370 }
3371
3372
3379 @Override
3380 public void setStaticStart(boolean staticPortletStart) {
3381 _staticPortletStart = staticPortletStart;
3382 }
3383
3384
3389 @Override
3390 public void setStrutsPath(String strutsPath) {
3391 _strutsPath = strutsPath;
3392 }
3393
3394
3399 @Override
3400 public void setSupportedLocales(Set<String> supportedLocales) {
3401 _supportedLocales = supportedLocales;
3402 }
3403
3404
3411 @Override
3412 public void setSystem(boolean system) {
3413 _system = system;
3414 }
3415
3416
3421 @Override
3422 public void setTimestamp(long timestamp) {
3423 _timestamp = timestamp;
3424 }
3425
3426
3432 @Override
3433 public void setUndeployedPortlet(boolean undeployedPortlet) {
3434 _undeployedPortlet = undeployedPortlet;
3435 }
3436
3437
3442 @Override
3443 public void setUnlinkedRoles(Set<String> unlinkedRoles) {
3444 _unlinkedRoles = unlinkedRoles;
3445 }
3446
3447
3452 @Override
3453 public void setURLEncoderClass(String urlEncoderClass) {
3454 _urlEncoderClass = urlEncoderClass;
3455 }
3456
3457
3463 @Override
3464 public void setUseDefaultTemplate(boolean useDefaultTemplate) {
3465 _useDefaultTemplate = useDefaultTemplate;
3466 }
3467
3468
3473 @Override
3474 public void setUserPrincipalStrategy(String userPrincipalStrategy) {
3475 if (Validator.isNotNull(userPrincipalStrategy)) {
3476 _userPrincipalStrategy = userPrincipalStrategy;
3477 }
3478 }
3479
3480
3485 @Override
3486 public void setVirtualPath(String virtualPath) {
3487 if (_portletApp.isWARFile() && Validator.isNull(virtualPath)) {
3488 virtualPath = PropsValues.PORTLET_VIRTUAL_PATH;
3489 }
3490
3491 _virtualPath = virtualPath;
3492 }
3493
3494
3500 @Override
3501 public void setWebDAVStorageClass(String webDAVStorageClass) {
3502 _webDAVStorageClass = webDAVStorageClass;
3503 }
3504
3505
3511 @Override
3512 public void setWebDAVStorageToken(String webDAVStorageToken) {
3513 _webDAVStorageToken = webDAVStorageToken;
3514 }
3515
3516
3521 @Override
3522 public void setWindowStates(Map<String, Set<String>> windowStates) {
3523 _windowStates = windowStates;
3524 }
3525
3526
3533 @Override
3534 public void setWorkflowHandlerClasses(List<String> workflowHandlerClasses) {
3535 _workflowHandlerClasses = workflowHandlerClasses;
3536 }
3537
3538
3544 @Override
3545 public void setXmlRpcMethodClass(String xmlRpcMethodClass) {
3546 _xmlRpcMethodClass = xmlRpcMethodClass;
3547 }
3548
3549
3552 private static Log _log = LogFactoryUtil.getLog(PortletImpl.class);
3553
3554
3557 private static Map<String, Boolean> _readyMap =
3558 new ConcurrentHashMap<String, Boolean>();
3559
3560
3563 private int _actionTimeout;
3564
3565
3569 private boolean _actionURLRedirect;
3570
3571
3575 private boolean _addDefaultResource;
3576
3577
3580 private boolean _ajaxable = true;
3581
3582
3586 private List<String> _assetRendererFactoryClasses;
3587
3588
3592 private List<String> _atomCollectionAdapterClasses;
3593
3594
3598 private Set<String> _autopropagatedParameters;
3599
3600
3603 private String _configurationActionClass;
3604
3605
3609 private String _controlPanelEntryCategory;
3610
3611
3615 private String _controlPanelEntryClass;
3616
3617
3621 private double _controlPanelEntryWeight = 100;
3622
3623
3627 private String _cssClassWrapper = StringPool.BLANK;
3628
3629
3633 private List<String> _customAttributesDisplayClasses;
3634
3635
3638 private PluginSetting _defaultPluginSetting;
3639
3640
3643 private String _defaultPreferences;
3644
3645
3648 private String _displayName;
3649
3650
3653 private Integer _expCache;
3654
3655
3658 private String _facebookIntegration =
3659 PortletConstants.FACEBOOK_INTEGRATION_IFRAME;
3660
3661
3665 private List<String> _footerPortalCss;
3666
3667
3671 private List<String> _footerPortalJavaScript;
3672
3673
3677 private List<String> _footerPortletCss;
3678
3679
3683 private List<String> _footerPortletJavaScript;
3684
3685
3688 private String _friendlyURLMapperClass;
3689
3690
3693 private String _friendlyURLMapping;
3694
3695
3699 private String _friendlyURLRoutes;
3700
3701
3705 private List<String> _headerPortalCss;
3706
3707
3711 private List<String> _headerPortalJavaScript;
3712
3713
3717 private List<String> _headerPortletCss;
3718
3719
3723 private List<String> _headerPortletJavaScript;
3724
3725
3728 private String _icon;
3729
3730
3734 private boolean _include = true;
3735
3736
3740 private List<String> _indexerClasses;
3741
3742
3745 private Map<String, String> _initParams;
3746
3747
3750 private boolean _instanceable;
3751
3752
3755 private boolean _layoutCacheable;
3756
3757
3761 private boolean _maximizeEdit;
3762
3763
3767 private boolean _maximizeHelp;
3768
3769
3772 private String _openSearchClass;
3773
3774
3777 private String _parentStrutsPath;
3778
3779
3782 private String _permissionPropagatorClass;
3783
3784
3787 private PluginPackage _pluginPackage;
3788
3789
3792 private String _pollerProcessorClass;
3793
3794
3797 private String _popMessageListenerClass;
3798
3799
3803 private boolean _popUpPrint = true;
3804
3805
3808 private PortletApp _portletApp;
3809
3810
3813 private String _portletClass;
3814
3815
3818 private String _portletDataHandlerClass;
3819
3820
3823 private Map<String, PortletFilter> _portletFilters;
3824
3825
3828 private PortletInfo _portletInfo;
3829
3830
3833 private String _portletLayoutListenerClass;
3834
3835
3838 private Map<String, Set<String>> _portletModes;
3839
3840
3843 private String _portletName;
3844
3845
3848 private String _portletURLClass;
3849
3850
3853 private boolean _preferencesCompanyWide;
3854
3855
3860 private boolean _preferencesOwnedByGroup = true;
3861
3862
3865 private boolean _preferencesUniquePerLayout = true;
3866
3867
3870 private String _preferencesValidator;
3871
3872
3876 private boolean _privateRequestAttributes = true;
3877
3878
3882 private boolean _privateSessionAttributes = true;
3883
3884
3887 private Set<QName> _processingEvents = new HashSet<QName>();
3888
3889
3892 private Map<String, QName> _processingEventsByQName =
3893 new HashMap<String, QName>();
3894
3895
3898 private Set<PublicRenderParameter> _publicRenderParameters =
3899 new HashSet<PublicRenderParameter>();
3900
3901
3905 private Map<String, PublicRenderParameter>
3906 _publicRenderParametersByIdentifier =
3907 new HashMap<String, PublicRenderParameter>();
3908
3909
3913 private Map<String, PublicRenderParameter>
3914 _publicRenderParametersByQName =
3915 new HashMap<String, PublicRenderParameter>();
3916
3917
3920 private Set<QName> _publishingEvents = new HashSet<QName>();
3921
3922
3925 private boolean _remoteable;
3926
3927
3930 private int _renderTimeout;
3931
3932
3935 private int _renderWeight = 1;
3936
3937
3940 private String _resourceBundle;
3941
3942
3946 private boolean _restoreCurrentView = true;
3947
3948
3951 private Map<String, String> _roleMappers;
3952
3953
3956 private String[] _rolesArray = new String[0];
3957
3958
3961 private Portlet _rootPortlet = this;
3962
3963
3966 private List<SchedulerEntry> _schedulerEntries;
3967
3968
3971 private boolean _scopeable;
3972
3973
3977 private boolean _showPortletAccessDenied =
3978 PropsValues.LAYOUT_SHOW_PORTLET_ACCESS_DENIED;
3979
3980
3983 private boolean _showPortletInactive =
3984 PropsValues.LAYOUT_SHOW_PORTLET_INACTIVE;
3985
3986
3989 private String _socialActivityInterpreterClass;
3990
3991
3994 private String _socialRequestInterpreterClass;
3995
3996
4000 private boolean _staticPortlet;
4001
4002
4006 private boolean _staticPortletStart;
4007
4008
4011 private String _strutsPath;
4012
4013
4016 private Set<String> _supportedLocales;
4017
4018
4022 private boolean _system;
4023
4024
4027 private long _timestamp;
4028
4029
4032 private boolean _undeployedPortlet = false;
4033
4034
4037 private Set<String> _unlinkedRoles;
4038
4039
4042 private String _urlEncoderClass;
4043
4044
4047 private boolean _useDefaultTemplate = true;
4048
4049
4052 private String _userPrincipalStrategy =
4053 PortletConstants.USER_PRINCIPAL_STRATEGY_USER_ID;
4054
4055
4058 private String _virtualPath;
4059
4060
4063 private String _webDAVStorageClass;
4064
4065
4068 private String _webDAVStorageToken;
4069
4070
4073 private Map<String, Set<String>> _windowStates;
4074
4075
4079 private List<String> _workflowHandlerClasses;
4080
4081
4084 private String _xmlRpcMethodClass;
4085
4086 }