001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.portal.kernel.application.type.ApplicationType;
018 import com.liferay.portal.kernel.atom.AtomCollectionAdapter;
019 import com.liferay.portal.kernel.log.Log;
020 import com.liferay.portal.kernel.log.LogFactoryUtil;
021 import com.liferay.portal.kernel.notifications.UserNotificationHandler;
022 import com.liferay.portal.kernel.plugin.PluginPackage;
023 import com.liferay.portal.kernel.poller.PollerProcessor;
024 import com.liferay.portal.kernel.pop.MessageListener;
025 import com.liferay.portal.kernel.portlet.ConfigurationAction;
026 import com.liferay.portal.kernel.portlet.FriendlyURLMapper;
027 import com.liferay.portal.kernel.portlet.FriendlyURLMapperTracker;
028 import com.liferay.portal.kernel.portlet.PortletBag;
029 import com.liferay.portal.kernel.portlet.PortletBagPool;
030 import com.liferay.portal.kernel.portlet.PortletLayoutListener;
031 import com.liferay.portal.kernel.scheduler.SchedulerEntry;
032 import com.liferay.portal.kernel.search.Indexer;
033 import com.liferay.portal.kernel.search.OpenSearch;
034 import com.liferay.portal.kernel.servlet.ServletContextUtil;
035 import com.liferay.portal.kernel.servlet.URLEncoder;
036 import com.liferay.portal.kernel.template.TemplateHandler;
037 import com.liferay.portal.kernel.trash.TrashHandler;
038 import com.liferay.portal.kernel.util.ArrayUtil;
039 import com.liferay.portal.kernel.util.ContentTypes;
040 import com.liferay.portal.kernel.util.StringPool;
041 import com.liferay.portal.kernel.util.StringUtil;
042 import com.liferay.portal.kernel.util.Validator;
043 import com.liferay.portal.kernel.webdav.WebDAVStorage;
044 import com.liferay.portal.kernel.workflow.WorkflowHandler;
045 import com.liferay.portal.kernel.xml.QName;
046 import com.liferay.portal.kernel.xmlrpc.Method;
047 import com.liferay.portal.model.Plugin;
048 import com.liferay.portal.model.PluginSetting;
049 import com.liferay.portal.model.Portlet;
050 import com.liferay.portal.model.PortletApp;
051 import com.liferay.portal.model.PortletConstants;
052 import com.liferay.portal.model.PortletFilter;
053 import com.liferay.portal.model.PortletInfo;
054 import com.liferay.portal.model.PublicRenderParameter;
055 import com.liferay.portal.model.User;
056 import com.liferay.portal.security.permission.ActionKeys;
057 import com.liferay.portal.security.permission.PermissionChecker;
058 import com.liferay.portal.security.permission.PermissionCheckerFactoryUtil;
059 import com.liferay.portal.security.permission.PermissionPropagator;
060 import com.liferay.portal.security.permission.PermissionThreadLocal;
061 import com.liferay.portal.service.UserLocalServiceUtil;
062 import com.liferay.portal.service.permission.PortletPermissionUtil;
063 import com.liferay.portal.util.PortalUtil;
064 import com.liferay.portal.util.PropsValues;
065 import com.liferay.portlet.ControlPanelEntry;
066 import com.liferay.portlet.DefaultControlPanelEntryFactory;
067 import com.liferay.portlet.PortletQNameUtil;
068 import com.liferay.portlet.asset.model.AssetRendererFactory;
069 import com.liferay.portlet.expando.model.CustomAttributesDisplay;
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,
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 _permissionPropagatorClass = permissionPropagatorClass;
250 _trashHandlerClasses = trashHandlerClasses;
251 _workflowHandlerClasses = workflowHandlerClasses;
252 _defaultPreferences = defaultPreferences;
253 _preferencesValidator = preferencesValidator;
254 _preferencesCompanyWide = preferencesCompanyWide;
255 _preferencesUniquePerLayout = preferencesUniquePerLayout;
256 _preferencesOwnedByGroup = preferencesOwnedByGroup;
257 _useDefaultTemplate = useDefaultTemplate;
258 _showPortletAccessDenied = showPortletAccessDenied;
259 _showPortletInactive = showPortletInactive;
260 _actionURLRedirect = actionURLRedirect;
261 _restoreCurrentView = restoreCurrentView;
262 _maximizeEdit = maximizeEdit;
263 _maximizeHelp = maximizeHelp;
264 _popUpPrint = popUpPrint;
265 _layoutCacheable = layoutCacheable;
266 _instanceable = instanceable;
267 _remoteable = remoteable;
268 _scopeable = scopeable;
269 _singlePageApplication = singlePageApplication;
270 _userPrincipalStrategy = userPrincipalStrategy;
271 _privateRequestAttributes = privateRequestAttributes;
272 _privateSessionAttributes = privateSessionAttributes;
273 _autopropagatedParameters = autopropagatedParameters;
274 _requiresNamespacedParameters = requiresNamespacedParameters;
275 _actionTimeout = actionTimeout;
276 _renderTimeout = renderTimeout;
277 _renderWeight = renderWeight;
278 _ajaxable = ajaxable;
279 _headerPortalCss = headerPortalCss;
280 _headerPortletCss = headerPortletCss;
281 _headerPortalJavaScript = headerPortalJavaScript;
282 _headerPortletJavaScript = headerPortletJavaScript;
283 _footerPortalCss = footerPortalCss;
284 _footerPortletCss = footerPortletCss;
285 _footerPortalJavaScript = footerPortalJavaScript;
286 _footerPortletJavaScript = footerPortletJavaScript;
287 _cssClassWrapper = cssClassWrapper;
288 _facebookIntegration = facebookIntegration;
289 _addDefaultResource = addDefaultResource;
290 _unlinkedRoles = unlinkedRoles;
291 _roleMappers = roleMappers;
292 _system = system;
293 _include = include;
294 _initParams = initParams;
295 _expCache = expCache;
296 _portletModes = portletModes;
297 _windowStates = windowStates;
298 _supportedLocales = supportedLocales;
299 _resourceBundle = resourceBundle;
300 _portletInfo = portletInfo;
301 _portletFilters = portletFilters;
302 _portletApp = portletApp;
303 }
304
305
310 @Override
311 public void addApplicationType(ApplicationType applicationType) {
312 _applicationTypes.add(applicationType);
313 }
314
315
318 @Override
319 public void addProcessingEvent(QName processingEvent) {
320 _processingEvents.add(processingEvent);
321 _processingEventsByQName.put(
322 PortletQNameUtil.getKey(processingEvent), processingEvent);
323 }
324
325
330 @Override
331 public void addPublicRenderParameter(
332 PublicRenderParameter publicRenderParameter) {
333
334 _publicRenderParameters.add(publicRenderParameter);
335
336 String identifier = publicRenderParameter.getIdentifier();
337
338 _publicRenderParametersByIdentifier.put(
339 identifier, publicRenderParameter);
340
341 QName qName = publicRenderParameter.getQName();
342
343 _publicRenderParametersByQName.put(
344 PortletQNameUtil.getKey(qName), publicRenderParameter);
345
346 String publicRenderParameterName =
347 PortletQNameUtil.getPublicRenderParameterName(qName);
348
349 PortletQNameUtil.setPublicRenderParameterIdentifier(
350 publicRenderParameterName, identifier);
351 }
352
353
356 @Override
357 public void addPublishingEvent(QName publishingEvent) {
358 _publishingEvents.add(publishingEvent);
359 }
360
361
364 @Override
365 public void addSchedulerEntry(SchedulerEntry schedulerEntry) {
366 _schedulerEntries.add(schedulerEntry);
367 }
368
369
374 @Override
375 public Object clone() {
376 Portlet portlet = new PortletImpl(
377 getPortletId(), getRootPortlet(), getPluginPackage(),
378 getDefaultPluginSetting(), getCompanyId(), getIcon(),
379 getVirtualPath(), getStrutsPath(), getParentStrutsPath(),
380 getPortletName(), getDisplayName(), getPortletClass(),
381 getConfigurationActionClass(), getIndexerClasses(),
382 getOpenSearchClass(), getSchedulerEntries(), getPortletURLClass(),
383 getFriendlyURLMapperClass(), getFriendlyURLMapping(),
384 getFriendlyURLRoutes(), getURLEncoderClass(),
385 getPortletDataHandlerClass(), getStagedModelDataHandlerClasses(),
386 getTemplateHandlerClass(), getPortletLayoutListenerClass(),
387 getPollerProcessorClass(), getPopMessageListenerClass(),
388 getSocialActivityInterpreterClasses(),
389 getSocialRequestInterpreterClass(),
390 getSocialInteractionsConfiguration(),
391 getUserNotificationDefinitions(),
392 getUserNotificationHandlerClasses(), getWebDAVStorageToken(),
393 getWebDAVStorageClass(), getXmlRpcMethodClass(),
394 getControlPanelEntryCategory(), getControlPanelEntryWeight(),
395 getControlPanelEntryClass(), getAssetRendererFactoryClasses(),
396 getAtomCollectionAdapterClasses(),
397 getCustomAttributesDisplayClasses(), getPermissionPropagatorClass(),
398 getTrashHandlerClasses(), getWorkflowHandlerClasses(),
399 getDefaultPreferences(), getPreferencesValidator(),
400 isPreferencesCompanyWide(), isPreferencesUniquePerLayout(),
401 isPreferencesOwnedByGroup(), isUseDefaultTemplate(),
402 isShowPortletAccessDenied(), isShowPortletInactive(),
403 isActionURLRedirect(), isRestoreCurrentView(), isMaximizeEdit(),
404 isMaximizeHelp(), isPopUpPrint(), isLayoutCacheable(),
405 isInstanceable(), isRemoteable(), isScopeable(),
406 isSinglePageApplication(), getUserPrincipalStrategy(),
407 isPrivateRequestAttributes(), isPrivateSessionAttributes(),
408 getAutopropagatedParameters(), isRequiresNamespacedParameters(),
409 getActionTimeout(), getRenderTimeout(), getRenderWeight(),
410 isAjaxable(), getHeaderPortalCss(), getHeaderPortletCss(),
411 getHeaderPortalJavaScript(), getHeaderPortletJavaScript(),
412 getFooterPortalCss(), getFooterPortletCss(),
413 getFooterPortalJavaScript(), getFooterPortletJavaScript(),
414 getCssClassWrapper(), getFacebookIntegration(),
415 isAddDefaultResource(), getRoles(), getUnlinkedRoles(),
416 getRoleMappers(), isSystem(), isActive(), isInclude(),
417 getInitParams(), getExpCache(), getPortletModes(),
418 getWindowStates(), getSupportedLocales(), getResourceBundle(),
419 getPortletInfo(), getPortletFilters(), getProcessingEvents(),
420 getPublishingEvents(), getPublicRenderParameters(),
421 getPortletApp());
422
423 portlet.setApplicationTypes(getApplicationTypes());
424 portlet.setId(getId());
425 portlet.setUndeployedPortlet(isUndeployedPortlet());
426
427 return portlet;
428 }
429
430
439 @Override
440 public int compareTo(Portlet portlet) {
441 String portletId = getPortletId();
442
443 return portletId.compareTo(portlet.getPortletId());
444 }
445
446
452 @Override
453 public boolean equals(Object obj) {
454 if (this == obj) {
455 return true;
456 }
457
458 if (!(obj instanceof Portlet)) {
459 return false;
460 }
461
462 Portlet portlet = (Portlet)obj;
463
464 String portletId = getPortletId();
465
466 return portletId.equals(portlet.getPortletId());
467 }
468
469
474 @Override
475 public int getActionTimeout() {
476 return _actionTimeout;
477 }
478
479
486 @Override
487 public boolean getActionURLRedirect() {
488 return _actionURLRedirect;
489 }
490
491
498 @Override
499 public boolean getAddDefaultResource() {
500 return _addDefaultResource;
501 }
502
503
508 @Override
509 public boolean getAjaxable() {
510 return _ajaxable;
511 }
512
513
518 @Override
519 public Set<String> getAllPortletModes() {
520 Set<String> allPortletModes = new TreeSet<>();
521
522 for (Map.Entry<String, Set<String>> entry : _portletModes.entrySet()) {
523 Set<String> mimeTypePortletModes = entry.getValue();
524
525 for (String portletMode : mimeTypePortletModes) {
526 allPortletModes.add(portletMode);
527 }
528 }
529
530 return allPortletModes;
531 }
532
533
538 @Override
539 public Set<String> getAllWindowStates() {
540 Set<String> allWindowStates = new TreeSet<>();
541
542 for (Map.Entry<String, Set<String>> entry : _windowStates.entrySet()) {
543 Set<String> mimeTypeWindowStates = entry.getValue();
544
545 for (String windowState : mimeTypeWindowStates) {
546 allWindowStates.add(windowState);
547 }
548 }
549
550 return allWindowStates;
551 }
552
553
558 @Override
559 public Set<ApplicationType> getApplicationTypes() {
560 return _applicationTypes;
561 }
562
563
570 @Override
571 public List<String> getAssetRendererFactoryClasses() {
572 return _assetRendererFactoryClasses;
573 }
574
575
580 @Override
581 public List<AssetRendererFactory<?>> getAssetRendererFactoryInstances() {
582 if (_assetRendererFactoryClasses.isEmpty()) {
583 return null;
584 }
585
586 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
587
588 return portletBag.getAssetRendererFactoryInstances();
589 }
590
591
598 @Override
599 public List<String> getAtomCollectionAdapterClasses() {
600 return _atomCollectionAdapterClasses;
601 }
602
603
608 @Override
609 public List<AtomCollectionAdapter<?>> getAtomCollectionAdapterInstances() {
610 if (_atomCollectionAdapterClasses.isEmpty()) {
611 return null;
612 }
613
614 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
615
616 return portletBag.getAtomCollectionAdapterInstances();
617 }
618
619
626 @Override
627 public Set<String> getAutopropagatedParameters() {
628 return _autopropagatedParameters;
629 }
630
631
637 @Override
638 public Portlet getClonedInstance(String portletId) {
639 Portlet portlet = (Portlet)clone();
640
641 portlet.setPortletId(portletId);
642
643 return portlet;
644 }
645
646
651 @Override
652 public String getConfigurationActionClass() {
653 return _configurationActionClass;
654 }
655
656
661 @Override
662 public ConfigurationAction getConfigurationActionInstance() {
663 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
664
665 List<ConfigurationAction> configurationActionInstances =
666 portletBag.getConfigurationActionInstances();
667
668 if (configurationActionInstances.isEmpty()) {
669 return null;
670 }
671
672 return configurationActionInstances.get(0);
673 }
674
675
680 @Override
681 public String getContextName() {
682 if (!_portletApp.isWARFile()) {
683 return PortalUtil.getServletContextName();
684 }
685
686 return _portletApp.getServletContextName();
687 }
688
689
694 @Override
695 public String getContextPath() {
696 return _portletApp.getContextPath();
697 }
698
699
706 @Override
707 public String getControlPanelEntryCategory() {
708 return _controlPanelEntryCategory;
709 }
710
711
718 @Override
719 public String getControlPanelEntryClass() {
720 return _controlPanelEntryClass;
721 }
722
723
730 @Override
731 public ControlPanelEntry getControlPanelEntryInstance() {
732 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
733
734 List<ControlPanelEntry> controlPanelEntryInstances =
735 portletBag.getControlPanelEntryInstances();
736
737 if (controlPanelEntryInstances.isEmpty()) {
738 return DefaultControlPanelEntryFactory.getInstance();
739 }
740
741 return controlPanelEntryInstances.get(0);
742 }
743
744
751 @Override
752 public double getControlPanelEntryWeight() {
753 return _controlPanelEntryWeight;
754 }
755
756
763 @Override
764 public String getCssClassWrapper() {
765 return _cssClassWrapper;
766 }
767
768
775 @Override
776 public List<String> getCustomAttributesDisplayClasses() {
777 return _customAttributesDisplayClasses;
778 }
779
780
785 @Override
786 public List<CustomAttributesDisplay> getCustomAttributesDisplayInstances() {
787 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
788
789 return portletBag.getCustomAttributesDisplayInstances();
790 }
791
792
797 @Override
798 public PluginSetting getDefaultPluginSetting() {
799 return _defaultPluginSetting;
800 }
801
802
807 @Override
808 public String getDefaultPreferences() {
809 if (Validator.isNull(_defaultPreferences)) {
810 return PortletConstants.DEFAULT_PREFERENCES;
811 }
812 else {
813 return _defaultPreferences;
814 }
815 }
816
817
822 @Override
823 public String getDisplayName() {
824 return _displayName;
825 }
826
827
832 @Override
833 public Integer getExpCache() {
834 return _expCache;
835 }
836
837
842 @Override
843 public String getFacebookIntegration() {
844 return _facebookIntegration;
845 }
846
847
854 @Override
855 public List<String> getFooterPortalCss() {
856 return _footerPortalCss;
857 }
858
859
866 @Override
867 public List<String> getFooterPortalJavaScript() {
868 return _footerPortalJavaScript;
869 }
870
871
878 @Override
879 public List<String> getFooterPortletCss() {
880 return _footerPortletCss;
881 }
882
883
890 @Override
891 public List<String> getFooterPortletJavaScript() {
892 return _footerPortletJavaScript;
893 }
894
895
900 @Override
901 public String getFriendlyURLMapperClass() {
902 return _friendlyURLMapperClass;
903 }
904
905
910 @Override
911 public FriendlyURLMapper getFriendlyURLMapperInstance() {
912 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
913
914 FriendlyURLMapperTracker friendlyURLMapperTracker =
915 portletBag.getFriendlyURLMapperTracker();
916
917 return friendlyURLMapperTracker.getFriendlyURLMapper();
918 }
919
920
925 @Override
926 public String getFriendlyURLMapping() {
927 return _friendlyURLMapping;
928 }
929
930
937 @Override
938 public String getFriendlyURLRoutes() {
939 return _friendlyURLRoutes;
940 }
941
942
949 @Override
950 public List<String> getHeaderPortalCss() {
951 return _headerPortalCss;
952 }
953
954
961 @Override
962 public List<String> getHeaderPortalJavaScript() {
963 return _headerPortalJavaScript;
964 }
965
966
973 @Override
974 public List<String> getHeaderPortletCss() {
975 return _headerPortletCss;
976 }
977
978
985 @Override
986 public List<String> getHeaderPortletJavaScript() {
987 return _headerPortletJavaScript;
988 }
989
990
995 @Override
996 public String getIcon() {
997 return _icon;
998 }
999
1000
1007 @Override
1008 public boolean getInclude() {
1009 return _include;
1010 }
1011
1012
1019 @Override
1020 public List<String> getIndexerClasses() {
1021 return _indexerClasses;
1022 }
1023
1024
1029 @Override
1030 public List<Indexer<?>> getIndexerInstances() {
1031 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1032
1033 return portletBag.getIndexerInstances();
1034 }
1035
1036
1041 @Override
1042 public Map<String, String> getInitParams() {
1043 return _initParams;
1044 }
1045
1046
1053 @Override
1054 public boolean getInstanceable() {
1055 return _instanceable;
1056 }
1057
1058
1063 @Override
1064 public String getInstanceId() {
1065 return PortletConstants.getInstanceId(getPortletId());
1066 }
1067
1068
1074 @Override
1075 public boolean getLayoutCacheable() {
1076 return _layoutCacheable;
1077 }
1078
1079
1086 @Override
1087 public boolean getMaximizeEdit() {
1088 return _maximizeEdit;
1089 }
1090
1091
1098 @Override
1099 public boolean getMaximizeHelp() {
1100 return _maximizeHelp;
1101 }
1102
1103
1108 @Override
1109 public String getOpenSearchClass() {
1110 return _openSearchClass;
1111 }
1112
1113
1118 @Override
1119 public OpenSearch getOpenSearchInstance() {
1120 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1121
1122 List<OpenSearch> openSearchInstances =
1123 portletBag.getOpenSearchInstances();
1124
1125 if (openSearchInstances.isEmpty()) {
1126 return null;
1127 }
1128
1129 return openSearchInstances.get(0);
1130 }
1131
1132
1137 @Override
1138 public String getParentStrutsPath() {
1139 return _parentStrutsPath;
1140 }
1141
1142
1147 @Override
1148 public String getPermissionPropagatorClass() {
1149 return _permissionPropagatorClass;
1150 }
1151
1152
1157 @Override
1158 public PermissionPropagator getPermissionPropagatorInstance() {
1159 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1160
1161 List<PermissionPropagator> permissionPropagatorInstances =
1162 portletBag.getPermissionPropagatorInstances();
1163
1164 if (permissionPropagatorInstances.isEmpty()) {
1165 return null;
1166 }
1167
1168 return permissionPropagatorInstances.get(0);
1169 }
1170
1171
1176 @Override
1177 public String getPluginId() {
1178 return getRootPortletId();
1179 }
1180
1181
1186 @Override
1187 public PluginPackage getPluginPackage() {
1188 return _pluginPackage;
1189 }
1190
1191
1196 @Override
1197 public String getPluginType() {
1198 return Plugin.TYPE_PORTLET;
1199 }
1200
1201
1206 @Override
1207 public String getPollerProcessorClass() {
1208 return _pollerProcessorClass;
1209 }
1210
1211
1216 @Override
1217 public PollerProcessor getPollerProcessorInstance() {
1218 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1219
1220 List<PollerProcessor> pollerProcessorInstances =
1221 portletBag.getPollerProcessorInstances();
1222
1223 if (pollerProcessorInstances.isEmpty()) {
1224 return null;
1225 }
1226
1227 return pollerProcessorInstances.get(0);
1228 }
1229
1230
1235 @Override
1236 public String getPopMessageListenerClass() {
1237 return _popMessageListenerClass;
1238 }
1239
1240
1245 @Override
1246 public MessageListener getPopMessageListenerInstance() {
1247 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1248
1249 List<MessageListener> popMessageListenerInstances =
1250 portletBag.getPopMessageListenerInstances();
1251
1252 if (popMessageListenerInstances.isEmpty()) {
1253 return null;
1254 }
1255
1256 return popMessageListenerInstances.get(0);
1257 }
1258
1259
1266 @Override
1267 public boolean getPopUpPrint() {
1268 return _popUpPrint;
1269 }
1270
1271
1276 @Override
1277 public PortletApp getPortletApp() {
1278 return _portletApp;
1279 }
1280
1281
1286 @Override
1287 public String getPortletClass() {
1288 return _portletClass;
1289 }
1290
1291
1296 @Override
1297 public String getPortletDataHandlerClass() {
1298 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1299
1300 if (portletBag == null) {
1301 return _portletDataHandlerClass;
1302 }
1303
1304 PortletDataHandler portletDataHandler = getPortletDataHandlerInstance();
1305
1306 if (portletDataHandler == null) {
1307 return _portletDataHandlerClass;
1308 }
1309
1310 Class<?> clazz = portletDataHandler.getClass();
1311
1312 return clazz.getName();
1313 }
1314
1315
1320 @Override
1321 public PortletDataHandler getPortletDataHandlerInstance() {
1322 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1323
1324 if (portletBag == null) {
1325 _log.error("No portlet bag for " + toString());
1326
1327 throw new IllegalStateException("No portlet bag for " + toString());
1328 }
1329
1330 List<PortletDataHandler> portletDataHandlerInstances =
1331 portletBag.getPortletDataHandlerInstances();
1332
1333 if (portletDataHandlerInstances.isEmpty()) {
1334 return null;
1335 }
1336
1337 return portletDataHandlerInstances.get(0);
1338 }
1339
1340
1345 @Override
1346 public Map<String, PortletFilter> getPortletFilters() {
1347 return _portletFilters;
1348 }
1349
1350
1355 @Override
1356 public PortletInfo getPortletInfo() {
1357 return _portletInfo;
1358 }
1359
1360
1365 @Override
1366 public String getPortletLayoutListenerClass() {
1367 return _portletLayoutListenerClass;
1368 }
1369
1370
1375 @Override
1376 public PortletLayoutListener getPortletLayoutListenerInstance() {
1377 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1378
1379 List<PortletLayoutListener> portletLayoutListenerInstances =
1380 portletBag.getPortletLayoutListenerInstances();
1381
1382 if (portletLayoutListenerInstances.isEmpty()) {
1383 return null;
1384 }
1385
1386 return portletLayoutListenerInstances.get(0);
1387 }
1388
1389
1394 @Override
1395 public Map<String, Set<String>> getPortletModes() {
1396 return _portletModes;
1397 }
1398
1399
1404 @Override
1405 public String getPortletName() {
1406 return _portletName;
1407 }
1408
1409
1414 @Override
1415 public String getPortletURLClass() {
1416 return _portletURLClass;
1417 }
1418
1419
1426 @Override
1427 public boolean getPreferencesCompanyWide() {
1428 return _preferencesCompanyWide;
1429 }
1430
1431
1440 @Override
1441 public boolean getPreferencesOwnedByGroup() {
1442 return _preferencesOwnedByGroup;
1443 }
1444
1445
1450 @Override
1451 public boolean getPreferencesUniquePerLayout() {
1452 return _preferencesUniquePerLayout;
1453 }
1454
1455
1460 @Override
1461 public String getPreferencesValidator() {
1462 return _preferencesValidator;
1463 }
1464
1465
1472 @Override
1473 public boolean getPrivateRequestAttributes() {
1474 return _privateRequestAttributes;
1475 }
1476
1477
1484 @Override
1485 public boolean getPrivateSessionAttributes() {
1486 return _privateSessionAttributes;
1487 }
1488
1489
1496 @Override
1497 public QName getProcessingEvent(String uri, String localPart) {
1498 return _processingEventsByQName.get(
1499 PortletQNameUtil.getKey(uri, localPart));
1500 }
1501
1502
1507 @Override
1508 public Set<QName> getProcessingEvents() {
1509 return _processingEvents;
1510 }
1511
1512
1518 @Override
1519 public PublicRenderParameter getPublicRenderParameter(String identifier) {
1520 return _publicRenderParametersByIdentifier.get(identifier);
1521 }
1522
1523
1532 @Override
1533 public PublicRenderParameter getPublicRenderParameter(
1534 String uri, String localPart) {
1535
1536 return _publicRenderParametersByQName.get(
1537 PortletQNameUtil.getKey(uri, localPart));
1538 }
1539
1540
1545 @Override
1546 public Set<PublicRenderParameter> getPublicRenderParameters() {
1547 return _publicRenderParameters;
1548 }
1549
1550
1555 @Override
1556 public Set<QName> getPublishingEvents() {
1557 return _publishingEvents;
1558 }
1559
1560
1565 @Override
1566 public boolean getReady() {
1567 return isReady();
1568 }
1569
1570
1575 @Override
1576 public boolean getRemoteable() {
1577 return _remoteable;
1578 }
1579
1580
1585 @Override
1586 public int getRenderTimeout() {
1587 return _renderTimeout;
1588 }
1589
1590
1595 @Override
1596 public int getRenderWeight() {
1597 return _renderWeight;
1598 }
1599
1600
1605 @Override
1606 public String getResourceBundle() {
1607 return _resourceBundle;
1608 }
1609
1610
1617 @Override
1618 public boolean getRestoreCurrentView() {
1619 return _restoreCurrentView;
1620 }
1621
1622
1627 @Override
1628 public Map<String, String> getRoleMappers() {
1629 return _roleMappers;
1630 }
1631
1632
1637 @Override
1638 public String[] getRolesArray() {
1639 return _rolesArray;
1640 }
1641
1642
1647 @Override
1648 public Portlet getRootPortlet() {
1649 return _rootPortlet;
1650 }
1651
1652
1657 @Override
1658 public String getRootPortletId() {
1659 return PortletConstants.getRootPortletId(getPortletId());
1660 }
1661
1662
1667 @Override
1668 public List<SchedulerEntry> getSchedulerEntries() {
1669 return _schedulerEntries;
1670 }
1671
1672
1677 @Override
1678 public boolean getScopeable() {
1679 return _scopeable;
1680 }
1681
1682
1689 @Override
1690 public boolean getShowPortletAccessDenied() {
1691 return _showPortletAccessDenied;
1692 }
1693
1694
1700 @Override
1701 public boolean getShowPortletInactive() {
1702 return _showPortletInactive;
1703 }
1704
1705
1710 @Override
1711 public boolean getSinglePageApplication() {
1712 return _singlePageApplication;
1713 }
1714
1715
1722 @Override
1723 public List<String> getSocialActivityInterpreterClasses() {
1724 return _socialActivityInterpreterClasses;
1725 }
1726
1727
1732 @Override
1733 public List<SocialActivityInterpreter>
1734 getSocialActivityInterpreterInstances() {
1735
1736 if (_socialActivityInterpreterClasses.isEmpty()) {
1737 return null;
1738 }
1739
1740 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1741
1742 return portletBag.getSocialActivityInterpreterInstances();
1743 }
1744
1745
1752 @Override
1753 public boolean getSocialInteractionsConfiguration() {
1754 return _socialInteractionsConfiguration;
1755 }
1756
1757
1762 @Override
1763 public String getSocialRequestInterpreterClass() {
1764 return _socialRequestInterpreterClass;
1765 }
1766
1767
1774 @Override
1775 public SocialRequestInterpreter getSocialRequestInterpreterInstance() {
1776 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1777
1778 List<SocialRequestInterpreter> socialRequestInterpreterInstances =
1779 portletBag.getSocialRequestInterpreterInstances();
1780
1781 if (socialRequestInterpreterInstances.isEmpty()) {
1782 return null;
1783 }
1784
1785 return socialRequestInterpreterInstances.get(0);
1786 }
1787
1788
1795 @Override
1796 public List<String> getStagedModelDataHandlerClasses() {
1797 return _stagedModelDataHandlerClasses;
1798 }
1799
1800
1805 @Override
1806 public List<StagedModelDataHandler<?>>
1807 getStagedModelDataHandlerInstances() {
1808
1809 if (_stagedModelDataHandlerClasses.isEmpty()) {
1810 return null;
1811 }
1812
1813 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1814
1815 return portletBag.getStagedModelDataHandlerInstances();
1816 }
1817
1818
1825 @Override
1826 public boolean getStatic() {
1827 return _staticPortlet;
1828 }
1829
1830
1837 @Override
1838 public boolean getStaticEnd() {
1839 return !_staticPortletStart;
1840 }
1841
1842
1847 @Override
1848 public String getStaticResourcePath() {
1849 String proxyPath = PortalUtil.getPathProxy();
1850
1851 String virtualPath = getVirtualPath();
1852
1853 if (Validator.isNotNull(virtualPath)) {
1854 return proxyPath.concat(virtualPath);
1855 }
1856
1857 String contextPath = getContextPath();
1858
1859 if (!_portletApp.isWARFile()) {
1860 return contextPath;
1861 }
1862
1863 return proxyPath.concat(contextPath);
1864 }
1865
1866
1873 @Override
1874 public boolean getStaticStart() {
1875 return _staticPortletStart;
1876 }
1877
1878
1883 @Override
1884 public String getStrutsPath() {
1885 return _strutsPath;
1886 }
1887
1888
1893 @Override
1894 public Set<String> getSupportedLocales() {
1895 return _supportedLocales;
1896 }
1897
1898
1905 @Override
1906 public boolean getSystem() {
1907 return _system;
1908 }
1909
1910
1915 @Override
1916 public String getTemplateHandlerClass() {
1917 return _templateHandlerClass;
1918 }
1919
1920
1925 @Override
1926 public TemplateHandler getTemplateHandlerInstance() {
1927 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1928
1929 List<TemplateHandler> templateHandlerInstances =
1930 portletBag.getTemplateHandlerInstances();
1931
1932 if (templateHandlerInstances.isEmpty()) {
1933 return null;
1934 }
1935
1936 return templateHandlerInstances.get(0);
1937 }
1938
1939
1944 @Override
1945 public long getTimestamp() {
1946 if (_timestamp == null) {
1947 PortletApp portletApp = getPortletApp();
1948
1949 ServletContext servletContext = portletApp.getServletContext();
1950
1951 _timestamp = ServletContextUtil.getLastModified(
1952 servletContext, StringPool.SLASH, true);
1953 }
1954
1955 return _timestamp;
1956 }
1957
1958
1965 @Override
1966 public List<String> getTrashHandlerClasses() {
1967 return _trashHandlerClasses;
1968 }
1969
1970
1975 @Override
1976 public List<TrashHandler> getTrashHandlerInstances() {
1977 if (_trashHandlerClasses.isEmpty()) {
1978 return null;
1979 }
1980
1981 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1982
1983 return portletBag.getTrashHandlerInstances();
1984 }
1985
1986
1992 @Override
1993 public boolean getUndeployedPortlet() {
1994 return _undeployedPortlet;
1995 }
1996
1997
2002 @Override
2003 public Set<String> getUnlinkedRoles() {
2004 return _unlinkedRoles;
2005 }
2006
2007
2012 @Override
2013 public String getURLEncoderClass() {
2014 return _urlEncoderClass;
2015 }
2016
2017
2022 @Override
2023 public URLEncoder getURLEncoderInstance() {
2024 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2025
2026 List<URLEncoder> urlEncoderInstances =
2027 portletBag.getURLEncoderInstances();
2028
2029 if (urlEncoderInstances.isEmpty()) {
2030 return null;
2031 }
2032
2033 return urlEncoderInstances.get(0);
2034 }
2035
2036
2041 @Override
2042 public boolean getUseDefaultTemplate() {
2043 return _useDefaultTemplate;
2044 }
2045
2046
2052 @Override
2053 public long getUserId() {
2054 return PortletConstants.getUserId(getPortletId());
2055 }
2056
2057
2064 @Override
2065 public String getUserNotificationDefinitions() {
2066 return _userNotificationDefinitions;
2067 }
2068
2069
2076 @Override
2077 public List<String> getUserNotificationHandlerClasses() {
2078 return _userNotificationHandlerClasses;
2079 }
2080
2081
2086 @Override
2087 public List<UserNotificationHandler>
2088 getUserNotificationHandlerInstances() {
2089
2090 if (_userNotificationHandlerClasses.isEmpty()) {
2091 return null;
2092 }
2093
2094 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2095
2096 return portletBag.getUserNotificationHandlerInstances();
2097 }
2098
2099
2104 @Override
2105 public String getUserPrincipalStrategy() {
2106 return _userPrincipalStrategy;
2107 }
2108
2109
2114 @Override
2115 public String getVirtualPath() {
2116 return _virtualPath;
2117 }
2118
2119
2124 @Override
2125 public String getWebDAVStorageClass() {
2126 return _webDAVStorageClass;
2127 }
2128
2129
2134 @Override
2135 public WebDAVStorage getWebDAVStorageInstance() {
2136 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2137
2138 List<WebDAVStorage> webDAVStorageInstances =
2139 portletBag.getWebDAVStorageInstances();
2140
2141 if (webDAVStorageInstances.isEmpty()) {
2142 return null;
2143 }
2144
2145 return webDAVStorageInstances.get(0);
2146 }
2147
2148
2153 @Override
2154 public String getWebDAVStorageToken() {
2155 return _webDAVStorageToken;
2156 }
2157
2158
2163 @Override
2164 public Map<String, Set<String>> getWindowStates() {
2165 return _windowStates;
2166 }
2167
2168
2175 @Override
2176 public List<String> getWorkflowHandlerClasses() {
2177 return _workflowHandlerClasses;
2178 }
2179
2180
2185 @Override
2186 public List<WorkflowHandler<?>> getWorkflowHandlerInstances() {
2187 if (_workflowHandlerClasses.isEmpty()) {
2188 return null;
2189 }
2190
2191 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2192
2193 return portletBag.getWorkflowHandlerInstances();
2194 }
2195
2196
2201 @Override
2202 public String getXmlRpcMethodClass() {
2203 return _xmlRpcMethodClass;
2204 }
2205
2206
2211 @Override
2212 public Method getXmlRpcMethodInstance() {
2213 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2214
2215 List<Method> xmlRpcMethodInstances =
2216 portletBag.getXmlRpcMethodInstances();
2217
2218 if (xmlRpcMethodInstances.isEmpty()) {
2219 return null;
2220 }
2221
2222 return xmlRpcMethodInstances.get(0);
2223 }
2224
2225
2233 @Override
2234 public boolean hasAddPortletPermission(long userId) {
2235 PermissionChecker permissionChecker =
2236 PermissionThreadLocal.getPermissionChecker();
2237
2238 try {
2239 if ((permissionChecker == null) ||
2240 (permissionChecker.getUserId() != userId)) {
2241
2242 User user = UserLocalServiceUtil.getUser(userId);
2243
2244 permissionChecker = PermissionCheckerFactoryUtil.create(user);
2245 }
2246
2247 if (PortletPermissionUtil.contains(
2248 permissionChecker, getRootPortletId(),
2249 ActionKeys.ADD_TO_PAGE)) {
2250
2251 return true;
2252 }
2253 }
2254 catch (Exception e) {
2255 _log.error(e, e);
2256 }
2257
2258 return false;
2259 }
2260
2261 @Override
2262 public boolean hasFooterPortalCss() {
2263 return !_footerPortalCss.isEmpty();
2264 }
2265
2266 @Override
2267 public boolean hasFooterPortalJavaScript() {
2268 return !_footerPortalJavaScript.isEmpty();
2269 }
2270
2271 @Override
2272 public boolean hasFooterPortletCss() {
2273 return !_footerPortletCss.isEmpty();
2274 }
2275
2276 @Override
2277 public boolean hasFooterPortletJavaScript() {
2278 return !_footerPortletJavaScript.isEmpty();
2279 }
2280
2281 @Override
2282 public int hashCode() {
2283 String portletId = getPortletId();
2284
2285 return portletId.hashCode();
2286 }
2287
2288 @Override
2289 public boolean hasHeaderPortalCss() {
2290 return !_headerPortalCss.isEmpty();
2291 }
2292
2293 @Override
2294 public boolean hasHeaderPortalJavaScript() {
2295 return !_headerPortalJavaScript.isEmpty();
2296 }
2297
2298 @Override
2299 public boolean hasHeaderPortletCss() {
2300 return !_headerPortletCss.isEmpty();
2301 }
2302
2303 @Override
2304 public boolean hasHeaderPortletJavaScript() {
2305 return !_headerPortletJavaScript.isEmpty();
2306 }
2307
2308
2314 @Override
2315 public boolean hasMultipleMimeTypes() {
2316 if (_portletModes.size() > 1) {
2317 return true;
2318 }
2319 else {
2320 return false;
2321 }
2322 }
2323
2324
2333 @Override
2334 public boolean hasPortletMode(String mimeType, PortletMode portletMode) {
2335 if (mimeType == null) {
2336 mimeType = ContentTypes.TEXT_HTML;
2337 }
2338
2339 Set<String> mimeTypePortletModes = _portletModes.get(mimeType);
2340
2341 if (mimeTypePortletModes == null) {
2342 return false;
2343 }
2344
2345 if (mimeTypePortletModes.contains(portletMode.toString())) {
2346 return true;
2347 }
2348 else {
2349 return false;
2350 }
2351 }
2352
2353
2361 @Override
2362 public boolean hasRoleWithName(String roleName) {
2363 if (ArrayUtil.isEmpty(_rolesArray)) {
2364 return false;
2365 }
2366
2367 for (String curRoleName : _rolesArray) {
2368 if (StringUtil.equalsIgnoreCase(curRoleName, roleName)) {
2369 return true;
2370 }
2371 }
2372
2373 return false;
2374 }
2375
2376
2385 @Override
2386 public boolean hasWindowState(String mimeType, WindowState windowState) {
2387 if (mimeType == null) {
2388 mimeType = ContentTypes.TEXT_HTML;
2389 }
2390
2391 Set<String> mimeTypeWindowStates = _windowStates.get(mimeType);
2392
2393 if (mimeTypeWindowStates == null) {
2394 return false;
2395 }
2396
2397 if (mimeTypeWindowStates.contains(windowState.toString())) {
2398 return true;
2399 }
2400 else {
2401 return false;
2402 }
2403 }
2404
2405
2412 @Override
2413 public boolean isActionURLRedirect() {
2414 return _actionURLRedirect;
2415 }
2416
2417
2424 @Override
2425 public boolean isAddDefaultResource() {
2426 return _addDefaultResource;
2427 }
2428
2429
2434 @Override
2435 public boolean isAjaxable() {
2436 return _ajaxable;
2437 }
2438
2439 @Override
2440 public boolean isFullPageDisplayable() {
2441 return _applicationTypes.contains(
2442 ApplicationType.FULL_PAGE_APPLICATION);
2443 }
2444
2445
2452 @Override
2453 public boolean isInclude() {
2454 return _include;
2455 }
2456
2457
2464 @Override
2465 public boolean isInstanceable() {
2466 return _instanceable;
2467 }
2468
2469
2475 @Override
2476 public boolean isLayoutCacheable() {
2477 return _layoutCacheable;
2478 }
2479
2480
2487 @Override
2488 public boolean isMaximizeEdit() {
2489 return _maximizeEdit;
2490 }
2491
2492
2499 @Override
2500 public boolean isMaximizeHelp() {
2501 return _maximizeHelp;
2502 }
2503
2504
2511 @Override
2512 public boolean isPopUpPrint() {
2513 return _popUpPrint;
2514 }
2515
2516
2523 @Override
2524 public boolean isPreferencesCompanyWide() {
2525 return _preferencesCompanyWide;
2526 }
2527
2528
2537 @Override
2538 public boolean isPreferencesOwnedByGroup() {
2539 return _preferencesOwnedByGroup;
2540 }
2541
2542
2547 @Override
2548 public boolean isPreferencesUniquePerLayout() {
2549 return _preferencesUniquePerLayout;
2550 }
2551
2552
2559 @Override
2560 public boolean isPrivateRequestAttributes() {
2561 return _privateRequestAttributes;
2562 }
2563
2564
2571 @Override
2572 public boolean isPrivateSessionAttributes() {
2573 return _privateSessionAttributes;
2574 }
2575
2576
2581 @Override
2582 public boolean isReady() {
2583 Boolean ready = _readyMap.get(getRootPortletId());
2584
2585 if (ready == null) {
2586 return true;
2587 }
2588 else {
2589 return ready;
2590 }
2591 }
2592
2593
2598 @Override
2599 public boolean isRemoteable() {
2600 return _remoteable;
2601 }
2602
2603
2610 @Override
2611 public boolean isRequiresNamespacedParameters() {
2612 return _requiresNamespacedParameters;
2613 }
2614
2615
2622 @Override
2623 public boolean isRestoreCurrentView() {
2624 return _restoreCurrentView;
2625 }
2626
2627
2632 @Override
2633 public boolean isScopeable() {
2634 return _scopeable;
2635 }
2636
2637
2644 @Override
2645 public boolean isShowPortletAccessDenied() {
2646 return _showPortletAccessDenied;
2647 }
2648
2649
2655 @Override
2656 public boolean isShowPortletInactive() {
2657 return _showPortletInactive;
2658 }
2659
2660
2665 @Override
2666 public boolean isSinglePageApplication() {
2667 return _singlePageApplication;
2668 }
2669
2670
2677 @Override
2678 public boolean isSocialInteractionsConfiguration() {
2679 return _socialInteractionsConfiguration;
2680 }
2681
2682
2689 @Override
2690 public boolean isStatic() {
2691 return _staticPortlet;
2692 }
2693
2694
2701 @Override
2702 public boolean isStaticEnd() {
2703 return !_staticPortletStart;
2704 }
2705
2706
2713 @Override
2714 public boolean isStaticStart() {
2715 return _staticPortletStart;
2716 }
2717
2718
2725 @Override
2726 public boolean isSystem() {
2727 return _system;
2728 }
2729
2730
2736 @Override
2737 public boolean isUndeployedPortlet() {
2738 return _undeployedPortlet;
2739 }
2740
2741
2746 @Override
2747 public boolean isUseDefaultTemplate() {
2748 return _useDefaultTemplate;
2749 }
2750
2751
2755 @Override
2756 public void linkRoles() {
2757 List<String> linkedRoles = new ArrayList<>();
2758
2759 for (String unlinkedRole : _unlinkedRoles) {
2760 String roleLink = _roleMappers.get(unlinkedRole);
2761
2762 if (Validator.isNotNull(roleLink)) {
2763 if (_log.isDebugEnabled()) {
2764 _log.debug(
2765 "Linking role for portlet [" + getPortletId() +
2766 "] with role-name [" + unlinkedRole +
2767 "] to role-link [" + roleLink + "]");
2768 }
2769
2770 linkedRoles.add(roleLink);
2771 }
2772 else {
2773 _log.error(
2774 "Unable to link role for portlet [" + getPortletId() +
2775 "] with role-name [" + unlinkedRole +
2776 "] because role-link is null");
2777 }
2778 }
2779
2780 String[] array = linkedRoles.toArray(new String[linkedRoles.size()]);
2781
2782 Arrays.sort(array);
2783
2784 setRolesArray(array);
2785 }
2786
2787
2792 @Override
2793 public void setActionTimeout(int actionTimeout) {
2794 _actionTimeout = actionTimeout;
2795 }
2796
2797
2804 @Override
2805 public void setActionURLRedirect(boolean actionURLRedirect) {
2806 _actionURLRedirect = actionURLRedirect;
2807 }
2808
2809
2816 @Override
2817 public void setAddDefaultResource(boolean addDefaultResource) {
2818 _addDefaultResource = addDefaultResource;
2819 }
2820
2821
2827 @Override
2828 public void setAjaxable(boolean ajaxable) {
2829 _ajaxable = ajaxable;
2830 }
2831
2832
2837 @Override
2838 public void setApplicationTypes(Set<ApplicationType> applicationTypes) {
2839 for (ApplicationType applicationType : applicationTypes) {
2840 addApplicationType(applicationType);
2841 }
2842 }
2843
2844
2851 @Override
2852 public void setAssetRendererFactoryClasses(
2853 List<String> assetRendererFactoryClasses) {
2854
2855 _assetRendererFactoryClasses = assetRendererFactoryClasses;
2856 }
2857
2858
2865 @Override
2866 public void setAtomCollectionAdapterClasses(
2867 List<String> atomCollectionAdapterClasses) {
2868
2869 _atomCollectionAdapterClasses = atomCollectionAdapterClasses;
2870 }
2871
2872
2879 @Override
2880 public void setAutopropagatedParameters(
2881 Set<String> autopropagatedParameters) {
2882
2883 _autopropagatedParameters = autopropagatedParameters;
2884 }
2885
2886
2892 @Override
2893 public void setConfigurationActionClass(String configurationActionClass) {
2894 _configurationActionClass = configurationActionClass;
2895 }
2896
2897
2904 @Override
2905 public void setControlPanelEntryCategory(String controlPanelEntryCategory) {
2906 _controlPanelEntryCategory = controlPanelEntryCategory;
2907 }
2908
2909
2916 @Override
2917 public void setControlPanelEntryClass(String controlPanelEntryClass) {
2918 _controlPanelEntryClass = controlPanelEntryClass;
2919 }
2920
2921
2929 @Override
2930 public void setControlPanelEntryWeight(double controlPanelEntryWeight) {
2931 _controlPanelEntryWeight = controlPanelEntryWeight;
2932 }
2933
2934
2941 @Override
2942 public void setCssClassWrapper(String cssClassWrapper) {
2943 _cssClassWrapper = cssClassWrapper;
2944 }
2945
2946
2953 @Override
2954 public void setCustomAttributesDisplayClasses(
2955 List<String> customAttributesDisplayClasses) {
2956
2957 _customAttributesDisplayClasses = customAttributesDisplayClasses;
2958 }
2959
2960
2965 @Override
2966 public void setDefaultPluginSetting(PluginSetting pluginSetting) {
2967 _defaultPluginSetting = pluginSetting;
2968 }
2969
2970
2975 @Override
2976 public void setDefaultPreferences(String defaultPreferences) {
2977 _defaultPreferences = defaultPreferences;
2978 }
2979
2980
2985 @Override
2986 public void setDisplayName(String displayName) {
2987 _displayName = displayName;
2988 }
2989
2990
2995 @Override
2996 public void setExpCache(Integer expCache) {
2997 _expCache = expCache;
2998 }
2999
3000
3005 @Override
3006 public void setFacebookIntegration(String facebookIntegration) {
3007 if (Validator.isNotNull(facebookIntegration)) {
3008 _facebookIntegration = facebookIntegration;
3009 }
3010 }
3011
3012
3019 @Override
3020 public void setFooterPortalCss(List<String> footerPortalCss) {
3021 _footerPortalCss = footerPortalCss;
3022 }
3023
3024
3032 @Override
3033 public void setFooterPortalJavaScript(List<String> footerPortalJavaScript) {
3034 _footerPortalJavaScript = footerPortalJavaScript;
3035 }
3036
3037
3044 @Override
3045 public void setFooterPortletCss(List<String> footerPortletCss) {
3046 _footerPortletCss = footerPortletCss;
3047 }
3048
3049
3057 @Override
3058 public void setFooterPortletJavaScript(
3059 List<String> footerPortletJavaScript) {
3060
3061 _footerPortletJavaScript = footerPortletJavaScript;
3062 }
3063
3064
3070 @Override
3071 public void setFriendlyURLMapperClass(String friendlyURLMapperClass) {
3072 _friendlyURLMapperClass = friendlyURLMapperClass;
3073 }
3074
3075
3081 @Override
3082 public void setFriendlyURLMapping(String friendlyURLMapping) {
3083 _friendlyURLMapping = friendlyURLMapping;
3084 }
3085
3086
3093 @Override
3094 public void setFriendlyURLRoutes(String friendlyURLRoutes) {
3095 _friendlyURLRoutes = friendlyURLRoutes;
3096 }
3097
3098
3105 @Override
3106 public void setHeaderPortalCss(List<String> headerPortalCss) {
3107 _headerPortalCss = headerPortalCss;
3108 }
3109
3110
3118 @Override
3119 public void setHeaderPortalJavaScript(List<String> headerPortalJavaScript) {
3120 _headerPortalJavaScript = headerPortalJavaScript;
3121 }
3122
3123
3130 @Override
3131 public void setHeaderPortletCss(List<String> headerPortletCss) {
3132 _headerPortletCss = headerPortletCss;
3133 }
3134
3135
3143 @Override
3144 public void setHeaderPortletJavaScript(
3145 List<String> headerPortletJavaScript) {
3146
3147 _headerPortletJavaScript = headerPortletJavaScript;
3148 }
3149
3150
3155 @Override
3156 public void setIcon(String icon) {
3157 _icon = icon;
3158 }
3159
3160
3167 @Override
3168 public void setInclude(boolean include) {
3169 _include = include;
3170 }
3171
3172
3179 @Override
3180 public void setIndexerClasses(List<String> indexerClasses) {
3181 _indexerClasses = indexerClasses;
3182 }
3183
3184
3189 @Override
3190 public void setInitParams(Map<String, String> initParams) {
3191 _initParams = initParams;
3192 }
3193
3194
3201 @Override
3202 public void setInstanceable(boolean instanceable) {
3203 _instanceable = instanceable;
3204 }
3205
3206
3213 @Override
3214 public void setLayoutCacheable(boolean layoutCacheable) {
3215 _layoutCacheable = layoutCacheable;
3216 }
3217
3218
3225 @Override
3226 public void setMaximizeEdit(boolean maximizeEdit) {
3227 _maximizeEdit = maximizeEdit;
3228 }
3229
3230
3237 @Override
3238 public void setMaximizeHelp(boolean maximizeHelp) {
3239 _maximizeHelp = maximizeHelp;
3240 }
3241
3242
3247 @Override
3248 public void setOpenSearchClass(String openSearchClass) {
3249 _openSearchClass = openSearchClass;
3250 }
3251
3252
3257 @Override
3258 public void setParentStrutsPath(String parentStrutsPath) {
3259 _parentStrutsPath = parentStrutsPath;
3260 }
3261
3262
3265 @Override
3266 public void setPermissionPropagatorClass(String permissionPropagatorClass) {
3267 _permissionPropagatorClass = permissionPropagatorClass;
3268 }
3269
3270
3275 @Override
3276 public void setPluginPackage(PluginPackage pluginPackage) {
3277 _pluginPackage = pluginPackage;
3278 }
3279
3280
3286 @Override
3287 public void setPollerProcessorClass(String pollerProcessorClass) {
3288 _pollerProcessorClass = pollerProcessorClass;
3289 }
3290
3291
3297 @Override
3298 public void setPopMessageListenerClass(String popMessageListenerClass) {
3299 _popMessageListenerClass = popMessageListenerClass;
3300 }
3301
3302
3309 @Override
3310 public void setPopUpPrint(boolean popUpPrint) {
3311 _popUpPrint = popUpPrint;
3312 }
3313
3314
3319 @Override
3320 public void setPortletApp(PortletApp portletApp) {
3321 _portletApp = portletApp;
3322
3323 _portletApp.addPortlet(this);
3324 }
3325
3326
3331 @Override
3332 public void setPortletClass(String portletClass) {
3333 _portletClass = portletClass;
3334 }
3335
3336
3342 @Override
3343 public void setPortletDataHandlerClass(String portletDataHandlerClass) {
3344 _portletDataHandlerClass = portletDataHandlerClass;
3345 }
3346
3347
3352 @Override
3353 public void setPortletFilters(Map<String, PortletFilter> portletFilters) {
3354 _portletFilters = portletFilters;
3355 }
3356
3357
3362 @Override
3363 public void setPortletInfo(PortletInfo portletInfo) {
3364 _portletInfo = portletInfo;
3365 }
3366
3367
3373 @Override
3374 public void setPortletLayoutListenerClass(
3375 String portletLayoutListenerClass) {
3376
3377 _portletLayoutListenerClass = portletLayoutListenerClass;
3378 }
3379
3380
3385 @Override
3386 public void setPortletModes(Map<String, Set<String>> portletModes) {
3387 _portletModes = portletModes;
3388 }
3389
3390
3395 @Override
3396 public void setPortletName(String portletName) {
3397 _portletName = portletName;
3398 }
3399
3400
3405 @Override
3406 public void setPortletURLClass(String portletURLClass) {
3407 _portletURLClass = portletURLClass;
3408 }
3409
3410
3417 @Override
3418 public void setPreferencesCompanyWide(boolean preferencesCompanyWide) {
3419 _preferencesCompanyWide = preferencesCompanyWide;
3420 }
3421
3422
3431 @Override
3432 public void setPreferencesOwnedByGroup(boolean preferencesOwnedByGroup) {
3433 _preferencesOwnedByGroup = preferencesOwnedByGroup;
3434 }
3435
3436
3442 @Override
3443 public void setPreferencesUniquePerLayout(
3444 boolean preferencesUniquePerLayout) {
3445
3446 _preferencesUniquePerLayout = preferencesUniquePerLayout;
3447 }
3448
3449
3455 @Override
3456 public void setPreferencesValidator(String preferencesValidator) {
3457 if (preferencesValidator != null) {
3458
3459
3460
3461
3462 _preferencesValidator = preferencesValidator.trim();
3463 }
3464 else {
3465 _preferencesValidator = null;
3466 }
3467 }
3468
3469
3477 @Override
3478 public void setPrivateRequestAttributes(boolean privateRequestAttributes) {
3479 _privateRequestAttributes = privateRequestAttributes;
3480 }
3481
3482
3489 @Override
3490 public void setPrivateSessionAttributes(boolean privateSessionAttributes) {
3491 _privateSessionAttributes = privateSessionAttributes;
3492 }
3493
3494
3499 @Override
3500 public void setProcessingEvents(Set<QName> processingEvents) {
3501 for (QName processingEvent : processingEvents) {
3502 addProcessingEvent(processingEvent);
3503 }
3504 }
3505
3506
3511 @Override
3512 public void setPublicRenderParameters(
3513 Set<PublicRenderParameter> publicRenderParameters) {
3514
3515 for (PublicRenderParameter publicRenderParameter :
3516 publicRenderParameters) {
3517
3518 addPublicRenderParameter(publicRenderParameter);
3519 }
3520 }
3521
3522
3527 @Override
3528 public void setPublishingEvents(Set<QName> publishingEvents) {
3529 for (QName publishingEvent : publishingEvents) {
3530 addPublishingEvent(publishingEvent);
3531 }
3532 }
3533
3534
3539 @Override
3540 public void setReady(boolean ready) {
3541 _readyMap.put(getRootPortletId(), ready);
3542
3543 Registry registry = RegistryUtil.getRegistry();
3544
3545 synchronized (_serviceRegistrars) {
3546 if (ready) {
3547 ServiceRegistrar<Portlet> serviceRegistrar =
3548 registry.getServiceRegistrar(Portlet.class);
3549
3550 Map<String, Object> properties = new HashMap<>();
3551
3552 properties.put("javax.portlet.name", getPortletName());
3553
3554 serviceRegistrar.registerService(
3555 Portlet.class, this, properties);
3556
3557 _serviceRegistrars.put(getRootPortletId(), serviceRegistrar);
3558 }
3559 else {
3560 ServiceRegistrar<Portlet> serviceRegistrar =
3561 _serviceRegistrars.remove(getRootPortletId());
3562
3563 serviceRegistrar.destroy();
3564 }
3565 }
3566 }
3567
3568
3574 @Override
3575 public void setRemoteable(boolean remoteable) {
3576 _remoteable = remoteable;
3577 }
3578
3579
3584 @Override
3585 public void setRenderTimeout(int renderTimeout) {
3586 _renderTimeout = renderTimeout;
3587 }
3588
3589
3594 @Override
3595 public void setRenderWeight(int renderWeight) {
3596 _renderWeight = renderWeight;
3597 }
3598
3599
3606 @Override
3607 public void setRequiresNamespacedParameters(
3608 boolean requiresNamespacedParameters) {
3609
3610 _requiresNamespacedParameters = requiresNamespacedParameters;
3611 }
3612
3613
3618 @Override
3619 public void setResourceBundle(String resourceBundle) {
3620 _resourceBundle = resourceBundle;
3621 }
3622
3623
3630 @Override
3631 public void setRestoreCurrentView(boolean restoreCurrentView) {
3632 _restoreCurrentView = restoreCurrentView;
3633 }
3634
3635
3640 @Override
3641 public void setRoleMappers(Map<String, String> roleMappers) {
3642 _roleMappers = roleMappers;
3643 }
3644
3645
3650 @Override
3651 public void setRoles(String roles) {
3652 _rolesArray = StringUtil.split(roles);
3653
3654 super.setRoles(roles);
3655 }
3656
3657
3662 @Override
3663 public void setRolesArray(String[] rolesArray) {
3664 _rolesArray = rolesArray;
3665
3666 super.setRoles(StringUtil.merge(rolesArray));
3667 }
3668
3669
3674 @Override
3675 public void setSchedulerEntries(List<SchedulerEntry> schedulerEntries) {
3676 for (SchedulerEntry schedulerEntry : schedulerEntries) {
3677 addSchedulerEntry(schedulerEntry);
3678 }
3679 }
3680
3681
3687 @Override
3688 public void setScopeable(boolean scopeable) {
3689 _scopeable = scopeable;
3690 }
3691
3692
3699 @Override
3700 public void setShowPortletAccessDenied(boolean showPortletAccessDenied) {
3701 _showPortletAccessDenied = showPortletAccessDenied;
3702 }
3703
3704
3710 @Override
3711 public void setShowPortletInactive(boolean showPortletInactive) {
3712 _showPortletInactive = showPortletInactive;
3713 }
3714
3715
3721 @Override
3722 public void setSinglePageApplication(boolean singlePageApplication) {
3723 _singlePageApplication = singlePageApplication;
3724 }
3725
3726
3733 @Override
3734 public void setSocialActivityInterpreterClasses(
3735 List<String> socialActivityInterpreterClasses) {
3736
3737 _socialActivityInterpreterClasses = socialActivityInterpreterClasses;
3738 }
3739
3740 @Override
3741 public void setSocialInteractionsConfiguration(
3742 boolean socialInteractionsConfiguration) {
3743
3744 _socialInteractionsConfiguration = socialInteractionsConfiguration;
3745 }
3746
3747
3753 @Override
3754 public void setSocialRequestInterpreterClass(
3755 String socialRequestInterpreterClass) {
3756
3757 _socialRequestInterpreterClass = socialRequestInterpreterClass;
3758 }
3759
3760
3765
3766
3773 @Override
3774 public void setStagedModelDataHandlerClasses(
3775 List<String> stagedModelDataHandlerClasses) {
3776
3777 _stagedModelDataHandlerClasses = stagedModelDataHandlerClasses;
3778 }
3779
3780
3787 @Override
3788 public void setStatic(boolean staticPortlet) {
3789 _staticPortlet = staticPortlet;
3790 }
3791
3792
3799 @Override
3800 public void setStaticStart(boolean staticPortletStart) {
3801 _staticPortletStart = staticPortletStart;
3802 }
3803
3804
3809 @Override
3810 public void setStrutsPath(String strutsPath) {
3811 _strutsPath = strutsPath;
3812 }
3813
3814
3819 @Override
3820 public void setSupportedLocales(Set<String> supportedLocales) {
3821 _supportedLocales = supportedLocales;
3822 }
3823
3824
3831 @Override
3832 public void setSystem(boolean system) {
3833 _system = system;
3834 }
3835
3836
3842 @Override
3843 public void setTemplateHandlerClass(String templateHandlerClass) {
3844 _templateHandlerClass = templateHandlerClass;
3845 }
3846
3847
3854 @Override
3855 public void setTrashHandlerClasses(List<String> trashHandlerClasses) {
3856 _trashHandlerClasses = trashHandlerClasses;
3857 }
3858
3859
3865 @Override
3866 public void setUndeployedPortlet(boolean undeployedPortlet) {
3867 _undeployedPortlet = undeployedPortlet;
3868 }
3869
3870
3875 @Override
3876 public void setUnlinkedRoles(Set<String> unlinkedRoles) {
3877 _unlinkedRoles = unlinkedRoles;
3878 }
3879
3880
3885 @Override
3886 public void setURLEncoderClass(String urlEncoderClass) {
3887 _urlEncoderClass = urlEncoderClass;
3888 }
3889
3890
3896 @Override
3897 public void setUseDefaultTemplate(boolean useDefaultTemplate) {
3898 _useDefaultTemplate = useDefaultTemplate;
3899 }
3900
3901
3908 @Override
3909 public void setUserNotificationDefinitions(
3910 String userNotificationDefinitions) {
3911
3912 _userNotificationDefinitions = userNotificationDefinitions;
3913 }
3914
3915
3922 @Override
3923 public void setUserNotificationHandlerClasses(
3924 List<String> userNotificationHandlerClasses) {
3925
3926 _userNotificationHandlerClasses = userNotificationHandlerClasses;
3927 }
3928
3929
3934 @Override
3935 public void setUserPrincipalStrategy(String userPrincipalStrategy) {
3936 if (Validator.isNotNull(userPrincipalStrategy)) {
3937 _userPrincipalStrategy = userPrincipalStrategy;
3938 }
3939 }
3940
3941
3946 @Override
3947 public void setVirtualPath(String virtualPath) {
3948 if (_portletApp.isWARFile() && Validator.isNull(virtualPath)) {
3949 virtualPath = PropsValues.PORTLET_VIRTUAL_PATH;
3950 }
3951
3952 _virtualPath = virtualPath;
3953 }
3954
3955
3961 @Override
3962 public void setWebDAVStorageClass(String webDAVStorageClass) {
3963 _webDAVStorageClass = webDAVStorageClass;
3964 }
3965
3966
3972 @Override
3973 public void setWebDAVStorageToken(String webDAVStorageToken) {
3974 _webDAVStorageToken = webDAVStorageToken;
3975 }
3976
3977
3982 @Override
3983 public void setWindowStates(Map<String, Set<String>> windowStates) {
3984 _windowStates = windowStates;
3985 }
3986
3987
3994 @Override
3995 public void setWorkflowHandlerClasses(List<String> workflowHandlerClasses) {
3996 _workflowHandlerClasses = workflowHandlerClasses;
3997 }
3998
3999
4005 @Override
4006 public void setXmlRpcMethodClass(String xmlRpcMethodClass) {
4007 _xmlRpcMethodClass = xmlRpcMethodClass;
4008 }
4009
4010 @Override
4011 public void unsetReady() {
4012 _readyMap.remove(getRootPortletId());
4013
4014 synchronized (_serviceRegistrars) {
4015 ServiceRegistrar<Portlet> serviceRegistrar =
4016 _serviceRegistrars.remove(getRootPortletId());
4017
4018 serviceRegistrar.destroy();
4019 }
4020 }
4021
4022
4025 private static final Log _log = LogFactoryUtil.getLog(PortletImpl.class);
4026
4027
4030 private static final Map<String, Boolean> _readyMap =
4031 new ConcurrentHashMap<>();
4032
4033 private static final Map<String, ServiceRegistrar<Portlet>>
4034 _serviceRegistrars = new HashMap<>();
4035
4036
4039 private int _actionTimeout;
4040
4041
4045 private boolean _actionURLRedirect;
4046
4047
4051 private boolean _addDefaultResource;
4052
4053
4056 private boolean _ajaxable = true;
4057
4058
4061 private final Set<ApplicationType> _applicationTypes = new HashSet<>();
4062
4063
4067 private List<String> _assetRendererFactoryClasses;
4068
4069
4073 private List<String> _atomCollectionAdapterClasses;
4074
4075
4079 private Set<String> _autopropagatedParameters;
4080
4081
4084 private String _configurationActionClass;
4085
4086
4090 private String _controlPanelEntryCategory = StringPool.BLANK;
4091
4092
4096 private String _controlPanelEntryClass;
4097
4098
4102 private double _controlPanelEntryWeight = 100;
4103
4104
4108 private String _cssClassWrapper = StringPool.BLANK;
4109
4110
4114 private List<String> _customAttributesDisplayClasses;
4115
4116
4119 private PluginSetting _defaultPluginSetting;
4120
4121
4124 private String _defaultPreferences;
4125
4126
4129 private String _displayName;
4130
4131
4134 private Integer _expCache;
4135
4136
4139 private String _facebookIntegration =
4140 PortletConstants.FACEBOOK_INTEGRATION_IFRAME;
4141
4142
4146 private List<String> _footerPortalCss;
4147
4148
4152 private List<String> _footerPortalJavaScript;
4153
4154
4158 private List<String> _footerPortletCss;
4159
4160
4164 private List<String> _footerPortletJavaScript;
4165
4166
4169 private String _friendlyURLMapperClass;
4170
4171
4174 private String _friendlyURLMapping;
4175
4176
4180 private String _friendlyURLRoutes;
4181
4182
4186 private List<String> _headerPortalCss;
4187
4188
4192 private List<String> _headerPortalJavaScript;
4193
4194
4198 private List<String> _headerPortletCss;
4199
4200
4204 private List<String> _headerPortletJavaScript;
4205
4206
4209 private String _icon;
4210
4211
4215 private boolean _include = true;
4216
4217
4221 private List<String> _indexerClasses;
4222
4223
4226 private Map<String, String> _initParams;
4227
4228
4231 private boolean _instanceable;
4232
4233
4236 private boolean _layoutCacheable;
4237
4238
4242 private boolean _maximizeEdit;
4243
4244
4248 private boolean _maximizeHelp;
4249
4250
4253 private String _openSearchClass;
4254
4255
4258 private String _parentStrutsPath;
4259
4260
4263 private String _permissionPropagatorClass;
4264
4265
4268 private PluginPackage _pluginPackage;
4269
4270
4273 private String _pollerProcessorClass;
4274
4275
4278 private String _popMessageListenerClass;
4279
4280
4284 private boolean _popUpPrint = true;
4285
4286
4289 private PortletApp _portletApp;
4290
4291
4294 private String _portletClass;
4295
4296
4299 private String _portletDataHandlerClass;
4300
4301
4304 private Map<String, PortletFilter> _portletFilters;
4305
4306
4309 private PortletInfo _portletInfo;
4310
4311
4314 private String _portletLayoutListenerClass;
4315
4316
4319 private Map<String, Set<String>> _portletModes;
4320
4321
4324 private String _portletName;
4325
4326
4329 private String _portletURLClass;
4330
4331
4334 private boolean _preferencesCompanyWide;
4335
4336
4341 private boolean _preferencesOwnedByGroup = true;
4342
4343
4346 private boolean _preferencesUniquePerLayout = true;
4347
4348
4351 private String _preferencesValidator;
4352
4353
4357 private boolean _privateRequestAttributes = true;
4358
4359
4363 private boolean _privateSessionAttributes = true;
4364
4365
4368 private final Set<QName> _processingEvents = new HashSet<>();
4369
4370
4373 private final Map<String, QName> _processingEventsByQName = new HashMap<>();
4374
4375
4378 private final Set<PublicRenderParameter> _publicRenderParameters =
4379 new HashSet<>();
4380
4381
4385 private final Map<String, PublicRenderParameter>
4386 _publicRenderParametersByIdentifier = new HashMap<>();
4387
4388
4391 private final Map<String, PublicRenderParameter>
4392 _publicRenderParametersByQName = new HashMap<>();
4393
4394
4397 private final Set<QName> _publishingEvents = new HashSet<>();
4398
4399
4402 private boolean _remoteable;
4403
4404
4407 private int _renderTimeout;
4408
4409
4412 private int _renderWeight = 1;
4413
4414
4417 private boolean _requiresNamespacedParameters = true;
4418
4419
4422 private String _resourceBundle;
4423
4424
4428 private boolean _restoreCurrentView = true;
4429
4430
4433 private Map<String, String> _roleMappers;
4434
4435
4438 private String[] _rolesArray = new String[0];
4439
4440
4443 private final Portlet _rootPortlet;
4444
4445
4448 private final List<SchedulerEntry> _schedulerEntries;
4449
4450
4453 private boolean _scopeable;
4454
4455
4459 private boolean _showPortletAccessDenied =
4460 PropsValues.LAYOUT_SHOW_PORTLET_ACCESS_DENIED;
4461
4462
4465 private boolean _showPortletInactive =
4466 PropsValues.LAYOUT_SHOW_PORTLET_INACTIVE;
4467
4468
4471 private boolean _singlePageApplication = true;
4472
4473
4477 private List<String> _socialActivityInterpreterClasses;
4478
4479
4482 private boolean _socialInteractionsConfiguration;
4483
4484
4487 private String _socialRequestInterpreterClass;
4488
4489
4493 private List<String> _stagedModelDataHandlerClasses;
4494
4495
4499 private boolean _staticPortlet;
4500
4501
4505 private boolean _staticPortletStart;
4506
4507
4510 private String _strutsPath;
4511
4512
4515 private Set<String> _supportedLocales;
4516
4517
4521 private boolean _system;
4522
4523
4526 private String _templateHandlerClass;
4527
4528
4531 private Long _timestamp;
4532
4533
4537 private List<String> _trashHandlerClasses;
4538
4539
4542 private boolean _undeployedPortlet;
4543
4544
4547 private Set<String> _unlinkedRoles;
4548
4549
4552 private String _urlEncoderClass;
4553
4554
4557 private boolean _useDefaultTemplate = true;
4558
4559
4563 private String _userNotificationDefinitions;
4564
4565
4569 private List<String> _userNotificationHandlerClasses;
4570
4571
4574 private String _userPrincipalStrategy =
4575 PortletConstants.USER_PRINCIPAL_STRATEGY_USER_ID;
4576
4577
4580 private String _virtualPath;
4581
4582
4585 private String _webDAVStorageClass;
4586
4587
4590 private String _webDAVStorageToken;
4591
4592
4595 private Map<String, Set<String>> _windowStates;
4596
4597
4601 private List<String> _workflowHandlerClasses;
4602
4603
4606 private String _xmlRpcMethodClass;
4607
4608 }