001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.portal.kernel.atom.AtomCollectionAdapter;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.kernel.notifications.UserNotificationHandler;
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.FriendlyURLMapperTracker;
027 import com.liferay.portal.kernel.portlet.PortletBag;
028 import com.liferay.portal.kernel.portlet.PortletBagPool;
029 import com.liferay.portal.kernel.portlet.PortletLayoutListener;
030 import com.liferay.portal.kernel.scheduler.SchedulerEntry;
031 import com.liferay.portal.kernel.search.Indexer;
032 import com.liferay.portal.kernel.search.OpenSearch;
033 import com.liferay.portal.kernel.servlet.ServletContextUtil;
034 import com.liferay.portal.kernel.servlet.URLEncoder;
035 import com.liferay.portal.kernel.template.TemplateHandler;
036 import com.liferay.portal.kernel.trash.TrashHandler;
037 import com.liferay.portal.kernel.util.ArrayUtil;
038 import com.liferay.portal.kernel.util.ContentTypes;
039 import com.liferay.portal.kernel.util.StringPool;
040 import com.liferay.portal.kernel.util.StringUtil;
041 import com.liferay.portal.kernel.util.Validator;
042 import com.liferay.portal.kernel.webdav.WebDAVStorage;
043 import com.liferay.portal.kernel.workflow.WorkflowHandler;
044 import com.liferay.portal.kernel.xml.QName;
045 import com.liferay.portal.kernel.xmlrpc.Method;
046 import com.liferay.portal.model.Plugin;
047 import com.liferay.portal.model.PluginSetting;
048 import com.liferay.portal.model.Portlet;
049 import com.liferay.portal.model.PortletApp;
050 import com.liferay.portal.model.PortletConstants;
051 import com.liferay.portal.model.PortletFilter;
052 import com.liferay.portal.model.PortletInfo;
053 import com.liferay.portal.model.PublicRenderParameter;
054 import com.liferay.portal.model.User;
055 import com.liferay.portal.security.permission.ActionKeys;
056 import com.liferay.portal.security.permission.PermissionChecker;
057 import com.liferay.portal.security.permission.PermissionCheckerFactoryUtil;
058 import com.liferay.portal.security.permission.PermissionPropagator;
059 import com.liferay.portal.security.permission.PermissionThreadLocal;
060 import com.liferay.portal.service.UserLocalServiceUtil;
061 import com.liferay.portal.service.permission.PortletPermissionUtil;
062 import com.liferay.portal.util.PortalUtil;
063 import com.liferay.portal.util.PropsValues;
064 import com.liferay.portlet.ControlPanelEntry;
065 import com.liferay.portlet.DefaultControlPanelEntryFactory;
066 import com.liferay.portlet.PortletQNameUtil;
067 import com.liferay.portlet.asset.model.AssetRendererFactory;
068 import com.liferay.portlet.expando.model.CustomAttributesDisplay;
069 import com.liferay.portlet.exportimport.lar.DefaultConfigurationPortletDataHandler;
070 import com.liferay.portlet.exportimport.lar.PortletDataHandler;
071 import com.liferay.portlet.exportimport.lar.StagedModelDataHandler;
072 import com.liferay.portlet.social.model.SocialActivityInterpreter;
073 import com.liferay.portlet.social.model.SocialRequestInterpreter;
074 import com.liferay.registry.Registry;
075 import com.liferay.registry.RegistryUtil;
076 import com.liferay.registry.ServiceRegistrar;
077
078 import java.util.ArrayList;
079 import java.util.Arrays;
080 import java.util.HashMap;
081 import java.util.HashSet;
082 import java.util.LinkedHashMap;
083 import java.util.LinkedHashSet;
084 import java.util.List;
085 import java.util.Map;
086 import java.util.Set;
087 import java.util.TreeSet;
088 import java.util.concurrent.ConcurrentHashMap;
089
090 import javax.portlet.PortletMode;
091 import javax.portlet.WindowState;
092
093 import javax.servlet.ServletContext;
094
095
098 public class PortletImpl extends PortletBaseImpl {
099
100
103 public PortletImpl() {
104 this(0, null);
105 }
106
107
110 public PortletImpl(long companyId, String portletId) {
111 setCompanyId(companyId);
112 setPortletId(portletId);
113
114 setActive(true);
115 setStrutsPath(portletId);
116
117 _assetRendererFactoryClasses = new ArrayList<>();
118 _atomCollectionAdapterClasses = new ArrayList<>();
119 _autopropagatedParameters = new LinkedHashSet<>();
120 _customAttributesDisplayClasses = new ArrayList<>();
121 _footerPortalCss = new ArrayList<>();
122 _footerPortalJavaScript = new ArrayList<>();
123 _footerPortletCss = new ArrayList<>();
124 _footerPortletJavaScript = new ArrayList<>();
125 _headerPortalCss = new ArrayList<>();
126 _headerPortalJavaScript = new ArrayList<>();
127 _headerPortletCss = new ArrayList<>();
128 _headerPortletJavaScript = new ArrayList<>();
129 _indexerClasses = new ArrayList<>();
130 _initParams = new HashMap<>();
131 _portletFilters = new LinkedHashMap<>();
132 _portletModes = new HashMap<>();
133 _roleMappers = new LinkedHashMap<>();
134 _rootPortlet = this;
135 _schedulerEntries = new ArrayList<>();
136 _socialActivityInterpreterClasses = new ArrayList<>();
137 _stagedModelDataHandlerClasses = new ArrayList<>();
138 _supportedLocales = new HashSet<>();
139 _trashHandlerClasses = new ArrayList<>();
140 _unlinkedRoles = new HashSet<>();
141 _userNotificationHandlerClasses = new ArrayList<>();
142 _windowStates = new HashMap<>();
143 _workflowHandlerClasses = new ArrayList<>();
144 }
145
146
149 public PortletImpl(
150 String portletId, Portlet rootPortlet, PluginPackage pluginPackage,
151 PluginSetting pluginSetting, long companyId, String icon,
152 String virtualPath, String strutsPath, String parentStrutsPath,
153 String portletName, String displayName, String portletClass,
154 String configurationActionClass, List<String> indexerClasses,
155 String openSearchClass, List<SchedulerEntry> schedulerEntries,
156 String portletURLClass, String friendlyURLMapperClass,
157 String friendlyURLMapping, String friendlyURLRoutes,
158 String urlEncoderClass, String portletDataHandlerClass,
159 List<String> stagedModelDataHandlerClasses, String templateHandlerClass,
160 String portletLayoutListenerClass, String pollerProcessorClass,
161 String popMessageListenerClass,
162 List<String> socialActivityInterpreterClasses,
163 String socialRequestInterpreterClass,
164 boolean socialInteractionsConfiguration,
165 String userNotificationDefinitions,
166 List<String> userNotificationHandlerClasses, String webDAVStorageToken,
167 String webDAVStorageClass, String xmlRpcMethodClass,
168 String controlPanelEntryCategory, double controlPanelEntryWeight,
169 String controlPanelClass, List<String> assetRendererFactoryClasses,
170 List<String> atomCollectionAdapterClasses,
171 List<String> customAttributesDisplayClasses, String ddmDisplayClass,
172 String permissionPropagatorClass, List<String> trashHandlerClasses,
173 List<String> workflowHandlerClasses, String defaultPreferences,
174 String preferencesValidator, boolean preferencesCompanyWide,
175 boolean preferencesUniquePerLayout, boolean preferencesOwnedByGroup,
176 boolean useDefaultTemplate, boolean showPortletAccessDenied,
177 boolean showPortletInactive, boolean actionURLRedirect,
178 boolean restoreCurrentView, boolean maximizeEdit, boolean maximizeHelp,
179 boolean popUpPrint, boolean layoutCacheable, boolean instanceable,
180 boolean remoteable, boolean scopeable, boolean singlePageApplication,
181 String userPrincipalStrategy, boolean privateRequestAttributes,
182 boolean privateSessionAttributes, Set<String> autopropagatedParameters,
183 boolean requiresNamespacedParameters, int actionTimeout,
184 int renderTimeout, int renderWeight, boolean ajaxable,
185 List<String> headerPortalCss, List<String> headerPortletCss,
186 List<String> headerPortalJavaScript,
187 List<String> headerPortletJavaScript, List<String> footerPortalCss,
188 List<String> footerPortletCss, List<String> footerPortalJavaScript,
189 List<String> footerPortletJavaScript, String cssClassWrapper,
190 String facebookIntegration, boolean addDefaultResource, String roles,
191 Set<String> unlinkedRoles, Map<String, String> roleMappers,
192 boolean system, boolean active, boolean include,
193 Map<String, String> initParams, Integer expCache,
194 Map<String, Set<String>> portletModes,
195 Map<String, Set<String>> windowStates, Set<String> supportedLocales,
196 String resourceBundle, PortletInfo portletInfo,
197 Map<String, PortletFilter> portletFilters, Set<QName> processingEvents,
198 Set<QName> publishingEvents,
199 Set<PublicRenderParameter> publicRenderParameters,
200 PortletApp portletApp) {
201
202 setPortletId(portletId);
203 setCompanyId(companyId);
204 setRoles(roles);
205 setActive(active);
206 setProcessingEvents(processingEvents);
207 setPublishingEvents(publishingEvents);
208 setPublicRenderParameters(publicRenderParameters);
209
210 _rootPortlet = rootPortlet;
211 _pluginPackage = pluginPackage;
212 _defaultPluginSetting = pluginSetting;
213 _icon = icon;
214 _virtualPath = virtualPath;
215 _strutsPath = strutsPath;
216 _parentStrutsPath = parentStrutsPath;
217 _portletName = portletName;
218 _displayName = displayName;
219 _portletClass = portletClass;
220 _configurationActionClass = configurationActionClass;
221 _indexerClasses = indexerClasses;
222 _openSearchClass = openSearchClass;
223 _schedulerEntries = schedulerEntries;
224 _portletURLClass = portletURLClass;
225 _friendlyURLMapperClass = friendlyURLMapperClass;
226 _friendlyURLMapping = friendlyURLMapping;
227 _friendlyURLRoutes = friendlyURLRoutes;
228 _urlEncoderClass = urlEncoderClass;
229 _portletDataHandlerClass = portletDataHandlerClass;
230 _stagedModelDataHandlerClasses = stagedModelDataHandlerClasses;
231 _templateHandlerClass = templateHandlerClass;
232 _portletLayoutListenerClass = portletLayoutListenerClass;
233 _pollerProcessorClass = pollerProcessorClass;
234 _popMessageListenerClass = popMessageListenerClass;
235 _socialActivityInterpreterClasses = socialActivityInterpreterClasses;
236 _socialRequestInterpreterClass = socialRequestInterpreterClass;
237 _socialInteractionsConfiguration = socialInteractionsConfiguration;
238 _userNotificationDefinitions = userNotificationDefinitions;
239 _userNotificationHandlerClasses = userNotificationHandlerClasses;
240 _webDAVStorageToken = webDAVStorageToken;
241 _webDAVStorageClass = webDAVStorageClass;
242 _xmlRpcMethodClass = xmlRpcMethodClass;
243 _controlPanelEntryCategory = controlPanelEntryCategory;
244 _controlPanelEntryWeight = controlPanelEntryWeight;
245 _controlPanelEntryClass = controlPanelClass;
246 _assetRendererFactoryClasses = assetRendererFactoryClasses;
247 _atomCollectionAdapterClasses = atomCollectionAdapterClasses;
248 _customAttributesDisplayClasses = customAttributesDisplayClasses;
249 _ddmDisplayClass = ddmDisplayClass;
250 _permissionPropagatorClass = permissionPropagatorClass;
251 _trashHandlerClasses = trashHandlerClasses;
252 _workflowHandlerClasses = workflowHandlerClasses;
253 _defaultPreferences = defaultPreferences;
254 _preferencesValidator = preferencesValidator;
255 _preferencesCompanyWide = preferencesCompanyWide;
256 _preferencesUniquePerLayout = preferencesUniquePerLayout;
257 _preferencesOwnedByGroup = preferencesOwnedByGroup;
258 _useDefaultTemplate = useDefaultTemplate;
259 _showPortletAccessDenied = showPortletAccessDenied;
260 _showPortletInactive = showPortletInactive;
261 _actionURLRedirect = actionURLRedirect;
262 _restoreCurrentView = restoreCurrentView;
263 _maximizeEdit = maximizeEdit;
264 _maximizeHelp = maximizeHelp;
265 _popUpPrint = popUpPrint;
266 _layoutCacheable = layoutCacheable;
267 _instanceable = instanceable;
268 _remoteable = remoteable;
269 _scopeable = scopeable;
270 _singlePageApplication = singlePageApplication;
271 _userPrincipalStrategy = userPrincipalStrategy;
272 _privateRequestAttributes = privateRequestAttributes;
273 _privateSessionAttributes = privateSessionAttributes;
274 _autopropagatedParameters = autopropagatedParameters;
275 _requiresNamespacedParameters = requiresNamespacedParameters;
276 _actionTimeout = actionTimeout;
277 _renderTimeout = renderTimeout;
278 _renderWeight = renderWeight;
279 _ajaxable = ajaxable;
280 _headerPortalCss = headerPortalCss;
281 _headerPortletCss = headerPortletCss;
282 _headerPortalJavaScript = headerPortalJavaScript;
283 _headerPortletJavaScript = headerPortletJavaScript;
284 _footerPortalCss = footerPortalCss;
285 _footerPortletCss = footerPortletCss;
286 _footerPortalJavaScript = footerPortalJavaScript;
287 _footerPortletJavaScript = footerPortletJavaScript;
288 _cssClassWrapper = cssClassWrapper;
289 _facebookIntegration = facebookIntegration;
290 _addDefaultResource = addDefaultResource;
291 _unlinkedRoles = unlinkedRoles;
292 _roleMappers = roleMappers;
293 _system = system;
294 _include = include;
295 _initParams = initParams;
296 _expCache = expCache;
297 _portletModes = portletModes;
298 _windowStates = windowStates;
299 _supportedLocales = supportedLocales;
300 _resourceBundle = resourceBundle;
301 _portletInfo = portletInfo;
302 _portletFilters = portletFilters;
303 _portletApp = portletApp;
304 }
305
306
309 @Override
310 public void addProcessingEvent(QName processingEvent) {
311 _processingEvents.add(processingEvent);
312 _processingEventsByQName.put(
313 PortletQNameUtil.getKey(processingEvent), processingEvent);
314 }
315
316
321 @Override
322 public void addPublicRenderParameter(
323 PublicRenderParameter publicRenderParameter) {
324
325 _publicRenderParameters.add(publicRenderParameter);
326
327 String identifier = publicRenderParameter.getIdentifier();
328
329 _publicRenderParametersByIdentifier.put(
330 identifier, publicRenderParameter);
331
332 QName qName = publicRenderParameter.getQName();
333
334 _publicRenderParametersByQName.put(
335 PortletQNameUtil.getKey(qName), publicRenderParameter);
336
337 String publicRenderParameterName =
338 PortletQNameUtil.getPublicRenderParameterName(qName);
339
340 PortletQNameUtil.setPublicRenderParameterIdentifier(
341 publicRenderParameterName, identifier);
342 }
343
344
347 @Override
348 public void addPublishingEvent(QName publishingEvent) {
349 _publishingEvents.add(publishingEvent);
350 }
351
352
355 @Override
356 public void addSchedulerEntry(SchedulerEntry schedulerEntry) {
357 _schedulerEntries.add(schedulerEntry);
358 }
359
360
365 @Override
366 public Object clone() {
367 Portlet portlet = new PortletImpl(
368 getPortletId(), getRootPortlet(), getPluginPackage(),
369 getDefaultPluginSetting(), getCompanyId(), getIcon(),
370 getVirtualPath(), getStrutsPath(), getParentStrutsPath(),
371 getPortletName(), getDisplayName(), getPortletClass(),
372 getConfigurationActionClass(), getIndexerClasses(),
373 getOpenSearchClass(), getSchedulerEntries(), getPortletURLClass(),
374 getFriendlyURLMapperClass(), getFriendlyURLMapping(),
375 getFriendlyURLRoutes(), getURLEncoderClass(),
376 getPortletDataHandlerClass(), getStagedModelDataHandlerClasses(),
377 getTemplateHandlerClass(), getPortletLayoutListenerClass(),
378 getPollerProcessorClass(), getPopMessageListenerClass(),
379 getSocialActivityInterpreterClasses(),
380 getSocialRequestInterpreterClass(),
381 getSocialInteractionsConfiguration(),
382 getUserNotificationDefinitions(),
383 getUserNotificationHandlerClasses(), getWebDAVStorageToken(),
384 getWebDAVStorageClass(), getXmlRpcMethodClass(),
385 getControlPanelEntryCategory(), getControlPanelEntryWeight(),
386 getControlPanelEntryClass(), getAssetRendererFactoryClasses(),
387 getAtomCollectionAdapterClasses(),
388 getCustomAttributesDisplayClasses(), getDDMDisplayClass(),
389 getPermissionPropagatorClass(), getTrashHandlerClasses(),
390 getWorkflowHandlerClasses(), getDefaultPreferences(),
391 getPreferencesValidator(), isPreferencesCompanyWide(),
392 isPreferencesUniquePerLayout(), isPreferencesOwnedByGroup(),
393 isUseDefaultTemplate(), isShowPortletAccessDenied(),
394 isShowPortletInactive(), isActionURLRedirect(),
395 isRestoreCurrentView(), isMaximizeEdit(), isMaximizeHelp(),
396 isPopUpPrint(), isLayoutCacheable(), isInstanceable(),
397 isRemoteable(), isScopeable(), isSinglePageApplication(),
398 getUserPrincipalStrategy(), isPrivateRequestAttributes(),
399 isPrivateSessionAttributes(), getAutopropagatedParameters(),
400 isRequiresNamespacedParameters(), getActionTimeout(),
401 getRenderTimeout(), getRenderWeight(), isAjaxable(),
402 getHeaderPortalCss(), getHeaderPortletCss(),
403 getHeaderPortalJavaScript(), getHeaderPortletJavaScript(),
404 getFooterPortalCss(), getFooterPortletCss(),
405 getFooterPortalJavaScript(), getFooterPortletJavaScript(),
406 getCssClassWrapper(), getFacebookIntegration(),
407 isAddDefaultResource(), getRoles(), getUnlinkedRoles(),
408 getRoleMappers(), isSystem(), isActive(), isInclude(),
409 getInitParams(), getExpCache(), getPortletModes(),
410 getWindowStates(), getSupportedLocales(), getResourceBundle(),
411 getPortletInfo(), getPortletFilters(), getProcessingEvents(),
412 getPublishingEvents(), getPublicRenderParameters(),
413 getPortletApp());
414
415 portlet.setId(getId());
416 portlet.setUndeployedPortlet(isUndeployedPortlet());
417
418 return portlet;
419 }
420
421
430 @Override
431 public int compareTo(Portlet portlet) {
432 String portletId = getPortletId();
433
434 return portletId.compareTo(portlet.getPortletId());
435 }
436
437
443 @Override
444 public boolean equals(Object obj) {
445 if (this == obj) {
446 return true;
447 }
448
449 if (!(obj instanceof Portlet)) {
450 return false;
451 }
452
453 Portlet portlet = (Portlet)obj;
454
455 String portletId = getPortletId();
456
457 return portletId.equals(portlet.getPortletId());
458 }
459
460
465 @Override
466 public int getActionTimeout() {
467 return _actionTimeout;
468 }
469
470
477 @Override
478 public boolean getActionURLRedirect() {
479 return _actionURLRedirect;
480 }
481
482
489 @Override
490 public boolean getAddDefaultResource() {
491 return _addDefaultResource;
492 }
493
494
499 @Override
500 public boolean getAjaxable() {
501 return _ajaxable;
502 }
503
504
509 @Override
510 public Set<String> getAllPortletModes() {
511 Set<String> allPortletModes = new TreeSet<>();
512
513 for (Map.Entry<String, Set<String>> entry : _portletModes.entrySet()) {
514 Set<String> mimeTypePortletModes = entry.getValue();
515
516 for (String portletMode : mimeTypePortletModes) {
517 allPortletModes.add(portletMode);
518 }
519 }
520
521 return allPortletModes;
522 }
523
524
529 @Override
530 public Set<String> getAllWindowStates() {
531 Set<String> allWindowStates = new TreeSet<>();
532
533 for (Map.Entry<String, Set<String>> entry : _windowStates.entrySet()) {
534 Set<String> mimeTypeWindowStates = entry.getValue();
535
536 for (String windowState : mimeTypeWindowStates) {
537 allWindowStates.add(windowState);
538 }
539 }
540
541 return allWindowStates;
542 }
543
544
551 @Override
552 public List<String> getAssetRendererFactoryClasses() {
553 return _assetRendererFactoryClasses;
554 }
555
556
561 @Override
562 public List<AssetRendererFactory> getAssetRendererFactoryInstances() {
563 if (_assetRendererFactoryClasses.isEmpty()) {
564 return null;
565 }
566
567 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
568
569 return portletBag.getAssetRendererFactoryInstances();
570 }
571
572
579 @Override
580 public List<String> getAtomCollectionAdapterClasses() {
581 return _atomCollectionAdapterClasses;
582 }
583
584
589 @Override
590 public List<AtomCollectionAdapter<?>> getAtomCollectionAdapterInstances() {
591 if (_atomCollectionAdapterClasses.isEmpty()) {
592 return null;
593 }
594
595 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
596
597 return portletBag.getAtomCollectionAdapterInstances();
598 }
599
600
607 @Override
608 public Set<String> getAutopropagatedParameters() {
609 return _autopropagatedParameters;
610 }
611
612
618 @Override
619 public Portlet getClonedInstance(String portletId) {
620 Portlet portlet = (Portlet)clone();
621
622 portlet.setPortletId(portletId);
623
624 return portlet;
625 }
626
627
632 @Override
633 public String getConfigurationActionClass() {
634 return _configurationActionClass;
635 }
636
637
642 @Override
643 public ConfigurationAction getConfigurationActionInstance() {
644 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
645
646 List<ConfigurationAction> configurationActionInstances =
647 portletBag.getConfigurationActionInstances();
648
649 if (configurationActionInstances.isEmpty()) {
650 return null;
651 }
652
653 return configurationActionInstances.get(0);
654 }
655
656
661 @Override
662 public String getContextName() {
663 if (!_portletApp.isWARFile()) {
664 return PortalUtil.getServletContextName();
665 }
666
667 return _portletApp.getServletContextName();
668 }
669
670
675 @Override
676 public String getContextPath() {
677 return _portletApp.getContextPath();
678 }
679
680
687 @Override
688 public String getControlPanelEntryCategory() {
689 return _controlPanelEntryCategory;
690 }
691
692
699 @Override
700 public String getControlPanelEntryClass() {
701 return _controlPanelEntryClass;
702 }
703
704
711 @Override
712 public ControlPanelEntry getControlPanelEntryInstance() {
713 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
714
715 List<ControlPanelEntry> controlPanelEntryInstances =
716 portletBag.getControlPanelEntryInstances();
717
718 if (controlPanelEntryInstances.isEmpty()) {
719 return DefaultControlPanelEntryFactory.getInstance();
720 }
721
722 return controlPanelEntryInstances.get(0);
723 }
724
725
732 @Override
733 public double getControlPanelEntryWeight() {
734 return _controlPanelEntryWeight;
735 }
736
737
744 @Override
745 public String getCssClassWrapper() {
746 return _cssClassWrapper;
747 }
748
749
756 @Override
757 public List<String> getCustomAttributesDisplayClasses() {
758 return _customAttributesDisplayClasses;
759 }
760
761
766 @Override
767 public List<CustomAttributesDisplay> getCustomAttributesDisplayInstances() {
768 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
769
770 return portletBag.getCustomAttributesDisplayInstances();
771 }
772
773
779 @Override
780 public String getDDMDisplayClass() {
781 return _ddmDisplayClass;
782 }
783
784
789 @Override
790 public PluginSetting getDefaultPluginSetting() {
791 return _defaultPluginSetting;
792 }
793
794
799 @Override
800 public String getDefaultPreferences() {
801 if (Validator.isNull(_defaultPreferences)) {
802 return PortletConstants.DEFAULT_PREFERENCES;
803 }
804 else {
805 return _defaultPreferences;
806 }
807 }
808
809
814 @Override
815 public String getDisplayName() {
816 return _displayName;
817 }
818
819
824 @Override
825 public Integer getExpCache() {
826 return _expCache;
827 }
828
829
834 @Override
835 public String getFacebookIntegration() {
836 return _facebookIntegration;
837 }
838
839
846 @Override
847 public List<String> getFooterPortalCss() {
848 return _footerPortalCss;
849 }
850
851
858 @Override
859 public List<String> getFooterPortalJavaScript() {
860 return _footerPortalJavaScript;
861 }
862
863
870 @Override
871 public List<String> getFooterPortletCss() {
872 return _footerPortletCss;
873 }
874
875
882 @Override
883 public List<String> getFooterPortletJavaScript() {
884 return _footerPortletJavaScript;
885 }
886
887
892 @Override
893 public String getFriendlyURLMapperClass() {
894 return _friendlyURLMapperClass;
895 }
896
897
902 @Override
903 public FriendlyURLMapper getFriendlyURLMapperInstance() {
904 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
905
906 FriendlyURLMapperTracker friendlyURLMapperTracker =
907 portletBag.getFriendlyURLMapperTracker();
908
909 return friendlyURLMapperTracker.getFriendlyURLMapper();
910 }
911
912
917 @Override
918 public String getFriendlyURLMapping() {
919 return _friendlyURLMapping;
920 }
921
922
929 @Override
930 public String getFriendlyURLRoutes() {
931 return _friendlyURLRoutes;
932 }
933
934
941 @Override
942 public List<String> getHeaderPortalCss() {
943 return _headerPortalCss;
944 }
945
946
953 @Override
954 public List<String> getHeaderPortalJavaScript() {
955 return _headerPortalJavaScript;
956 }
957
958
965 @Override
966 public List<String> getHeaderPortletCss() {
967 return _headerPortletCss;
968 }
969
970
977 @Override
978 public List<String> getHeaderPortletJavaScript() {
979 return _headerPortletJavaScript;
980 }
981
982
987 @Override
988 public String getIcon() {
989 return _icon;
990 }
991
992
999 @Override
1000 public boolean getInclude() {
1001 return _include;
1002 }
1003
1004
1011 @Override
1012 public List<String> getIndexerClasses() {
1013 return _indexerClasses;
1014 }
1015
1016
1021 @Override
1022 public List<Indexer> getIndexerInstances() {
1023 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1024
1025 return portletBag.getIndexerInstances();
1026 }
1027
1028
1033 @Override
1034 public Map<String, String> getInitParams() {
1035 return _initParams;
1036 }
1037
1038
1045 @Override
1046 public boolean getInstanceable() {
1047 return _instanceable;
1048 }
1049
1050
1055 @Override
1056 public String getInstanceId() {
1057 return PortletConstants.getInstanceId(getPortletId());
1058 }
1059
1060
1066 @Override
1067 public boolean getLayoutCacheable() {
1068 return _layoutCacheable;
1069 }
1070
1071
1078 @Override
1079 public boolean getMaximizeEdit() {
1080 return _maximizeEdit;
1081 }
1082
1083
1090 @Override
1091 public boolean getMaximizeHelp() {
1092 return _maximizeHelp;
1093 }
1094
1095
1100 @Override
1101 public String getOpenSearchClass() {
1102 return _openSearchClass;
1103 }
1104
1105
1110 @Override
1111 public OpenSearch getOpenSearchInstance() {
1112 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1113
1114 List<OpenSearch> openSearchInstances =
1115 portletBag.getOpenSearchInstances();
1116
1117 if (openSearchInstances.isEmpty()) {
1118 return null;
1119 }
1120
1121 return openSearchInstances.get(0);
1122 }
1123
1124
1129 @Override
1130 public String getParentStrutsPath() {
1131 return _parentStrutsPath;
1132 }
1133
1134
1139 @Override
1140 public String getPermissionPropagatorClass() {
1141 return _permissionPropagatorClass;
1142 }
1143
1144
1149 @Override
1150 public PermissionPropagator getPermissionPropagatorInstance() {
1151 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1152
1153 List<PermissionPropagator> permissionPropagatorInstances =
1154 portletBag.getPermissionPropagatorInstances();
1155
1156 if (permissionPropagatorInstances.isEmpty()) {
1157 return null;
1158 }
1159
1160 return permissionPropagatorInstances.get(0);
1161 }
1162
1163
1168 @Override
1169 public String getPluginId() {
1170 return getRootPortletId();
1171 }
1172
1173
1178 @Override
1179 public PluginPackage getPluginPackage() {
1180 return _pluginPackage;
1181 }
1182
1183
1188 @Override
1189 public String getPluginType() {
1190 return Plugin.TYPE_PORTLET;
1191 }
1192
1193
1198 @Override
1199 public String getPollerProcessorClass() {
1200 return _pollerProcessorClass;
1201 }
1202
1203
1208 @Override
1209 public PollerProcessor getPollerProcessorInstance() {
1210 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1211
1212 List<PollerProcessor> pollerProcessorInstances =
1213 portletBag.getPollerProcessorInstances();
1214
1215 if (pollerProcessorInstances.isEmpty()) {
1216 return null;
1217 }
1218
1219 return pollerProcessorInstances.get(0);
1220 }
1221
1222
1227 @Override
1228 public String getPopMessageListenerClass() {
1229 return _popMessageListenerClass;
1230 }
1231
1232
1237 @Override
1238 public MessageListener getPopMessageListenerInstance() {
1239 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1240
1241 List<MessageListener> popMessageListenerInstances =
1242 portletBag.getPopMessageListenerInstances();
1243
1244 if (popMessageListenerInstances.isEmpty()) {
1245 return null;
1246 }
1247
1248 return popMessageListenerInstances.get(0);
1249 }
1250
1251
1258 @Override
1259 public boolean getPopUpPrint() {
1260 return _popUpPrint;
1261 }
1262
1263
1268 @Override
1269 public PortletApp getPortletApp() {
1270 return _portletApp;
1271 }
1272
1273
1278 @Override
1279 public String getPortletClass() {
1280 return _portletClass;
1281 }
1282
1283
1288 @Override
1289 public String getPortletDataHandlerClass() {
1290 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1291
1292 if (portletBag == null) {
1293 return _portletDataHandlerClass;
1294 }
1295
1296 PortletDataHandler portletDataHandler = getPortletDataHandlerInstance();
1297
1298 if (portletDataHandler == null) {
1299 return _portletDataHandlerClass;
1300 }
1301
1302 Class<?> clazz = portletDataHandler.getClass();
1303
1304 return clazz.getName();
1305 }
1306
1307
1312 @Override
1313 public PortletDataHandler getPortletDataHandlerInstance() {
1314 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1315
1316 if (portletBag == null) {
1317 _log.error("No portlet bag for " + toString());
1318
1319 throw new IllegalStateException("No portlet bag for " + toString());
1320 }
1321
1322 List<PortletDataHandler> portletDataHandlerInstances =
1323 portletBag.getPortletDataHandlerInstances();
1324
1325 if (portletDataHandlerInstances.isEmpty()) {
1326 return null;
1327 }
1328
1329 return portletDataHandlerInstances.get(0);
1330 }
1331
1332
1337 @Override
1338 public Map<String, PortletFilter> getPortletFilters() {
1339 return _portletFilters;
1340 }
1341
1342
1347 @Override
1348 public PortletInfo getPortletInfo() {
1349 return _portletInfo;
1350 }
1351
1352
1357 @Override
1358 public String getPortletLayoutListenerClass() {
1359 return _portletLayoutListenerClass;
1360 }
1361
1362
1367 @Override
1368 public PortletLayoutListener getPortletLayoutListenerInstance() {
1369 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1370
1371 List<PortletLayoutListener> portletLayoutListenerInstances =
1372 portletBag.getPortletLayoutListenerInstances();
1373
1374 if (portletLayoutListenerInstances.isEmpty()) {
1375 return null;
1376 }
1377
1378 return portletLayoutListenerInstances.get(0);
1379 }
1380
1381
1386 @Override
1387 public Map<String, Set<String>> getPortletModes() {
1388 return _portletModes;
1389 }
1390
1391
1396 @Override
1397 public String getPortletName() {
1398 return _portletName;
1399 }
1400
1401
1406 @Override
1407 public String getPortletURLClass() {
1408 return _portletURLClass;
1409 }
1410
1411
1418 @Override
1419 public boolean getPreferencesCompanyWide() {
1420 return _preferencesCompanyWide;
1421 }
1422
1423
1432 @Override
1433 public boolean getPreferencesOwnedByGroup() {
1434 return _preferencesOwnedByGroup;
1435 }
1436
1437
1442 @Override
1443 public boolean getPreferencesUniquePerLayout() {
1444 return _preferencesUniquePerLayout;
1445 }
1446
1447
1452 @Override
1453 public String getPreferencesValidator() {
1454 return _preferencesValidator;
1455 }
1456
1457
1464 @Override
1465 public boolean getPrivateRequestAttributes() {
1466 return _privateRequestAttributes;
1467 }
1468
1469
1476 @Override
1477 public boolean getPrivateSessionAttributes() {
1478 return _privateSessionAttributes;
1479 }
1480
1481
1490 @Override
1491 public QName getProcessingEvent(String uri, String localPart) {
1492 return _processingEventsByQName.get(
1493 PortletQNameUtil.getKey(uri, localPart));
1494 }
1495
1496
1501 @Override
1502 public Set<QName> getProcessingEvents() {
1503 return _processingEvents;
1504 }
1505
1506
1512 @Override
1513 public PublicRenderParameter getPublicRenderParameter(String identifier) {
1514 return _publicRenderParametersByIdentifier.get(identifier);
1515 }
1516
1517
1526 @Override
1527 public PublicRenderParameter getPublicRenderParameter(
1528 String uri, String localPart) {
1529
1530 return _publicRenderParametersByQName.get(
1531 PortletQNameUtil.getKey(uri, localPart));
1532 }
1533
1534
1539 @Override
1540 public Set<PublicRenderParameter> getPublicRenderParameters() {
1541 return _publicRenderParameters;
1542 }
1543
1544
1549 @Override
1550 public Set<QName> getPublishingEvents() {
1551 return _publishingEvents;
1552 }
1553
1554
1559 @Override
1560 public boolean getReady() {
1561 return isReady();
1562 }
1563
1564
1569 @Override
1570 public boolean getRemoteable() {
1571 return _remoteable;
1572 }
1573
1574
1579 @Override
1580 public int getRenderTimeout() {
1581 return _renderTimeout;
1582 }
1583
1584
1589 @Override
1590 public int getRenderWeight() {
1591 return _renderWeight;
1592 }
1593
1594
1599 @Override
1600 public String getResourceBundle() {
1601 return _resourceBundle;
1602 }
1603
1604
1611 @Override
1612 public boolean getRestoreCurrentView() {
1613 return _restoreCurrentView;
1614 }
1615
1616
1621 @Override
1622 public Map<String, String> getRoleMappers() {
1623 return _roleMappers;
1624 }
1625
1626
1631 @Override
1632 public String[] getRolesArray() {
1633 return _rolesArray;
1634 }
1635
1636
1641 @Override
1642 public Portlet getRootPortlet() {
1643 return _rootPortlet;
1644 }
1645
1646
1651 @Override
1652 public String getRootPortletId() {
1653 return PortletConstants.getRootPortletId(getPortletId());
1654 }
1655
1656
1661 @Override
1662 public List<SchedulerEntry> getSchedulerEntries() {
1663 return _schedulerEntries;
1664 }
1665
1666
1671 @Override
1672 public boolean getScopeable() {
1673 return _scopeable;
1674 }
1675
1676
1683 @Override
1684 public boolean getShowPortletAccessDenied() {
1685 return _showPortletAccessDenied;
1686 }
1687
1688
1694 @Override
1695 public boolean getShowPortletInactive() {
1696 return _showPortletInactive;
1697 }
1698
1699
1704 @Override
1705 public boolean getSinglePageApplication() {
1706 return _singlePageApplication;
1707 }
1708
1709
1716 @Override
1717 public List<String> getSocialActivityInterpreterClasses() {
1718 return _socialActivityInterpreterClasses;
1719 }
1720
1721
1726 @Override
1727 public List<SocialActivityInterpreter>
1728 getSocialActivityInterpreterInstances() {
1729
1730 if (_socialActivityInterpreterClasses.isEmpty()) {
1731 return null;
1732 }
1733
1734 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1735
1736 return portletBag.getSocialActivityInterpreterInstances();
1737 }
1738
1739
1746 @Override
1747 public boolean getSocialInteractionsConfiguration() {
1748 return _socialInteractionsConfiguration;
1749 }
1750
1751
1756 @Override
1757 public String getSocialRequestInterpreterClass() {
1758 return _socialRequestInterpreterClass;
1759 }
1760
1761
1768 @Override
1769 public SocialRequestInterpreter getSocialRequestInterpreterInstance() {
1770 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1771
1772 List<SocialRequestInterpreter> socialRequestInterpreterInstances =
1773 portletBag.getSocialRequestInterpreterInstances();
1774
1775 if (socialRequestInterpreterInstances.isEmpty()) {
1776 return null;
1777 }
1778
1779 return socialRequestInterpreterInstances.get(0);
1780 }
1781
1782
1789 @Override
1790 public List<String> getStagedModelDataHandlerClasses() {
1791 return _stagedModelDataHandlerClasses;
1792 }
1793
1794
1799 @Override
1800 public List<StagedModelDataHandler<?>>
1801 getStagedModelDataHandlerInstances() {
1802
1803 if (_stagedModelDataHandlerClasses.isEmpty()) {
1804 return null;
1805 }
1806
1807 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1808
1809 return portletBag.getStagedModelDataHandlerInstances();
1810 }
1811
1812
1819 @Override
1820 public boolean getStatic() {
1821 return _staticPortlet;
1822 }
1823
1824
1831 @Override
1832 public boolean getStaticEnd() {
1833 return !_staticPortletStart;
1834 }
1835
1836
1841 @Override
1842 public String getStaticResourcePath() {
1843 String proxyPath = PortalUtil.getPathProxy();
1844
1845 String virtualPath = getVirtualPath();
1846
1847 if (Validator.isNotNull(virtualPath)) {
1848 return proxyPath.concat(virtualPath);
1849 }
1850
1851 String contextPath = getContextPath();
1852
1853 if (!_portletApp.isWARFile()) {
1854 return contextPath;
1855 }
1856
1857 return proxyPath.concat(contextPath);
1858 }
1859
1860
1867 @Override
1868 public boolean getStaticStart() {
1869 return _staticPortletStart;
1870 }
1871
1872
1877 @Override
1878 public String getStrutsPath() {
1879 return _strutsPath;
1880 }
1881
1882
1887 @Override
1888 public Set<String> getSupportedLocales() {
1889 return _supportedLocales;
1890 }
1891
1892
1899 @Override
1900 public boolean getSystem() {
1901 return _system;
1902 }
1903
1904
1909 @Override
1910 public String getTemplateHandlerClass() {
1911 return _templateHandlerClass;
1912 }
1913
1914
1919 @Override
1920 public TemplateHandler getTemplateHandlerInstance() {
1921 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1922
1923 List<TemplateHandler> templateHandlerInstances =
1924 portletBag.getTemplateHandlerInstances();
1925
1926 if (templateHandlerInstances.isEmpty()) {
1927 return null;
1928 }
1929
1930 return templateHandlerInstances.get(0);
1931 }
1932
1933
1938 @Override
1939 public long getTimestamp() {
1940 if (_timestamp == null) {
1941 PortletApp portletApp = getPortletApp();
1942
1943 ServletContext servletContext = portletApp.getServletContext();
1944
1945 _timestamp = ServletContextUtil.getLastModified(
1946 servletContext, StringPool.SLASH, true);
1947 }
1948
1949 return _timestamp;
1950 }
1951
1952
1959 @Override
1960 public List<String> getTrashHandlerClasses() {
1961 return _trashHandlerClasses;
1962 }
1963
1964
1969 @Override
1970 public List<TrashHandler> getTrashHandlerInstances() {
1971 if (_trashHandlerClasses.isEmpty()) {
1972 return null;
1973 }
1974
1975 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1976
1977 return portletBag.getTrashHandlerInstances();
1978 }
1979
1980
1986 @Override
1987 public boolean getUndeployedPortlet() {
1988 return _undeployedPortlet;
1989 }
1990
1991
1996 @Override
1997 public Set<String> getUnlinkedRoles() {
1998 return _unlinkedRoles;
1999 }
2000
2001
2006 @Override
2007 public String getURLEncoderClass() {
2008 return _urlEncoderClass;
2009 }
2010
2011
2016 @Override
2017 public URLEncoder getURLEncoderInstance() {
2018 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2019
2020 List<URLEncoder> urlEncoderInstances =
2021 portletBag.getURLEncoderInstances();
2022
2023 if (urlEncoderInstances.isEmpty()) {
2024 return null;
2025 }
2026
2027 return urlEncoderInstances.get(0);
2028 }
2029
2030
2035 @Override
2036 public boolean getUseDefaultTemplate() {
2037 return _useDefaultTemplate;
2038 }
2039
2040
2046 @Override
2047 public long getUserId() {
2048 return PortletConstants.getUserId(getPortletId());
2049 }
2050
2051
2058 @Override
2059 public String getUserNotificationDefinitions() {
2060 return _userNotificationDefinitions;
2061 }
2062
2063
2070 @Override
2071 public List<String> getUserNotificationHandlerClasses() {
2072 return _userNotificationHandlerClasses;
2073 }
2074
2075
2080 @Override
2081 public List<UserNotificationHandler>
2082 getUserNotificationHandlerInstances() {
2083
2084 if (_userNotificationHandlerClasses.isEmpty()) {
2085 return null;
2086 }
2087
2088 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2089
2090 return portletBag.getUserNotificationHandlerInstances();
2091 }
2092
2093
2098 @Override
2099 public String getUserPrincipalStrategy() {
2100 return _userPrincipalStrategy;
2101 }
2102
2103
2108 @Override
2109 public String getVirtualPath() {
2110 return _virtualPath;
2111 }
2112
2113
2118 @Override
2119 public String getWebDAVStorageClass() {
2120 return _webDAVStorageClass;
2121 }
2122
2123
2128 @Override
2129 public WebDAVStorage getWebDAVStorageInstance() {
2130 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2131
2132 List<WebDAVStorage> webDAVStorageInstances =
2133 portletBag.getWebDAVStorageInstances();
2134
2135 if (webDAVStorageInstances.isEmpty()) {
2136 return null;
2137 }
2138
2139 return webDAVStorageInstances.get(0);
2140 }
2141
2142
2147 @Override
2148 public String getWebDAVStorageToken() {
2149 return _webDAVStorageToken;
2150 }
2151
2152
2157 @Override
2158 public Map<String, Set<String>> getWindowStates() {
2159 return _windowStates;
2160 }
2161
2162
2169 @Override
2170 public List<String> getWorkflowHandlerClasses() {
2171 return _workflowHandlerClasses;
2172 }
2173
2174
2179 @Override
2180 public List<WorkflowHandler<?>> getWorkflowHandlerInstances() {
2181 if (_workflowHandlerClasses.isEmpty()) {
2182 return null;
2183 }
2184
2185 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2186
2187 return portletBag.getWorkflowHandlerInstances();
2188 }
2189
2190
2195 @Override
2196 public String getXmlRpcMethodClass() {
2197 return _xmlRpcMethodClass;
2198 }
2199
2200
2205 @Override
2206 public Method getXmlRpcMethodInstance() {
2207 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2208
2209 List<Method> xmlRpcMethodInstances =
2210 portletBag.getXmlRpcMethodInstances();
2211
2212 if (xmlRpcMethodInstances.isEmpty()) {
2213 return null;
2214 }
2215
2216 return xmlRpcMethodInstances.get(0);
2217 }
2218
2219
2227 @Override
2228 public boolean hasAddPortletPermission(long userId) {
2229 PermissionChecker permissionChecker =
2230 PermissionThreadLocal.getPermissionChecker();
2231
2232 try {
2233 if ((permissionChecker == null) ||
2234 (permissionChecker.getUserId() != userId)) {
2235
2236 User user = UserLocalServiceUtil.getUser(userId);
2237
2238 permissionChecker = PermissionCheckerFactoryUtil.create(user);
2239 }
2240
2241 if (PortletPermissionUtil.contains(
2242 permissionChecker, getRootPortletId(),
2243 ActionKeys.ADD_TO_PAGE)) {
2244
2245 return true;
2246 }
2247 }
2248 catch (Exception e) {
2249 _log.error(e, e);
2250 }
2251
2252 return false;
2253 }
2254
2255 @Override
2256 public boolean hasFooterPortalCss() {
2257 return !_footerPortalCss.isEmpty();
2258 }
2259
2260 @Override
2261 public boolean hasFooterPortalJavaScript() {
2262 return !_footerPortalJavaScript.isEmpty();
2263 }
2264
2265 @Override
2266 public boolean hasFooterPortletCss() {
2267 return !_footerPortletCss.isEmpty();
2268 }
2269
2270 @Override
2271 public boolean hasFooterPortletJavaScript() {
2272 return !_footerPortletJavaScript.isEmpty();
2273 }
2274
2275 @Override
2276 public int hashCode() {
2277 String portletId = getPortletId();
2278
2279 return portletId.hashCode();
2280 }
2281
2282 @Override
2283 public boolean hasHeaderPortalCss() {
2284 return !_headerPortalCss.isEmpty();
2285 }
2286
2287 @Override
2288 public boolean hasHeaderPortalJavaScript() {
2289 return !_headerPortalJavaScript.isEmpty();
2290 }
2291
2292 @Override
2293 public boolean hasHeaderPortletCss() {
2294 return !_headerPortletCss.isEmpty();
2295 }
2296
2297 @Override
2298 public boolean hasHeaderPortletJavaScript() {
2299 return !_headerPortletJavaScript.isEmpty();
2300 }
2301
2302
2308 @Override
2309 public boolean hasMultipleMimeTypes() {
2310 if (_portletModes.size() > 1) {
2311 return true;
2312 }
2313 else {
2314 return false;
2315 }
2316 }
2317
2318
2327 @Override
2328 public boolean hasPortletMode(String mimeType, PortletMode portletMode) {
2329 if (mimeType == null) {
2330 mimeType = ContentTypes.TEXT_HTML;
2331 }
2332
2333 Set<String> mimeTypePortletModes = _portletModes.get(mimeType);
2334
2335 if (mimeTypePortletModes == null) {
2336 return false;
2337 }
2338
2339 if (mimeTypePortletModes.contains(portletMode.toString())) {
2340 return true;
2341 }
2342 else {
2343 return false;
2344 }
2345 }
2346
2347
2355 @Override
2356 public boolean hasRoleWithName(String roleName) {
2357 if (ArrayUtil.isEmpty(_rolesArray)) {
2358 return false;
2359 }
2360
2361 for (String curRoleName : _rolesArray) {
2362 if (StringUtil.equalsIgnoreCase(curRoleName, roleName)) {
2363 return true;
2364 }
2365 }
2366
2367 return false;
2368 }
2369
2370
2379 @Override
2380 public boolean hasWindowState(String mimeType, WindowState windowState) {
2381 if (mimeType == null) {
2382 mimeType = ContentTypes.TEXT_HTML;
2383 }
2384
2385 Set<String> mimeTypeWindowStates = _windowStates.get(mimeType);
2386
2387 if (mimeTypeWindowStates == null) {
2388 return false;
2389 }
2390
2391 if (mimeTypeWindowStates.contains(windowState.toString())) {
2392 return true;
2393 }
2394 else {
2395 return false;
2396 }
2397 }
2398
2399
2406 @Override
2407 public boolean isActionURLRedirect() {
2408 return _actionURLRedirect;
2409 }
2410
2411
2418 @Override
2419 public boolean isAddDefaultResource() {
2420 return _addDefaultResource;
2421 }
2422
2423
2428 @Override
2429 public boolean isAjaxable() {
2430 return _ajaxable;
2431 }
2432
2433
2440 @Override
2441 public boolean isInclude() {
2442 return _include;
2443 }
2444
2445
2452 @Override
2453 public boolean isInstanceable() {
2454 return _instanceable;
2455 }
2456
2457
2463 @Override
2464 public boolean isLayoutCacheable() {
2465 return _layoutCacheable;
2466 }
2467
2468
2475 @Override
2476 public boolean isMaximizeEdit() {
2477 return _maximizeEdit;
2478 }
2479
2480
2487 @Override
2488 public boolean isMaximizeHelp() {
2489 return _maximizeHelp;
2490 }
2491
2492
2499 @Override
2500 public boolean isPopUpPrint() {
2501 return _popUpPrint;
2502 }
2503
2504
2511 @Override
2512 public boolean isPreferencesCompanyWide() {
2513 return _preferencesCompanyWide;
2514 }
2515
2516
2525 @Override
2526 public boolean isPreferencesOwnedByGroup() {
2527 return _preferencesOwnedByGroup;
2528 }
2529
2530
2535 @Override
2536 public boolean isPreferencesUniquePerLayout() {
2537 return _preferencesUniquePerLayout;
2538 }
2539
2540
2547 @Override
2548 public boolean isPrivateRequestAttributes() {
2549 return _privateRequestAttributes;
2550 }
2551
2552
2559 @Override
2560 public boolean isPrivateSessionAttributes() {
2561 return _privateSessionAttributes;
2562 }
2563
2564
2569 @Override
2570 public boolean isReady() {
2571 Boolean ready = _readyMap.get(getRootPortletId());
2572
2573 if (ready == null) {
2574 return true;
2575 }
2576 else {
2577 return ready;
2578 }
2579 }
2580
2581
2586 @Override
2587 public boolean isRemoteable() {
2588 return _remoteable;
2589 }
2590
2591
2598 @Override
2599 public boolean isRequiresNamespacedParameters() {
2600 return _requiresNamespacedParameters;
2601 }
2602
2603
2610 @Override
2611 public boolean isRestoreCurrentView() {
2612 return _restoreCurrentView;
2613 }
2614
2615
2620 @Override
2621 public boolean isScopeable() {
2622 return _scopeable;
2623 }
2624
2625
2632 @Override
2633 public boolean isShowPortletAccessDenied() {
2634 return _showPortletAccessDenied;
2635 }
2636
2637
2643 @Override
2644 public boolean isShowPortletInactive() {
2645 return _showPortletInactive;
2646 }
2647
2648
2653 @Override
2654 public boolean isSinglePageApplication() {
2655 return _singlePageApplication;
2656 }
2657
2658
2665 @Override
2666 public boolean isSocialInteractionsConfiguration() {
2667 return _socialInteractionsConfiguration;
2668 }
2669
2670
2677 @Override
2678 public boolean isStatic() {
2679 return _staticPortlet;
2680 }
2681
2682
2689 @Override
2690 public boolean isStaticEnd() {
2691 return !_staticPortletStart;
2692 }
2693
2694
2701 @Override
2702 public boolean isStaticStart() {
2703 return _staticPortletStart;
2704 }
2705
2706
2713 @Override
2714 public boolean isSystem() {
2715 return _system;
2716 }
2717
2718
2724 @Override
2725 public boolean isUndeployedPortlet() {
2726 return _undeployedPortlet;
2727 }
2728
2729
2734 @Override
2735 public boolean isUseDefaultTemplate() {
2736 return _useDefaultTemplate;
2737 }
2738
2739
2743 @Override
2744 public void linkRoles() {
2745 List<String> linkedRoles = new ArrayList<>();
2746
2747 for (String unlinkedRole : _unlinkedRoles) {
2748 String roleLink = _roleMappers.get(unlinkedRole);
2749
2750 if (Validator.isNotNull(roleLink)) {
2751 if (_log.isDebugEnabled()) {
2752 _log.debug(
2753 "Linking role for portlet [" + getPortletId() +
2754 "] with role-name [" + unlinkedRole +
2755 "] to role-link [" + roleLink + "]");
2756 }
2757
2758 linkedRoles.add(roleLink);
2759 }
2760 else {
2761 _log.error(
2762 "Unable to link role for portlet [" + getPortletId() +
2763 "] with role-name [" + unlinkedRole +
2764 "] because role-link is null");
2765 }
2766 }
2767
2768 String[] array = linkedRoles.toArray(new String[linkedRoles.size()]);
2769
2770 Arrays.sort(array);
2771
2772 setRolesArray(array);
2773 }
2774
2775
2780 @Override
2781 public void setActionTimeout(int actionTimeout) {
2782 _actionTimeout = actionTimeout;
2783 }
2784
2785
2792 @Override
2793 public void setActionURLRedirect(boolean actionURLRedirect) {
2794 _actionURLRedirect = actionURLRedirect;
2795 }
2796
2797
2804 @Override
2805 public void setAddDefaultResource(boolean addDefaultResource) {
2806 _addDefaultResource = addDefaultResource;
2807 }
2808
2809
2815 @Override
2816 public void setAjaxable(boolean ajaxable) {
2817 _ajaxable = ajaxable;
2818 }
2819
2820
2827 @Override
2828 public void setAssetRendererFactoryClasses(
2829 List<String> assetRendererFactoryClasses) {
2830
2831 _assetRendererFactoryClasses = assetRendererFactoryClasses;
2832 }
2833
2834
2841 @Override
2842 public void setAtomCollectionAdapterClasses(
2843 List<String> atomCollectionAdapterClasses) {
2844
2845 _atomCollectionAdapterClasses = atomCollectionAdapterClasses;
2846 }
2847
2848
2855 @Override
2856 public void setAutopropagatedParameters(
2857 Set<String> autopropagatedParameters) {
2858
2859 _autopropagatedParameters = autopropagatedParameters;
2860 }
2861
2862
2868 @Override
2869 public void setConfigurationActionClass(String configurationActionClass) {
2870 _configurationActionClass = configurationActionClass;
2871 }
2872
2873
2880 @Override
2881 public void setControlPanelEntryCategory(String controlPanelEntryCategory) {
2882 _controlPanelEntryCategory = controlPanelEntryCategory;
2883 }
2884
2885
2892 @Override
2893 public void setControlPanelEntryClass(String controlPanelEntryClass) {
2894 _controlPanelEntryClass = controlPanelEntryClass;
2895 }
2896
2897
2905 @Override
2906 public void setControlPanelEntryWeight(double controlPanelEntryWeight) {
2907 _controlPanelEntryWeight = controlPanelEntryWeight;
2908 }
2909
2910
2917 @Override
2918 public void setCssClassWrapper(String cssClassWrapper) {
2919 _cssClassWrapper = cssClassWrapper;
2920 }
2921
2922
2929 @Override
2930 public void setCustomAttributesDisplayClasses(
2931 List<String> customAttributesDisplayClasses) {
2932
2933 _customAttributesDisplayClasses = customAttributesDisplayClasses;
2934 }
2935
2936
2942 @Override
2943 public void setDDMDisplayClass(String ddmDisplayClass) {
2944 _ddmDisplayClass = ddmDisplayClass;
2945 }
2946
2947
2952 @Override
2953 public void setDefaultPluginSetting(PluginSetting pluginSetting) {
2954 _defaultPluginSetting = pluginSetting;
2955 }
2956
2957
2962 @Override
2963 public void setDefaultPreferences(String defaultPreferences) {
2964 _defaultPreferences = defaultPreferences;
2965 }
2966
2967
2972 @Override
2973 public void setDisplayName(String displayName) {
2974 _displayName = displayName;
2975 }
2976
2977
2982 @Override
2983 public void setExpCache(Integer expCache) {
2984 _expCache = expCache;
2985 }
2986
2987
2992 @Override
2993 public void setFacebookIntegration(String facebookIntegration) {
2994 if (Validator.isNotNull(facebookIntegration)) {
2995 _facebookIntegration = facebookIntegration;
2996 }
2997 }
2998
2999
3006 @Override
3007 public void setFooterPortalCss(List<String> footerPortalCss) {
3008 _footerPortalCss = footerPortalCss;
3009 }
3010
3011
3019 @Override
3020 public void setFooterPortalJavaScript(List<String> footerPortalJavaScript) {
3021 _footerPortalJavaScript = footerPortalJavaScript;
3022 }
3023
3024
3031 @Override
3032 public void setFooterPortletCss(List<String> footerPortletCss) {
3033 _footerPortletCss = footerPortletCss;
3034 }
3035
3036
3044 @Override
3045 public void setFooterPortletJavaScript(
3046 List<String> footerPortletJavaScript) {
3047
3048 _footerPortletJavaScript = footerPortletJavaScript;
3049 }
3050
3051
3057 @Override
3058 public void setFriendlyURLMapperClass(String friendlyURLMapperClass) {
3059 _friendlyURLMapperClass = friendlyURLMapperClass;
3060 }
3061
3062
3068 @Override
3069 public void setFriendlyURLMapping(String friendlyURLMapping) {
3070 _friendlyURLMapping = friendlyURLMapping;
3071 }
3072
3073
3080 @Override
3081 public void setFriendlyURLRoutes(String friendlyURLRoutes) {
3082 _friendlyURLRoutes = friendlyURLRoutes;
3083 }
3084
3085
3092 @Override
3093 public void setHeaderPortalCss(List<String> headerPortalCss) {
3094 _headerPortalCss = headerPortalCss;
3095 }
3096
3097
3105 @Override
3106 public void setHeaderPortalJavaScript(List<String> headerPortalJavaScript) {
3107 _headerPortalJavaScript = headerPortalJavaScript;
3108 }
3109
3110
3117 @Override
3118 public void setHeaderPortletCss(List<String> headerPortletCss) {
3119 _headerPortletCss = headerPortletCss;
3120 }
3121
3122
3130 @Override
3131 public void setHeaderPortletJavaScript(
3132 List<String> headerPortletJavaScript) {
3133
3134 _headerPortletJavaScript = headerPortletJavaScript;
3135 }
3136
3137
3142 @Override
3143 public void setIcon(String icon) {
3144 _icon = icon;
3145 }
3146
3147
3154 @Override
3155 public void setInclude(boolean include) {
3156 _include = include;
3157 }
3158
3159
3166 @Override
3167 public void setIndexerClasses(List<String> indexerClasses) {
3168 _indexerClasses = indexerClasses;
3169 }
3170
3171
3176 @Override
3177 public void setInitParams(Map<String, String> initParams) {
3178 _initParams = initParams;
3179 }
3180
3181
3188 @Override
3189 public void setInstanceable(boolean instanceable) {
3190 _instanceable = instanceable;
3191 }
3192
3193
3200 @Override
3201 public void setLayoutCacheable(boolean layoutCacheable) {
3202 _layoutCacheable = layoutCacheable;
3203 }
3204
3205
3212 @Override
3213 public void setMaximizeEdit(boolean maximizeEdit) {
3214 _maximizeEdit = maximizeEdit;
3215 }
3216
3217
3224 @Override
3225 public void setMaximizeHelp(boolean maximizeHelp) {
3226 _maximizeHelp = maximizeHelp;
3227 }
3228
3229
3234 @Override
3235 public void setOpenSearchClass(String openSearchClass) {
3236 _openSearchClass = openSearchClass;
3237 }
3238
3239
3244 @Override
3245 public void setParentStrutsPath(String parentStrutsPath) {
3246 _parentStrutsPath = parentStrutsPath;
3247 }
3248
3249
3252 @Override
3253 public void setPermissionPropagatorClass(String permissionPropagatorClass) {
3254 _permissionPropagatorClass = permissionPropagatorClass;
3255 }
3256
3257
3262 @Override
3263 public void setPluginPackage(PluginPackage pluginPackage) {
3264 _pluginPackage = pluginPackage;
3265 }
3266
3267
3273 @Override
3274 public void setPollerProcessorClass(String pollerProcessorClass) {
3275 _pollerProcessorClass = pollerProcessorClass;
3276 }
3277
3278
3284 @Override
3285 public void setPopMessageListenerClass(String popMessageListenerClass) {
3286 _popMessageListenerClass = popMessageListenerClass;
3287 }
3288
3289
3296 @Override
3297 public void setPopUpPrint(boolean popUpPrint) {
3298 _popUpPrint = popUpPrint;
3299 }
3300
3301
3306 @Override
3307 public void setPortletApp(PortletApp portletApp) {
3308 _portletApp = portletApp;
3309
3310 _portletApp.addPortlet(this);
3311 }
3312
3313
3318 @Override
3319 public void setPortletClass(String portletClass) {
3320 _portletClass = portletClass;
3321 }
3322
3323
3329 @Override
3330 public void setPortletDataHandlerClass(String portletDataHandlerClass) {
3331 _portletDataHandlerClass = portletDataHandlerClass;
3332 }
3333
3334
3339 @Override
3340 public void setPortletFilters(Map<String, PortletFilter> portletFilters) {
3341 _portletFilters = portletFilters;
3342 }
3343
3344
3349 @Override
3350 public void setPortletInfo(PortletInfo portletInfo) {
3351 _portletInfo = portletInfo;
3352 }
3353
3354
3360 @Override
3361 public void setPortletLayoutListenerClass(
3362 String portletLayoutListenerClass) {
3363
3364 _portletLayoutListenerClass = portletLayoutListenerClass;
3365 }
3366
3367
3372 @Override
3373 public void setPortletModes(Map<String, Set<String>> portletModes) {
3374 _portletModes = portletModes;
3375 }
3376
3377
3382 @Override
3383 public void setPortletName(String portletName) {
3384 _portletName = portletName;
3385 }
3386
3387
3392 @Override
3393 public void setPortletURLClass(String portletURLClass) {
3394 _portletURLClass = portletURLClass;
3395 }
3396
3397
3404 @Override
3405 public void setPreferencesCompanyWide(boolean preferencesCompanyWide) {
3406 _preferencesCompanyWide = preferencesCompanyWide;
3407 }
3408
3409
3418 @Override
3419 public void setPreferencesOwnedByGroup(boolean preferencesOwnedByGroup) {
3420 _preferencesOwnedByGroup = preferencesOwnedByGroup;
3421 }
3422
3423
3429 @Override
3430 public void setPreferencesUniquePerLayout(
3431 boolean preferencesUniquePerLayout) {
3432
3433 _preferencesUniquePerLayout = preferencesUniquePerLayout;
3434 }
3435
3436
3442 @Override
3443 public void setPreferencesValidator(String preferencesValidator) {
3444 if (preferencesValidator != null) {
3445
3446
3447
3448
3449 _preferencesValidator = preferencesValidator.trim();
3450 }
3451 else {
3452 _preferencesValidator = null;
3453 }
3454 }
3455
3456
3464 @Override
3465 public void setPrivateRequestAttributes(boolean privateRequestAttributes) {
3466 _privateRequestAttributes = privateRequestAttributes;
3467 }
3468
3469
3476 @Override
3477 public void setPrivateSessionAttributes(boolean privateSessionAttributes) {
3478 _privateSessionAttributes = privateSessionAttributes;
3479 }
3480
3481
3486 @Override
3487 public void setProcessingEvents(Set<QName> processingEvents) {
3488 for (QName processingEvent : processingEvents) {
3489 addProcessingEvent(processingEvent);
3490 }
3491 }
3492
3493
3499 @Override
3500 public void setPublicRenderParameters(
3501 Set<PublicRenderParameter> publicRenderParameters) {
3502
3503 for (PublicRenderParameter publicRenderParameter :
3504 publicRenderParameters) {
3505
3506 addPublicRenderParameter(publicRenderParameter);
3507 }
3508 }
3509
3510
3515 @Override
3516 public void setPublishingEvents(Set<QName> publishingEvents) {
3517 for (QName publishingEvent : publishingEvents) {
3518 addPublishingEvent(publishingEvent);
3519 }
3520 }
3521
3522
3527 @Override
3528 public void setReady(boolean ready) {
3529 _readyMap.put(getRootPortletId(), ready);
3530
3531 Registry registry = RegistryUtil.getRegistry();
3532
3533 synchronized (_serviceRegistrars) {
3534 if (ready) {
3535 ServiceRegistrar<Portlet> serviceRegistrar =
3536 registry.getServiceRegistrar(Portlet.class);
3537
3538 Map<String, Object> properties = new HashMap<>();
3539
3540 properties.put("javax.portlet.name", getPortletName());
3541
3542 serviceRegistrar.registerService(
3543 Portlet.class, this, properties);
3544
3545 _serviceRegistrars.put(getRootPortletId(), serviceRegistrar);
3546 }
3547 else {
3548 ServiceRegistrar<Portlet> serviceRegistrar =
3549 _serviceRegistrars.remove(getRootPortletId());
3550
3551 serviceRegistrar.destroy();
3552 }
3553 }
3554 }
3555
3556
3562 @Override
3563 public void setRemoteable(boolean remoteable) {
3564 _remoteable = remoteable;
3565 }
3566
3567
3572 @Override
3573 public void setRenderTimeout(int renderTimeout) {
3574 _renderTimeout = renderTimeout;
3575 }
3576
3577
3582 @Override
3583 public void setRenderWeight(int renderWeight) {
3584 _renderWeight = renderWeight;
3585 }
3586
3587
3594 @Override
3595 public void setRequiresNamespacedParameters(
3596 boolean requiresNamespacedParameters) {
3597
3598 _requiresNamespacedParameters = requiresNamespacedParameters;
3599 }
3600
3601
3606 @Override
3607 public void setResourceBundle(String resourceBundle) {
3608 _resourceBundle = resourceBundle;
3609 }
3610
3611
3618 @Override
3619 public void setRestoreCurrentView(boolean restoreCurrentView) {
3620 _restoreCurrentView = restoreCurrentView;
3621 }
3622
3623
3628 @Override
3629 public void setRoleMappers(Map<String, String> roleMappers) {
3630 _roleMappers = roleMappers;
3631 }
3632
3633
3638 @Override
3639 public void setRoles(String roles) {
3640 _rolesArray = StringUtil.split(roles);
3641
3642 super.setRoles(roles);
3643 }
3644
3645
3650 @Override
3651 public void setRolesArray(String[] rolesArray) {
3652 _rolesArray = rolesArray;
3653
3654 super.setRoles(StringUtil.merge(rolesArray));
3655 }
3656
3657
3662 @Override
3663 public void setSchedulerEntries(List<SchedulerEntry> schedulerEntries) {
3664 for (SchedulerEntry schedulerEntry : schedulerEntries) {
3665 addSchedulerEntry(schedulerEntry);
3666 }
3667 }
3668
3669
3675 @Override
3676 public void setScopeable(boolean scopeable) {
3677 _scopeable = scopeable;
3678 }
3679
3680
3687 @Override
3688 public void setShowPortletAccessDenied(boolean showPortletAccessDenied) {
3689 _showPortletAccessDenied = showPortletAccessDenied;
3690 }
3691
3692
3698 @Override
3699 public void setShowPortletInactive(boolean showPortletInactive) {
3700 _showPortletInactive = showPortletInactive;
3701 }
3702
3703
3709 @Override
3710 public void setSinglePageApplication(boolean singlePageApplication) {
3711 _singlePageApplication = singlePageApplication;
3712 }
3713
3714
3721 @Override
3722 public void setSocialActivityInterpreterClasses(
3723 List<String> socialActivityInterpreterClasses) {
3724
3725 _socialActivityInterpreterClasses = socialActivityInterpreterClasses;
3726 }
3727
3728 @Override
3729 public void setSocialInteractionsConfiguration(
3730 boolean socialInteractionsConfiguration) {
3731
3732 _socialInteractionsConfiguration = socialInteractionsConfiguration;
3733 }
3734
3735
3741 @Override
3742 public void setSocialRequestInterpreterClass(
3743 String socialRequestInterpreterClass) {
3744
3745 _socialRequestInterpreterClass = socialRequestInterpreterClass;
3746 }
3747
3748
3753
3754
3761 @Override
3762 public void setStagedModelDataHandlerClasses(
3763 List<String> stagedModelDataHandlerClasses) {
3764
3765 _stagedModelDataHandlerClasses = stagedModelDataHandlerClasses;
3766 }
3767
3768
3775 @Override
3776 public void setStatic(boolean staticPortlet) {
3777 _staticPortlet = staticPortlet;
3778 }
3779
3780
3787 @Override
3788 public void setStaticStart(boolean staticPortletStart) {
3789 _staticPortletStart = staticPortletStart;
3790 }
3791
3792
3797 @Override
3798 public void setStrutsPath(String strutsPath) {
3799 _strutsPath = strutsPath;
3800 }
3801
3802
3807 @Override
3808 public void setSupportedLocales(Set<String> supportedLocales) {
3809 _supportedLocales = supportedLocales;
3810 }
3811
3812
3819 @Override
3820 public void setSystem(boolean system) {
3821 _system = system;
3822 }
3823
3824
3830 @Override
3831 public void setTemplateHandlerClass(String templateHandlerClass) {
3832 _templateHandlerClass = templateHandlerClass;
3833 }
3834
3835
3842 @Override
3843 public void setTrashHandlerClasses(List<String> trashHandlerClasses) {
3844 _trashHandlerClasses = trashHandlerClasses;
3845 }
3846
3847
3853 @Override
3854 public void setUndeployedPortlet(boolean undeployedPortlet) {
3855 _undeployedPortlet = undeployedPortlet;
3856 }
3857
3858
3863 @Override
3864 public void setUnlinkedRoles(Set<String> unlinkedRoles) {
3865 _unlinkedRoles = unlinkedRoles;
3866 }
3867
3868
3873 @Override
3874 public void setURLEncoderClass(String urlEncoderClass) {
3875 _urlEncoderClass = urlEncoderClass;
3876 }
3877
3878
3884 @Override
3885 public void setUseDefaultTemplate(boolean useDefaultTemplate) {
3886 _useDefaultTemplate = useDefaultTemplate;
3887 }
3888
3889
3896 @Override
3897 public void setUserNotificationDefinitions(
3898 String userNotificationDefinitions) {
3899
3900 _userNotificationDefinitions = userNotificationDefinitions;
3901 }
3902
3903
3910 @Override
3911 public void setUserNotificationHandlerClasses(
3912 List<String> userNotificationHandlerClasses) {
3913
3914 _userNotificationHandlerClasses = userNotificationHandlerClasses;
3915 }
3916
3917
3922 @Override
3923 public void setUserPrincipalStrategy(String userPrincipalStrategy) {
3924 if (Validator.isNotNull(userPrincipalStrategy)) {
3925 _userPrincipalStrategy = userPrincipalStrategy;
3926 }
3927 }
3928
3929
3934 @Override
3935 public void setVirtualPath(String virtualPath) {
3936 if (_portletApp.isWARFile() && Validator.isNull(virtualPath)) {
3937 virtualPath = PropsValues.PORTLET_VIRTUAL_PATH;
3938 }
3939
3940 _virtualPath = virtualPath;
3941 }
3942
3943
3949 @Override
3950 public void setWebDAVStorageClass(String webDAVStorageClass) {
3951 _webDAVStorageClass = webDAVStorageClass;
3952 }
3953
3954
3960 @Override
3961 public void setWebDAVStorageToken(String webDAVStorageToken) {
3962 _webDAVStorageToken = webDAVStorageToken;
3963 }
3964
3965
3970 @Override
3971 public void setWindowStates(Map<String, Set<String>> windowStates) {
3972 _windowStates = windowStates;
3973 }
3974
3975
3982 @Override
3983 public void setWorkflowHandlerClasses(List<String> workflowHandlerClasses) {
3984 _workflowHandlerClasses = workflowHandlerClasses;
3985 }
3986
3987
3993 @Override
3994 public void setXmlRpcMethodClass(String xmlRpcMethodClass) {
3995 _xmlRpcMethodClass = xmlRpcMethodClass;
3996 }
3997
3998 @Override
3999 public void unsetReady() {
4000 _readyMap.remove(getRootPortletId());
4001
4002 synchronized (_serviceRegistrars) {
4003 ServiceRegistrar<Portlet> serviceRegistrar =
4004 _serviceRegistrars.remove(getRootPortletId());
4005
4006 serviceRegistrar.destroy();
4007 }
4008 }
4009
4010
4013 private static final Log _log = LogFactoryUtil.getLog(PortletImpl.class);
4014
4015
4018 private static final Map<String, Boolean> _readyMap =
4019 new ConcurrentHashMap<>();
4020
4021 private static final Map<String, ServiceRegistrar<Portlet>>
4022 _serviceRegistrars = new HashMap<>();
4023
4024
4027 private int _actionTimeout;
4028
4029
4033 private boolean _actionURLRedirect;
4034
4035
4039 private boolean _addDefaultResource;
4040
4041
4044 private boolean _ajaxable = true;
4045
4046
4050 private List<String> _assetRendererFactoryClasses;
4051
4052
4056 private List<String> _atomCollectionAdapterClasses;
4057
4058
4062 private Set<String> _autopropagatedParameters;
4063
4064
4067 private String _configurationActionClass;
4068
4069
4073 private String _controlPanelEntryCategory = StringPool.BLANK;
4074
4075
4079 private String _controlPanelEntryClass;
4080
4081
4085 private double _controlPanelEntryWeight = 100;
4086
4087
4091 private String _cssClassWrapper = StringPool.BLANK;
4092
4093
4097 private List<String> _customAttributesDisplayClasses;
4098
4099
4102 private String _ddmDisplayClass;
4103
4104
4107 private PluginSetting _defaultPluginSetting;
4108
4109
4112 private String _defaultPreferences;
4113
4114
4117 private String _displayName;
4118
4119
4122 private Integer _expCache;
4123
4124
4127 private String _facebookIntegration =
4128 PortletConstants.FACEBOOK_INTEGRATION_IFRAME;
4129
4130
4134 private List<String> _footerPortalCss;
4135
4136
4140 private List<String> _footerPortalJavaScript;
4141
4142
4146 private List<String> _footerPortletCss;
4147
4148
4152 private List<String> _footerPortletJavaScript;
4153
4154
4157 private String _friendlyURLMapperClass;
4158
4159
4162 private String _friendlyURLMapping;
4163
4164
4168 private String _friendlyURLRoutes;
4169
4170
4174 private List<String> _headerPortalCss;
4175
4176
4180 private List<String> _headerPortalJavaScript;
4181
4182
4186 private List<String> _headerPortletCss;
4187
4188
4192 private List<String> _headerPortletJavaScript;
4193
4194
4197 private String _icon;
4198
4199
4203 private boolean _include = true;
4204
4205
4209 private List<String> _indexerClasses;
4210
4211
4214 private Map<String, String> _initParams;
4215
4216
4219 private boolean _instanceable;
4220
4221
4224 private boolean _layoutCacheable;
4225
4226
4230 private boolean _maximizeEdit;
4231
4232
4236 private boolean _maximizeHelp;
4237
4238
4241 private String _openSearchClass;
4242
4243
4246 private String _parentStrutsPath;
4247
4248
4251 private String _permissionPropagatorClass;
4252
4253
4256 private PluginPackage _pluginPackage;
4257
4258
4261 private String _pollerProcessorClass;
4262
4263
4266 private String _popMessageListenerClass;
4267
4268
4272 private boolean _popUpPrint = true;
4273
4274
4277 private PortletApp _portletApp;
4278
4279
4282 private String _portletClass;
4283
4284
4287 private String _portletDataHandlerClass =
4288 DefaultConfigurationPortletDataHandler.class.getName();
4289
4290
4293 private Map<String, PortletFilter> _portletFilters;
4294
4295
4298 private PortletInfo _portletInfo;
4299
4300
4303 private String _portletLayoutListenerClass;
4304
4305
4308 private Map<String, Set<String>> _portletModes;
4309
4310
4313 private String _portletName;
4314
4315
4318 private String _portletURLClass;
4319
4320
4323 private boolean _preferencesCompanyWide;
4324
4325
4330 private boolean _preferencesOwnedByGroup = true;
4331
4332
4335 private boolean _preferencesUniquePerLayout = true;
4336
4337
4340 private String _preferencesValidator;
4341
4342
4346 private boolean _privateRequestAttributes = true;
4347
4348
4352 private boolean _privateSessionAttributes = true;
4353
4354
4357 private final Set<QName> _processingEvents = new HashSet<>();
4358
4359
4362 private final Map<String, QName> _processingEventsByQName = new HashMap<>();
4363
4364
4367 private final Set<PublicRenderParameter> _publicRenderParameters =
4368 new HashSet<>();
4369
4370
4374 private final Map<String, PublicRenderParameter>
4375 _publicRenderParametersByIdentifier = new HashMap<>();
4376
4377
4381 private final Map<String, PublicRenderParameter>
4382 _publicRenderParametersByQName = new HashMap<>();
4383
4384
4387 private final Set<QName> _publishingEvents = new HashSet<>();
4388
4389
4392 private boolean _remoteable;
4393
4394
4397 private int _renderTimeout;
4398
4399
4402 private int _renderWeight = 1;
4403
4404
4407 private boolean _requiresNamespacedParameters = true;
4408
4409
4412 private String _resourceBundle;
4413
4414
4418 private boolean _restoreCurrentView = true;
4419
4420
4423 private Map<String, String> _roleMappers;
4424
4425
4428 private String[] _rolesArray = new String[0];
4429
4430
4433 private final Portlet _rootPortlet;
4434
4435
4438 private final List<SchedulerEntry> _schedulerEntries;
4439
4440
4443 private boolean _scopeable;
4444
4445
4449 private boolean _showPortletAccessDenied =
4450 PropsValues.LAYOUT_SHOW_PORTLET_ACCESS_DENIED;
4451
4452
4455 private boolean _showPortletInactive =
4456 PropsValues.LAYOUT_SHOW_PORTLET_INACTIVE;
4457
4458
4461 private boolean _singlePageApplication = true;
4462
4463
4467 private List<String> _socialActivityInterpreterClasses;
4468
4469
4472 private boolean _socialInteractionsConfiguration;
4473
4474
4477 private String _socialRequestInterpreterClass;
4478
4479
4483 private List<String> _stagedModelDataHandlerClasses;
4484
4485
4489 private boolean _staticPortlet;
4490
4491
4495 private boolean _staticPortletStart;
4496
4497
4500 private String _strutsPath;
4501
4502
4505 private Set<String> _supportedLocales;
4506
4507
4511 private boolean _system;
4512
4513
4516 private String _templateHandlerClass;
4517
4518
4521 private Long _timestamp;
4522
4523
4527 private List<String> _trashHandlerClasses;
4528
4529
4532 private boolean _undeployedPortlet;
4533
4534
4537 private Set<String> _unlinkedRoles;
4538
4539
4542 private String _urlEncoderClass;
4543
4544
4547 private boolean _useDefaultTemplate = true;
4548
4549
4553 private String _userNotificationDefinitions;
4554
4555
4559 private List<String> _userNotificationHandlerClasses;
4560
4561
4564 private String _userPrincipalStrategy =
4565 PortletConstants.USER_PRINCIPAL_STRATEGY_USER_ID;
4566
4567
4570 private String _virtualPath;
4571
4572
4575 private String _webDAVStorageClass;
4576
4577
4580 private String _webDAVStorageToken;
4581
4582
4585 private Map<String, Set<String>> _windowStates;
4586
4587
4591 private List<String> _workflowHandlerClasses;
4592
4593
4596 private String _xmlRpcMethodClass;
4597
4598 }