001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.asset.kernel.model.AssetRendererFactory;
018 import com.liferay.expando.kernel.model.CustomAttributesDisplay;
019 import com.liferay.exportimport.kernel.lar.PortletDataHandler;
020 import com.liferay.exportimport.kernel.lar.StagedModelDataHandler;
021 import com.liferay.portal.kernel.application.type.ApplicationType;
022 import com.liferay.portal.kernel.atom.AtomCollectionAdapter;
023 import com.liferay.portal.kernel.log.Log;
024 import com.liferay.portal.kernel.log.LogFactoryUtil;
025 import com.liferay.portal.kernel.model.Plugin;
026 import com.liferay.portal.kernel.model.PluginSetting;
027 import com.liferay.portal.kernel.model.Portlet;
028 import com.liferay.portal.kernel.model.PortletApp;
029 import com.liferay.portal.kernel.model.PortletConstants;
030 import com.liferay.portal.kernel.model.PortletFilter;
031 import com.liferay.portal.kernel.model.PortletInfo;
032 import com.liferay.portal.kernel.model.PublicRenderParameter;
033 import com.liferay.portal.kernel.model.User;
034 import com.liferay.portal.kernel.notifications.UserNotificationHandler;
035 import com.liferay.portal.kernel.plugin.PluginPackage;
036 import com.liferay.portal.kernel.poller.PollerProcessor;
037 import com.liferay.portal.kernel.pop.MessageListener;
038 import com.liferay.portal.kernel.portlet.ConfigurationAction;
039 import com.liferay.portal.kernel.portlet.ControlPanelEntry;
040 import com.liferay.portal.kernel.portlet.FriendlyURLMapper;
041 import com.liferay.portal.kernel.portlet.FriendlyURLMapperTracker;
042 import com.liferay.portal.kernel.portlet.PortletBag;
043 import com.liferay.portal.kernel.portlet.PortletBagPool;
044 import com.liferay.portal.kernel.portlet.PortletLayoutListener;
045 import com.liferay.portal.kernel.portlet.PortletQNameUtil;
046 import com.liferay.portal.kernel.scheduler.SchedulerEntry;
047 import com.liferay.portal.kernel.search.Indexer;
048 import com.liferay.portal.kernel.search.OpenSearch;
049 import com.liferay.portal.kernel.security.permission.ActionKeys;
050 import com.liferay.portal.kernel.security.permission.PermissionChecker;
051 import com.liferay.portal.kernel.security.permission.PermissionCheckerFactoryUtil;
052 import com.liferay.portal.kernel.security.permission.PermissionPropagator;
053 import com.liferay.portal.kernel.security.permission.PermissionThreadLocal;
054 import com.liferay.portal.kernel.service.UserLocalServiceUtil;
055 import com.liferay.portal.kernel.service.permission.PortletPermissionUtil;
056 import com.liferay.portal.kernel.servlet.ServletContextUtil;
057 import com.liferay.portal.kernel.servlet.URLEncoder;
058 import com.liferay.portal.kernel.template.TemplateHandler;
059 import com.liferay.portal.kernel.trash.TrashHandler;
060 import com.liferay.portal.kernel.util.ArrayUtil;
061 import com.liferay.portal.kernel.util.ContentTypes;
062 import com.liferay.portal.kernel.util.PortalUtil;
063 import com.liferay.portal.kernel.util.StringPool;
064 import com.liferay.portal.kernel.util.StringUtil;
065 import com.liferay.portal.kernel.util.Validator;
066 import com.liferay.portal.kernel.webdav.WebDAVStorage;
067 import com.liferay.portal.kernel.workflow.WorkflowHandler;
068 import com.liferay.portal.kernel.xml.QName;
069 import com.liferay.portal.kernel.xmlrpc.Method;
070 import com.liferay.portal.util.PropsValues;
071 import com.liferay.portlet.DefaultControlPanelEntryFactory;
072 import com.liferay.registry.Registry;
073 import com.liferay.registry.RegistryUtil;
074 import com.liferay.registry.ServiceRegistrar;
075 import com.liferay.social.kernel.model.SocialActivityInterpreter;
076 import com.liferay.social.kernel.model.SocialRequestInterpreter;
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 String userNotificationDefinitions,
165 List<String> userNotificationHandlerClasses, String webDAVStorageToken,
166 String webDAVStorageClass, String xmlRpcMethodClass,
167 String controlPanelEntryCategory, double controlPanelEntryWeight,
168 String controlPanelClass, List<String> assetRendererFactoryClasses,
169 List<String> atomCollectionAdapterClasses,
170 List<String> customAttributesDisplayClasses,
171 String permissionPropagatorClass, List<String> trashHandlerClasses,
172 List<String> workflowHandlerClasses, String defaultPreferences,
173 String preferencesValidator, boolean preferencesCompanyWide,
174 boolean preferencesUniquePerLayout, boolean preferencesOwnedByGroup,
175 boolean useDefaultTemplate, boolean showPortletAccessDenied,
176 boolean showPortletInactive, boolean actionURLRedirect,
177 boolean restoreCurrentView, boolean maximizeEdit, boolean maximizeHelp,
178 boolean popUpPrint, boolean layoutCacheable, boolean instanceable,
179 boolean remoteable, boolean scopeable, boolean singlePageApplication,
180 String userPrincipalStrategy, boolean privateRequestAttributes,
181 boolean privateSessionAttributes, Set<String> autopropagatedParameters,
182 boolean requiresNamespacedParameters, int actionTimeout,
183 int renderTimeout, int renderWeight, boolean ajaxable,
184 List<String> headerPortalCss, List<String> headerPortletCss,
185 List<String> headerPortalJavaScript,
186 List<String> headerPortletJavaScript, List<String> footerPortalCss,
187 List<String> footerPortletCss, List<String> footerPortalJavaScript,
188 List<String> footerPortletJavaScript, String cssClassWrapper,
189 String facebookIntegration, boolean addDefaultResource, String roles,
190 Set<String> unlinkedRoles, Map<String, String> roleMappers,
191 boolean system, boolean active, boolean include,
192 Map<String, String> initParams, Integer expCache,
193 Map<String, Set<String>> portletModes,
194 Map<String, Set<String>> windowStates, Set<String> supportedLocales,
195 String resourceBundle, PortletInfo portletInfo,
196 Map<String, PortletFilter> portletFilters, Set<QName> processingEvents,
197 Set<QName> publishingEvents,
198 Set<PublicRenderParameter> publicRenderParameters,
199 PortletApp portletApp) {
200
201 setPortletId(portletId);
202 setCompanyId(companyId);
203 setRoles(roles);
204 setActive(active);
205 setProcessingEvents(processingEvents);
206 setPublishingEvents(publishingEvents);
207 setPublicRenderParameters(publicRenderParameters);
208
209 _rootPortlet = rootPortlet;
210 _pluginPackage = pluginPackage;
211 _defaultPluginSetting = pluginSetting;
212 _icon = icon;
213 _virtualPath = virtualPath;
214 _strutsPath = strutsPath;
215 _parentStrutsPath = parentStrutsPath;
216 _portletName = portletName;
217 _displayName = displayName;
218 _portletClass = portletClass;
219 _configurationActionClass = configurationActionClass;
220 _indexerClasses = indexerClasses;
221 _openSearchClass = openSearchClass;
222 _schedulerEntries = schedulerEntries;
223 _portletURLClass = portletURLClass;
224 _friendlyURLMapperClass = friendlyURLMapperClass;
225 _friendlyURLMapping = friendlyURLMapping;
226 _friendlyURLRoutes = friendlyURLRoutes;
227 _urlEncoderClass = urlEncoderClass;
228 _portletDataHandlerClass = portletDataHandlerClass;
229 _stagedModelDataHandlerClasses = stagedModelDataHandlerClasses;
230 _templateHandlerClass = templateHandlerClass;
231 _portletLayoutListenerClass = portletLayoutListenerClass;
232 _pollerProcessorClass = pollerProcessorClass;
233 _popMessageListenerClass = popMessageListenerClass;
234 _socialActivityInterpreterClasses = socialActivityInterpreterClasses;
235 _socialRequestInterpreterClass = socialRequestInterpreterClass;
236 _userNotificationDefinitions = userNotificationDefinitions;
237 _userNotificationHandlerClasses = userNotificationHandlerClasses;
238 _webDAVStorageToken = webDAVStorageToken;
239 _webDAVStorageClass = webDAVStorageClass;
240 _xmlRpcMethodClass = xmlRpcMethodClass;
241 _controlPanelEntryCategory = controlPanelEntryCategory;
242 _controlPanelEntryWeight = controlPanelEntryWeight;
243 _controlPanelEntryClass = controlPanelClass;
244 _assetRendererFactoryClasses = assetRendererFactoryClasses;
245 _atomCollectionAdapterClasses = atomCollectionAdapterClasses;
246 _customAttributesDisplayClasses = customAttributesDisplayClasses;
247 _permissionPropagatorClass = permissionPropagatorClass;
248 _trashHandlerClasses = trashHandlerClasses;
249 _workflowHandlerClasses = workflowHandlerClasses;
250 _defaultPreferences = defaultPreferences;
251 _preferencesValidator = preferencesValidator;
252 _preferencesCompanyWide = preferencesCompanyWide;
253 _preferencesUniquePerLayout = preferencesUniquePerLayout;
254 _preferencesOwnedByGroup = preferencesOwnedByGroup;
255 _useDefaultTemplate = useDefaultTemplate;
256 _showPortletAccessDenied = showPortletAccessDenied;
257 _showPortletInactive = showPortletInactive;
258 _actionURLRedirect = actionURLRedirect;
259 _restoreCurrentView = restoreCurrentView;
260 _maximizeEdit = maximizeEdit;
261 _maximizeHelp = maximizeHelp;
262 _popUpPrint = popUpPrint;
263 _layoutCacheable = layoutCacheable;
264 _instanceable = instanceable;
265 _remoteable = remoteable;
266 _scopeable = scopeable;
267 _singlePageApplication = singlePageApplication;
268 _userPrincipalStrategy = userPrincipalStrategy;
269 _privateRequestAttributes = privateRequestAttributes;
270 _privateSessionAttributes = privateSessionAttributes;
271 _autopropagatedParameters = autopropagatedParameters;
272 _requiresNamespacedParameters = requiresNamespacedParameters;
273 _actionTimeout = actionTimeout;
274 _renderTimeout = renderTimeout;
275 _renderWeight = renderWeight;
276 _ajaxable = ajaxable;
277 _headerPortalCss = headerPortalCss;
278 _headerPortletCss = headerPortletCss;
279 _headerPortalJavaScript = headerPortalJavaScript;
280 _headerPortletJavaScript = headerPortletJavaScript;
281 _footerPortalCss = footerPortalCss;
282 _footerPortletCss = footerPortletCss;
283 _footerPortalJavaScript = footerPortalJavaScript;
284 _footerPortletJavaScript = footerPortletJavaScript;
285 _cssClassWrapper = cssClassWrapper;
286 _facebookIntegration = facebookIntegration;
287 _addDefaultResource = addDefaultResource;
288 _unlinkedRoles = unlinkedRoles;
289 _roleMappers = roleMappers;
290 _system = system;
291 _include = include;
292 _initParams = initParams;
293 _expCache = expCache;
294 _portletModes = portletModes;
295 _windowStates = windowStates;
296 _supportedLocales = supportedLocales;
297 _resourceBundle = resourceBundle;
298 _portletInfo = portletInfo;
299 _portletFilters = portletFilters;
300 _portletApp = portletApp;
301 }
302
303
308 @Override
309 public void addApplicationType(ApplicationType applicationType) {
310 _applicationTypes.add(applicationType);
311 }
312
313
316 @Override
317 public void addProcessingEvent(QName processingEvent) {
318 _processingEvents.add(processingEvent);
319 _processingEventsByQName.put(
320 PortletQNameUtil.getKey(processingEvent), processingEvent);
321 }
322
323
328 @Override
329 public void addPublicRenderParameter(
330 PublicRenderParameter publicRenderParameter) {
331
332 _publicRenderParameters.add(publicRenderParameter);
333
334 String identifier = publicRenderParameter.getIdentifier();
335
336 _publicRenderParametersByIdentifier.put(
337 identifier, publicRenderParameter);
338
339 QName qName = publicRenderParameter.getQName();
340
341 _publicRenderParametersByQName.put(
342 PortletQNameUtil.getKey(qName), publicRenderParameter);
343
344 String publicRenderParameterName =
345 PortletQNameUtil.getPublicRenderParameterName(qName);
346
347 PortletQNameUtil.setPublicRenderParameterIdentifier(
348 publicRenderParameterName, identifier);
349 }
350
351
354 @Override
355 public void addPublishingEvent(QName publishingEvent) {
356 _publishingEvents.add(publishingEvent);
357 }
358
359
362 @Override
363 public void addSchedulerEntry(SchedulerEntry schedulerEntry) {
364 _schedulerEntries.add(schedulerEntry);
365 }
366
367
372 @Override
373 public Object clone() {
374 Portlet portlet = new PortletImpl(
375 getPortletId(), getRootPortlet(), getPluginPackage(),
376 getDefaultPluginSetting(), getCompanyId(), getIcon(),
377 getVirtualPath(), getStrutsPath(), getParentStrutsPath(),
378 getPortletName(), getDisplayName(), getPortletClass(),
379 getConfigurationActionClass(), getIndexerClasses(),
380 getOpenSearchClass(), getSchedulerEntries(), getPortletURLClass(),
381 getFriendlyURLMapperClass(), getFriendlyURLMapping(),
382 getFriendlyURLRoutes(), getURLEncoderClass(),
383 getPortletDataHandlerClass(), getStagedModelDataHandlerClasses(),
384 getTemplateHandlerClass(), getPortletLayoutListenerClass(),
385 getPollerProcessorClass(), getPopMessageListenerClass(),
386 getSocialActivityInterpreterClasses(),
387 getSocialRequestInterpreterClass(),
388 getUserNotificationDefinitions(),
389 getUserNotificationHandlerClasses(), getWebDAVStorageToken(),
390 getWebDAVStorageClass(), getXmlRpcMethodClass(),
391 getControlPanelEntryCategory(), getControlPanelEntryWeight(),
392 getControlPanelEntryClass(), getAssetRendererFactoryClasses(),
393 getAtomCollectionAdapterClasses(),
394 getCustomAttributesDisplayClasses(), getPermissionPropagatorClass(),
395 getTrashHandlerClasses(), getWorkflowHandlerClasses(),
396 getDefaultPreferences(), getPreferencesValidator(),
397 isPreferencesCompanyWide(), isPreferencesUniquePerLayout(),
398 isPreferencesOwnedByGroup(), isUseDefaultTemplate(),
399 isShowPortletAccessDenied(), isShowPortletInactive(),
400 isActionURLRedirect(), isRestoreCurrentView(), isMaximizeEdit(),
401 isMaximizeHelp(), isPopUpPrint(), isLayoutCacheable(),
402 isInstanceable(), isRemoteable(), isScopeable(),
403 isSinglePageApplication(), getUserPrincipalStrategy(),
404 isPrivateRequestAttributes(), isPrivateSessionAttributes(),
405 getAutopropagatedParameters(), isRequiresNamespacedParameters(),
406 getActionTimeout(), getRenderTimeout(), getRenderWeight(),
407 isAjaxable(), getHeaderPortalCss(), getHeaderPortletCss(),
408 getHeaderPortalJavaScript(), getHeaderPortletJavaScript(),
409 getFooterPortalCss(), getFooterPortletCss(),
410 getFooterPortalJavaScript(), getFooterPortletJavaScript(),
411 getCssClassWrapper(), getFacebookIntegration(),
412 isAddDefaultResource(), getRoles(), getUnlinkedRoles(),
413 getRoleMappers(), isSystem(), isActive(), isInclude(),
414 getInitParams(), getExpCache(), getPortletModes(),
415 getWindowStates(), getSupportedLocales(), getResourceBundle(),
416 getPortletInfo(), getPortletFilters(), getProcessingEvents(),
417 getPublishingEvents(), getPublicRenderParameters(),
418 getPortletApp());
419
420 portlet.setApplicationTypes(getApplicationTypes());
421 portlet.setId(getId());
422 portlet.setUndeployedPortlet(isUndeployedPortlet());
423
424 return portlet;
425 }
426
427
436 @Override
437 public int compareTo(Portlet portlet) {
438 String portletId = getPortletId();
439
440 return portletId.compareTo(portlet.getPortletId());
441 }
442
443
449 @Override
450 public boolean equals(Object obj) {
451 if (this == obj) {
452 return true;
453 }
454
455 if (!(obj instanceof Portlet)) {
456 return false;
457 }
458
459 Portlet portlet = (Portlet)obj;
460
461 String portletId = getPortletId();
462
463 return portletId.equals(portlet.getPortletId());
464 }
465
466
471 @Override
472 public int getActionTimeout() {
473 return _actionTimeout;
474 }
475
476
483 @Override
484 public boolean getActionURLRedirect() {
485 return _actionURLRedirect;
486 }
487
488
495 @Override
496 public boolean getAddDefaultResource() {
497 return _addDefaultResource;
498 }
499
500
505 @Override
506 public boolean getAjaxable() {
507 return _ajaxable;
508 }
509
510
515 @Override
516 public Set<String> getAllPortletModes() {
517 Set<String> allPortletModes = new TreeSet<>();
518
519 for (Map.Entry<String, Set<String>> entry : _portletModes.entrySet()) {
520 Set<String> mimeTypePortletModes = entry.getValue();
521
522 for (String portletMode : mimeTypePortletModes) {
523 allPortletModes.add(portletMode);
524 }
525 }
526
527 return allPortletModes;
528 }
529
530
535 @Override
536 public Set<String> getAllWindowStates() {
537 Set<String> allWindowStates = new TreeSet<>();
538
539 for (Map.Entry<String, Set<String>> entry : _windowStates.entrySet()) {
540 Set<String> mimeTypeWindowStates = entry.getValue();
541
542 for (String windowState : mimeTypeWindowStates) {
543 allWindowStates.add(windowState);
544 }
545 }
546
547 return allWindowStates;
548 }
549
550
555 @Override
556 public Set<ApplicationType> getApplicationTypes() {
557 return _applicationTypes;
558 }
559
560
567 @Override
568 public List<String> getAssetRendererFactoryClasses() {
569 return _assetRendererFactoryClasses;
570 }
571
572
577 @Override
578 public List<AssetRendererFactory<?>> getAssetRendererFactoryInstances() {
579 if (_assetRendererFactoryClasses.isEmpty()) {
580 return null;
581 }
582
583 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
584
585 return portletBag.getAssetRendererFactoryInstances();
586 }
587
588
595 @Override
596 public List<String> getAtomCollectionAdapterClasses() {
597 return _atomCollectionAdapterClasses;
598 }
599
600
605 @Override
606 public List<AtomCollectionAdapter<?>> getAtomCollectionAdapterInstances() {
607 if (_atomCollectionAdapterClasses.isEmpty()) {
608 return null;
609 }
610
611 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
612
613 return portletBag.getAtomCollectionAdapterInstances();
614 }
615
616
623 @Override
624 public Set<String> getAutopropagatedParameters() {
625 return _autopropagatedParameters;
626 }
627
628
634 @Override
635 public Portlet getClonedInstance(String portletId) {
636 Portlet portlet = (Portlet)clone();
637
638 portlet.setPortletId(portletId);
639
640 return portlet;
641 }
642
643
648 @Override
649 public String getConfigurationActionClass() {
650 return _configurationActionClass;
651 }
652
653
658 @Override
659 public ConfigurationAction getConfigurationActionInstance() {
660 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
661
662 List<ConfigurationAction> configurationActionInstances =
663 portletBag.getConfigurationActionInstances();
664
665 if (configurationActionInstances.isEmpty()) {
666 return null;
667 }
668
669 return configurationActionInstances.get(0);
670 }
671
672
677 @Override
678 public String getContextName() {
679 if (!_portletApp.isWARFile()) {
680 return PortalUtil.getServletContextName();
681 }
682
683 return _portletApp.getServletContextName();
684 }
685
686
691 @Override
692 public String getContextPath() {
693 return _portletApp.getContextPath();
694 }
695
696
703 @Override
704 public String getControlPanelEntryCategory() {
705 return _controlPanelEntryCategory;
706 }
707
708
715 @Override
716 public String getControlPanelEntryClass() {
717 return _controlPanelEntryClass;
718 }
719
720
727 @Override
728 public ControlPanelEntry getControlPanelEntryInstance() {
729 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
730
731 List<ControlPanelEntry> controlPanelEntryInstances =
732 portletBag.getControlPanelEntryInstances();
733
734 if (controlPanelEntryInstances.isEmpty()) {
735 return DefaultControlPanelEntryFactory.getInstance();
736 }
737
738 return controlPanelEntryInstances.get(0);
739 }
740
741
748 @Override
749 public double getControlPanelEntryWeight() {
750 return _controlPanelEntryWeight;
751 }
752
753
760 @Override
761 public String getCssClassWrapper() {
762 return _cssClassWrapper;
763 }
764
765
772 @Override
773 public List<String> getCustomAttributesDisplayClasses() {
774 return _customAttributesDisplayClasses;
775 }
776
777
782 @Override
783 public List<CustomAttributesDisplay> getCustomAttributesDisplayInstances() {
784 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
785
786 return portletBag.getCustomAttributesDisplayInstances();
787 }
788
789
794 @Override
795 public PluginSetting getDefaultPluginSetting() {
796 return _defaultPluginSetting;
797 }
798
799
804 @Override
805 public String getDefaultPreferences() {
806 if (Validator.isNull(_defaultPreferences)) {
807 return PortletConstants.DEFAULT_PREFERENCES;
808 }
809 else {
810 return _defaultPreferences;
811 }
812 }
813
814
819 @Override
820 public String getDisplayName() {
821 return _displayName;
822 }
823
824
829 @Override
830 public Integer getExpCache() {
831 return _expCache;
832 }
833
834
839 @Override
840 public String getFacebookIntegration() {
841 return _facebookIntegration;
842 }
843
844
851 @Override
852 public List<String> getFooterPortalCss() {
853 return _footerPortalCss;
854 }
855
856
863 @Override
864 public List<String> getFooterPortalJavaScript() {
865 return _footerPortalJavaScript;
866 }
867
868
875 @Override
876 public List<String> getFooterPortletCss() {
877 return _footerPortletCss;
878 }
879
880
887 @Override
888 public List<String> getFooterPortletJavaScript() {
889 return _footerPortletJavaScript;
890 }
891
892
897 @Override
898 public String getFriendlyURLMapperClass() {
899 return _friendlyURLMapperClass;
900 }
901
902
907 @Override
908 public FriendlyURLMapper getFriendlyURLMapperInstance() {
909 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
910
911 FriendlyURLMapperTracker friendlyURLMapperTracker =
912 portletBag.getFriendlyURLMapperTracker();
913
914 return friendlyURLMapperTracker.getFriendlyURLMapper();
915 }
916
917
922 @Override
923 public String getFriendlyURLMapping() {
924 return _friendlyURLMapping;
925 }
926
927
934 @Override
935 public String getFriendlyURLRoutes() {
936 return _friendlyURLRoutes;
937 }
938
939
946 @Override
947 public List<String> getHeaderPortalCss() {
948 return _headerPortalCss;
949 }
950
951
958 @Override
959 public List<String> getHeaderPortalJavaScript() {
960 return _headerPortalJavaScript;
961 }
962
963
970 @Override
971 public List<String> getHeaderPortletCss() {
972 return _headerPortletCss;
973 }
974
975
982 @Override
983 public List<String> getHeaderPortletJavaScript() {
984 return _headerPortletJavaScript;
985 }
986
987
992 @Override
993 public String getIcon() {
994 return _icon;
995 }
996
997
1004 @Override
1005 public boolean getInclude() {
1006 return _include;
1007 }
1008
1009
1016 @Override
1017 public List<String> getIndexerClasses() {
1018 return _indexerClasses;
1019 }
1020
1021
1026 @Override
1027 public List<Indexer<?>> getIndexerInstances() {
1028 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1029
1030 return portletBag.getIndexerInstances();
1031 }
1032
1033
1038 @Override
1039 public Map<String, String> getInitParams() {
1040 return _initParams;
1041 }
1042
1043
1050 @Override
1051 public boolean getInstanceable() {
1052 return _instanceable;
1053 }
1054
1055
1060 @Override
1061 public String getInstanceId() {
1062 return PortletConstants.getInstanceId(getPortletId());
1063 }
1064
1065
1071 @Override
1072 public boolean getLayoutCacheable() {
1073 return _layoutCacheable;
1074 }
1075
1076
1083 @Override
1084 public boolean getMaximizeEdit() {
1085 return _maximizeEdit;
1086 }
1087
1088
1095 @Override
1096 public boolean getMaximizeHelp() {
1097 return _maximizeHelp;
1098 }
1099
1100
1105 @Override
1106 public String getOpenSearchClass() {
1107 return _openSearchClass;
1108 }
1109
1110
1115 @Override
1116 public OpenSearch getOpenSearchInstance() {
1117 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1118
1119 List<OpenSearch> openSearchInstances =
1120 portletBag.getOpenSearchInstances();
1121
1122 if (openSearchInstances.isEmpty()) {
1123 return null;
1124 }
1125
1126 return openSearchInstances.get(0);
1127 }
1128
1129
1134 @Override
1135 public String getParentStrutsPath() {
1136 return _parentStrutsPath;
1137 }
1138
1139
1144 @Override
1145 public String getPermissionPropagatorClass() {
1146 return _permissionPropagatorClass;
1147 }
1148
1149
1154 @Override
1155 public PermissionPropagator getPermissionPropagatorInstance() {
1156 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1157
1158 List<PermissionPropagator> permissionPropagatorInstances =
1159 portletBag.getPermissionPropagatorInstances();
1160
1161 if (permissionPropagatorInstances.isEmpty()) {
1162 return null;
1163 }
1164
1165 return permissionPropagatorInstances.get(0);
1166 }
1167
1168
1173 @Override
1174 public String getPluginId() {
1175 return getRootPortletId();
1176 }
1177
1178
1183 @Override
1184 public PluginPackage getPluginPackage() {
1185 return _pluginPackage;
1186 }
1187
1188
1193 @Override
1194 public String getPluginType() {
1195 return Plugin.TYPE_PORTLET;
1196 }
1197
1198
1203 @Override
1204 public String getPollerProcessorClass() {
1205 return _pollerProcessorClass;
1206 }
1207
1208
1213 @Override
1214 public PollerProcessor getPollerProcessorInstance() {
1215 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1216
1217 List<PollerProcessor> pollerProcessorInstances =
1218 portletBag.getPollerProcessorInstances();
1219
1220 if (pollerProcessorInstances.isEmpty()) {
1221 return null;
1222 }
1223
1224 return pollerProcessorInstances.get(0);
1225 }
1226
1227
1232 @Override
1233 public String getPopMessageListenerClass() {
1234 return _popMessageListenerClass;
1235 }
1236
1237
1242 @Override
1243 public MessageListener getPopMessageListenerInstance() {
1244 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1245
1246 List<MessageListener> popMessageListenerInstances =
1247 portletBag.getPopMessageListenerInstances();
1248
1249 if (popMessageListenerInstances.isEmpty()) {
1250 return null;
1251 }
1252
1253 return popMessageListenerInstances.get(0);
1254 }
1255
1256
1263 @Override
1264 public boolean getPopUpPrint() {
1265 return _popUpPrint;
1266 }
1267
1268
1273 @Override
1274 public PortletApp getPortletApp() {
1275 return _portletApp;
1276 }
1277
1278
1283 @Override
1284 public String getPortletClass() {
1285 return _portletClass;
1286 }
1287
1288
1293 @Override
1294 public String getPortletDataHandlerClass() {
1295 return _portletDataHandlerClass;
1296 }
1297
1298
1303 @Override
1304 public PortletDataHandler getPortletDataHandlerInstance() {
1305 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1306
1307 if (portletBag == null) {
1308 _log.error("No portlet bag for " + toString());
1309
1310 throw new IllegalStateException("No portlet bag for " + toString());
1311 }
1312
1313 List<PortletDataHandler> portletDataHandlerInstances =
1314 portletBag.getPortletDataHandlerInstances();
1315
1316 if (portletDataHandlerInstances.isEmpty()) {
1317 return null;
1318 }
1319
1320 return portletDataHandlerInstances.get(0);
1321 }
1322
1323
1328 @Override
1329 public Map<String, PortletFilter> getPortletFilters() {
1330 return _portletFilters;
1331 }
1332
1333
1338 @Override
1339 public PortletInfo getPortletInfo() {
1340 return _portletInfo;
1341 }
1342
1343
1348 @Override
1349 public String getPortletLayoutListenerClass() {
1350 return _portletLayoutListenerClass;
1351 }
1352
1353
1358 @Override
1359 public PortletLayoutListener getPortletLayoutListenerInstance() {
1360 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1361
1362 if (portletBag == null) {
1363 return null;
1364 }
1365
1366 List<PortletLayoutListener> portletLayoutListenerInstances =
1367 portletBag.getPortletLayoutListenerInstances();
1368
1369 if (portletLayoutListenerInstances.isEmpty()) {
1370 return null;
1371 }
1372
1373 return portletLayoutListenerInstances.get(0);
1374 }
1375
1376
1381 @Override
1382 public Map<String, Set<String>> getPortletModes() {
1383 return _portletModes;
1384 }
1385
1386
1391 @Override
1392 public String getPortletName() {
1393 return _portletName;
1394 }
1395
1396
1401 @Override
1402 public String getPortletURLClass() {
1403 return _portletURLClass;
1404 }
1405
1406
1413 @Override
1414 public boolean getPreferencesCompanyWide() {
1415 return _preferencesCompanyWide;
1416 }
1417
1418
1427 @Override
1428 public boolean getPreferencesOwnedByGroup() {
1429 return _preferencesOwnedByGroup;
1430 }
1431
1432
1437 @Override
1438 public boolean getPreferencesUniquePerLayout() {
1439 return _preferencesUniquePerLayout;
1440 }
1441
1442
1447 @Override
1448 public String getPreferencesValidator() {
1449 return _preferencesValidator;
1450 }
1451
1452
1459 @Override
1460 public boolean getPrivateRequestAttributes() {
1461 return _privateRequestAttributes;
1462 }
1463
1464
1471 @Override
1472 public boolean getPrivateSessionAttributes() {
1473 return _privateSessionAttributes;
1474 }
1475
1476
1483 @Override
1484 public QName getProcessingEvent(String uri, String localPart) {
1485 return _processingEventsByQName.get(
1486 PortletQNameUtil.getKey(uri, localPart));
1487 }
1488
1489
1494 @Override
1495 public Set<QName> getProcessingEvents() {
1496 return _processingEvents;
1497 }
1498
1499
1505 @Override
1506 public PublicRenderParameter getPublicRenderParameter(String identifier) {
1507 return _publicRenderParametersByIdentifier.get(identifier);
1508 }
1509
1510
1519 @Override
1520 public PublicRenderParameter getPublicRenderParameter(
1521 String uri, String localPart) {
1522
1523 return _publicRenderParametersByQName.get(
1524 PortletQNameUtil.getKey(uri, localPart));
1525 }
1526
1527
1532 @Override
1533 public Set<PublicRenderParameter> getPublicRenderParameters() {
1534 return _publicRenderParameters;
1535 }
1536
1537
1542 @Override
1543 public Set<QName> getPublishingEvents() {
1544 return _publishingEvents;
1545 }
1546
1547
1552 @Override
1553 public boolean getReady() {
1554 return isReady();
1555 }
1556
1557
1562 @Override
1563 public boolean getRemoteable() {
1564 return _remoteable;
1565 }
1566
1567
1572 @Override
1573 public int getRenderTimeout() {
1574 return _renderTimeout;
1575 }
1576
1577
1582 @Override
1583 public int getRenderWeight() {
1584 return _renderWeight;
1585 }
1586
1587
1592 @Override
1593 public String getResourceBundle() {
1594 return _resourceBundle;
1595 }
1596
1597
1604 @Override
1605 public boolean getRestoreCurrentView() {
1606 return _restoreCurrentView;
1607 }
1608
1609
1614 @Override
1615 public Map<String, String> getRoleMappers() {
1616 return _roleMappers;
1617 }
1618
1619
1624 @Override
1625 public String[] getRolesArray() {
1626 return _rolesArray;
1627 }
1628
1629
1634 @Override
1635 public Portlet getRootPortlet() {
1636 return _rootPortlet;
1637 }
1638
1639
1644 @Override
1645 public String getRootPortletId() {
1646 return PortletConstants.getRootPortletId(getPortletId());
1647 }
1648
1649
1654 @Override
1655 public List<SchedulerEntry> getSchedulerEntries() {
1656 return _schedulerEntries;
1657 }
1658
1659
1664 @Override
1665 public boolean getScopeable() {
1666 return _scopeable;
1667 }
1668
1669
1676 @Override
1677 public boolean getShowPortletAccessDenied() {
1678 return _showPortletAccessDenied;
1679 }
1680
1681
1687 @Override
1688 public boolean getShowPortletInactive() {
1689 return _showPortletInactive;
1690 }
1691
1692
1697 @Override
1698 public boolean getSinglePageApplication() {
1699 return _singlePageApplication;
1700 }
1701
1702
1709 @Override
1710 public List<String> getSocialActivityInterpreterClasses() {
1711 return _socialActivityInterpreterClasses;
1712 }
1713
1714
1719 @Override
1720 public List<SocialActivityInterpreter>
1721 getSocialActivityInterpreterInstances() {
1722
1723 if (_socialActivityInterpreterClasses.isEmpty()) {
1724 return null;
1725 }
1726
1727 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1728
1729 return portletBag.getSocialActivityInterpreterInstances();
1730 }
1731
1732
1737 @Override
1738 public String getSocialRequestInterpreterClass() {
1739 return _socialRequestInterpreterClass;
1740 }
1741
1742
1749 @Override
1750 public SocialRequestInterpreter getSocialRequestInterpreterInstance() {
1751 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1752
1753 List<SocialRequestInterpreter> socialRequestInterpreterInstances =
1754 portletBag.getSocialRequestInterpreterInstances();
1755
1756 if (socialRequestInterpreterInstances.isEmpty()) {
1757 return null;
1758 }
1759
1760 return socialRequestInterpreterInstances.get(0);
1761 }
1762
1763
1770 @Override
1771 public List<String> getStagedModelDataHandlerClasses() {
1772 return _stagedModelDataHandlerClasses;
1773 }
1774
1775
1780 @Override
1781 public List<StagedModelDataHandler<?>>
1782 getStagedModelDataHandlerInstances() {
1783
1784 if (_stagedModelDataHandlerClasses.isEmpty()) {
1785 return null;
1786 }
1787
1788 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1789
1790 return portletBag.getStagedModelDataHandlerInstances();
1791 }
1792
1793
1800 @Override
1801 public boolean getStatic() {
1802 return _staticPortlet;
1803 }
1804
1805
1812 @Override
1813 public boolean getStaticEnd() {
1814 return !_staticPortletStart;
1815 }
1816
1817
1822 @Override
1823 public String getStaticResourcePath() {
1824 String proxyPath = PortalUtil.getPathProxy();
1825
1826 String virtualPath = getVirtualPath();
1827
1828 if (Validator.isNotNull(virtualPath)) {
1829 return proxyPath.concat(virtualPath);
1830 }
1831
1832 String contextPath = getContextPath();
1833
1834 if (!_portletApp.isWARFile()) {
1835 return contextPath;
1836 }
1837
1838 return proxyPath.concat(contextPath);
1839 }
1840
1841
1848 @Override
1849 public boolean getStaticStart() {
1850 return _staticPortletStart;
1851 }
1852
1853
1858 @Override
1859 public String getStrutsPath() {
1860 return _strutsPath;
1861 }
1862
1863
1868 @Override
1869 public Set<String> getSupportedLocales() {
1870 return _supportedLocales;
1871 }
1872
1873
1880 @Override
1881 public boolean getSystem() {
1882 return _system;
1883 }
1884
1885
1890 @Override
1891 public String getTemplateHandlerClass() {
1892 return _templateHandlerClass;
1893 }
1894
1895
1900 @Override
1901 public TemplateHandler getTemplateHandlerInstance() {
1902 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1903
1904 List<TemplateHandler> templateHandlerInstances =
1905 portletBag.getTemplateHandlerInstances();
1906
1907 if (templateHandlerInstances.isEmpty()) {
1908 return null;
1909 }
1910
1911 return templateHandlerInstances.get(0);
1912 }
1913
1914
1919 @Override
1920 public long getTimestamp() {
1921 if (_timestamp == null) {
1922 PortletApp portletApp = getPortletApp();
1923
1924 ServletContext servletContext = portletApp.getServletContext();
1925
1926 _timestamp = ServletContextUtil.getLastModified(
1927 servletContext, StringPool.SLASH, true);
1928 }
1929
1930 return _timestamp;
1931 }
1932
1933
1940 @Override
1941 public List<String> getTrashHandlerClasses() {
1942 return _trashHandlerClasses;
1943 }
1944
1945
1950 @Override
1951 public List<TrashHandler> getTrashHandlerInstances() {
1952 if (_trashHandlerClasses.isEmpty()) {
1953 return null;
1954 }
1955
1956 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
1957
1958 return portletBag.getTrashHandlerInstances();
1959 }
1960
1961
1967 @Override
1968 public boolean getUndeployedPortlet() {
1969 return _undeployedPortlet;
1970 }
1971
1972
1977 @Override
1978 public Set<String> getUnlinkedRoles() {
1979 return _unlinkedRoles;
1980 }
1981
1982
1987 @Override
1988 public String getURLEncoderClass() {
1989 return _urlEncoderClass;
1990 }
1991
1992
1997 @Override
1998 public URLEncoder getURLEncoderInstance() {
1999 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2000
2001 List<URLEncoder> urlEncoderInstances =
2002 portletBag.getURLEncoderInstances();
2003
2004 if (urlEncoderInstances.isEmpty()) {
2005 return null;
2006 }
2007
2008 return urlEncoderInstances.get(0);
2009 }
2010
2011
2016 @Override
2017 public boolean getUseDefaultTemplate() {
2018 return _useDefaultTemplate;
2019 }
2020
2021
2027 @Override
2028 public long getUserId() {
2029 return PortletConstants.getUserId(getPortletId());
2030 }
2031
2032
2039 @Override
2040 public String getUserNotificationDefinitions() {
2041 return _userNotificationDefinitions;
2042 }
2043
2044
2051 @Override
2052 public List<String> getUserNotificationHandlerClasses() {
2053 return _userNotificationHandlerClasses;
2054 }
2055
2056
2061 @Override
2062 public List<UserNotificationHandler>
2063 getUserNotificationHandlerInstances() {
2064
2065 if (_userNotificationHandlerClasses.isEmpty()) {
2066 return null;
2067 }
2068
2069 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2070
2071 return portletBag.getUserNotificationHandlerInstances();
2072 }
2073
2074
2079 @Override
2080 public String getUserPrincipalStrategy() {
2081 return _userPrincipalStrategy;
2082 }
2083
2084
2089 @Override
2090 public String getVirtualPath() {
2091 return _virtualPath;
2092 }
2093
2094
2099 @Override
2100 public String getWebDAVStorageClass() {
2101 return _webDAVStorageClass;
2102 }
2103
2104
2109 @Override
2110 public WebDAVStorage getWebDAVStorageInstance() {
2111 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2112
2113 List<WebDAVStorage> webDAVStorageInstances =
2114 portletBag.getWebDAVStorageInstances();
2115
2116 if (webDAVStorageInstances.isEmpty()) {
2117 return null;
2118 }
2119
2120 return webDAVStorageInstances.get(0);
2121 }
2122
2123
2128 @Override
2129 public String getWebDAVStorageToken() {
2130 return _webDAVStorageToken;
2131 }
2132
2133
2138 @Override
2139 public Map<String, Set<String>> getWindowStates() {
2140 return _windowStates;
2141 }
2142
2143
2150 @Override
2151 public List<String> getWorkflowHandlerClasses() {
2152 return _workflowHandlerClasses;
2153 }
2154
2155
2160 @Override
2161 public List<WorkflowHandler<?>> getWorkflowHandlerInstances() {
2162 if (_workflowHandlerClasses.isEmpty()) {
2163 return null;
2164 }
2165
2166 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2167
2168 return portletBag.getWorkflowHandlerInstances();
2169 }
2170
2171
2176 @Override
2177 public String getXmlRpcMethodClass() {
2178 return _xmlRpcMethodClass;
2179 }
2180
2181
2186 @Override
2187 public Method getXmlRpcMethodInstance() {
2188 PortletBag portletBag = PortletBagPool.get(getRootPortletId());
2189
2190 List<Method> xmlRpcMethodInstances =
2191 portletBag.getXmlRpcMethodInstances();
2192
2193 if (xmlRpcMethodInstances.isEmpty()) {
2194 return null;
2195 }
2196
2197 return xmlRpcMethodInstances.get(0);
2198 }
2199
2200
2208 @Override
2209 public boolean hasAddPortletPermission(long userId) {
2210 PermissionChecker permissionChecker =
2211 PermissionThreadLocal.getPermissionChecker();
2212
2213 try {
2214 if ((permissionChecker == null) ||
2215 (permissionChecker.getUserId() != userId)) {
2216
2217 User user = UserLocalServiceUtil.getUser(userId);
2218
2219 permissionChecker = PermissionCheckerFactoryUtil.create(user);
2220 }
2221
2222 if (PortletPermissionUtil.contains(
2223 permissionChecker, getRootPortletId(),
2224 ActionKeys.ADD_TO_PAGE)) {
2225
2226 return true;
2227 }
2228 }
2229 catch (Exception e) {
2230 _log.error(e, e);
2231 }
2232
2233 return false;
2234 }
2235
2236 @Override
2237 public boolean hasFooterPortalCss() {
2238 return !_footerPortalCss.isEmpty();
2239 }
2240
2241 @Override
2242 public boolean hasFooterPortalJavaScript() {
2243 return !_footerPortalJavaScript.isEmpty();
2244 }
2245
2246 @Override
2247 public boolean hasFooterPortletCss() {
2248 return !_footerPortletCss.isEmpty();
2249 }
2250
2251 @Override
2252 public boolean hasFooterPortletJavaScript() {
2253 return !_footerPortletJavaScript.isEmpty();
2254 }
2255
2256 @Override
2257 public int hashCode() {
2258 String portletId = getPortletId();
2259
2260 return portletId.hashCode();
2261 }
2262
2263 @Override
2264 public boolean hasHeaderPortalCss() {
2265 return !_headerPortalCss.isEmpty();
2266 }
2267
2268 @Override
2269 public boolean hasHeaderPortalJavaScript() {
2270 return !_headerPortalJavaScript.isEmpty();
2271 }
2272
2273 @Override
2274 public boolean hasHeaderPortletCss() {
2275 return !_headerPortletCss.isEmpty();
2276 }
2277
2278 @Override
2279 public boolean hasHeaderPortletJavaScript() {
2280 return !_headerPortletJavaScript.isEmpty();
2281 }
2282
2283
2289 @Override
2290 public boolean hasMultipleMimeTypes() {
2291 if (_portletModes.size() > 1) {
2292 return true;
2293 }
2294 else {
2295 return false;
2296 }
2297 }
2298
2299
2308 @Override
2309 public boolean hasPortletMode(String mimeType, PortletMode portletMode) {
2310 if (mimeType == null) {
2311 mimeType = ContentTypes.TEXT_HTML;
2312 }
2313
2314 Set<String> mimeTypePortletModes = _portletModes.get(mimeType);
2315
2316 if (mimeTypePortletModes == null) {
2317 return false;
2318 }
2319
2320 if (mimeTypePortletModes.contains(portletMode.toString())) {
2321 return true;
2322 }
2323 else {
2324 return false;
2325 }
2326 }
2327
2328
2336 @Override
2337 public boolean hasRoleWithName(String roleName) {
2338 if (ArrayUtil.isEmpty(_rolesArray)) {
2339 return false;
2340 }
2341
2342 for (String curRoleName : _rolesArray) {
2343 if (StringUtil.equalsIgnoreCase(curRoleName, roleName)) {
2344 return true;
2345 }
2346 }
2347
2348 return false;
2349 }
2350
2351
2360 @Override
2361 public boolean hasWindowState(String mimeType, WindowState windowState) {
2362 if (mimeType == null) {
2363 mimeType = ContentTypes.TEXT_HTML;
2364 }
2365
2366 Set<String> mimeTypeWindowStates = _windowStates.get(mimeType);
2367
2368 if (mimeTypeWindowStates == null) {
2369 return false;
2370 }
2371
2372 if (mimeTypeWindowStates.contains(windowState.toString())) {
2373 return true;
2374 }
2375 else {
2376 return false;
2377 }
2378 }
2379
2380
2387 @Override
2388 public boolean isActionURLRedirect() {
2389 return _actionURLRedirect;
2390 }
2391
2392
2399 @Override
2400 public boolean isAddDefaultResource() {
2401 return _addDefaultResource;
2402 }
2403
2404
2409 @Override
2410 public boolean isAjaxable() {
2411 return _ajaxable;
2412 }
2413
2414 @Override
2415 public boolean isFullPageDisplayable() {
2416 return _applicationTypes.contains(
2417 ApplicationType.FULL_PAGE_APPLICATION);
2418 }
2419
2420
2427 @Override
2428 public boolean isInclude() {
2429 return _include;
2430 }
2431
2432
2439 @Override
2440 public boolean isInstanceable() {
2441 return _instanceable;
2442 }
2443
2444
2450 @Override
2451 public boolean isLayoutCacheable() {
2452 return _layoutCacheable;
2453 }
2454
2455
2462 @Override
2463 public boolean isMaximizeEdit() {
2464 return _maximizeEdit;
2465 }
2466
2467
2474 @Override
2475 public boolean isMaximizeHelp() {
2476 return _maximizeHelp;
2477 }
2478
2479
2486 @Override
2487 public boolean isPopUpPrint() {
2488 return _popUpPrint;
2489 }
2490
2491
2498 @Override
2499 public boolean isPreferencesCompanyWide() {
2500 return _preferencesCompanyWide;
2501 }
2502
2503
2512 @Override
2513 public boolean isPreferencesOwnedByGroup() {
2514 return _preferencesOwnedByGroup;
2515 }
2516
2517
2522 @Override
2523 public boolean isPreferencesUniquePerLayout() {
2524 return _preferencesUniquePerLayout;
2525 }
2526
2527
2534 @Override
2535 public boolean isPrivateRequestAttributes() {
2536 return _privateRequestAttributes;
2537 }
2538
2539
2546 @Override
2547 public boolean isPrivateSessionAttributes() {
2548 return _privateSessionAttributes;
2549 }
2550
2551
2556 @Override
2557 public boolean isReady() {
2558 Boolean ready = _readyMap.get(getRootPortletId());
2559
2560 if (ready == null) {
2561 return true;
2562 }
2563 else {
2564 return ready;
2565 }
2566 }
2567
2568
2573 @Override
2574 public boolean isRemoteable() {
2575 return _remoteable;
2576 }
2577
2578
2585 @Override
2586 public boolean isRequiresNamespacedParameters() {
2587 return _requiresNamespacedParameters;
2588 }
2589
2590
2597 @Override
2598 public boolean isRestoreCurrentView() {
2599 return _restoreCurrentView;
2600 }
2601
2602
2607 @Override
2608 public boolean isScopeable() {
2609 return _scopeable;
2610 }
2611
2612
2619 @Override
2620 public boolean isShowPortletAccessDenied() {
2621 return _showPortletAccessDenied;
2622 }
2623
2624
2630 @Override
2631 public boolean isShowPortletInactive() {
2632 return _showPortletInactive;
2633 }
2634
2635
2640 @Override
2641 public boolean isSinglePageApplication() {
2642 return _singlePageApplication;
2643 }
2644
2645
2652 @Override
2653 public boolean isStatic() {
2654 return _staticPortlet;
2655 }
2656
2657
2664 @Override
2665 public boolean isStaticEnd() {
2666 return !_staticPortletStart;
2667 }
2668
2669
2676 @Override
2677 public boolean isStaticStart() {
2678 return _staticPortletStart;
2679 }
2680
2681
2688 @Override
2689 public boolean isSystem() {
2690 return _system;
2691 }
2692
2693
2699 @Override
2700 public boolean isUndeployedPortlet() {
2701 return _undeployedPortlet;
2702 }
2703
2704
2709 @Override
2710 public boolean isUseDefaultTemplate() {
2711 return _useDefaultTemplate;
2712 }
2713
2714
2718 @Override
2719 public void linkRoles() {
2720 List<String> linkedRoles = new ArrayList<>();
2721
2722 for (String unlinkedRole : _unlinkedRoles) {
2723 String roleLink = _roleMappers.get(unlinkedRole);
2724
2725 if (Validator.isNotNull(roleLink)) {
2726 if (_log.isDebugEnabled()) {
2727 _log.debug(
2728 "Linking role for portlet [" + getPortletId() +
2729 "] with role-name [" + unlinkedRole +
2730 "] to role-link [" + roleLink + "]");
2731 }
2732
2733 linkedRoles.add(roleLink);
2734 }
2735 else {
2736 _log.error(
2737 "Unable to link role for portlet [" + getPortletId() +
2738 "] with role-name [" + unlinkedRole +
2739 "] because role-link is null");
2740 }
2741 }
2742
2743 String[] array = linkedRoles.toArray(new String[linkedRoles.size()]);
2744
2745 Arrays.sort(array);
2746
2747 setRolesArray(array);
2748 }
2749
2750
2755 @Override
2756 public void setActionTimeout(int actionTimeout) {
2757 _actionTimeout = actionTimeout;
2758 }
2759
2760
2767 @Override
2768 public void setActionURLRedirect(boolean actionURLRedirect) {
2769 _actionURLRedirect = actionURLRedirect;
2770 }
2771
2772
2779 @Override
2780 public void setAddDefaultResource(boolean addDefaultResource) {
2781 _addDefaultResource = addDefaultResource;
2782 }
2783
2784
2790 @Override
2791 public void setAjaxable(boolean ajaxable) {
2792 _ajaxable = ajaxable;
2793 }
2794
2795
2800 @Override
2801 public void setApplicationTypes(Set<ApplicationType> applicationTypes) {
2802 for (ApplicationType applicationType : applicationTypes) {
2803 addApplicationType(applicationType);
2804 }
2805 }
2806
2807
2814 @Override
2815 public void setAssetRendererFactoryClasses(
2816 List<String> assetRendererFactoryClasses) {
2817
2818 _assetRendererFactoryClasses = assetRendererFactoryClasses;
2819 }
2820
2821
2828 @Override
2829 public void setAtomCollectionAdapterClasses(
2830 List<String> atomCollectionAdapterClasses) {
2831
2832 _atomCollectionAdapterClasses = atomCollectionAdapterClasses;
2833 }
2834
2835
2842 @Override
2843 public void setAutopropagatedParameters(
2844 Set<String> autopropagatedParameters) {
2845
2846 _autopropagatedParameters = autopropagatedParameters;
2847 }
2848
2849
2855 @Override
2856 public void setConfigurationActionClass(String configurationActionClass) {
2857 _configurationActionClass = configurationActionClass;
2858 }
2859
2860
2867 @Override
2868 public void setControlPanelEntryCategory(String controlPanelEntryCategory) {
2869 _controlPanelEntryCategory = controlPanelEntryCategory;
2870 }
2871
2872
2879 @Override
2880 public void setControlPanelEntryClass(String controlPanelEntryClass) {
2881 _controlPanelEntryClass = controlPanelEntryClass;
2882 }
2883
2884
2892 @Override
2893 public void setControlPanelEntryWeight(double controlPanelEntryWeight) {
2894 _controlPanelEntryWeight = controlPanelEntryWeight;
2895 }
2896
2897
2904 @Override
2905 public void setCssClassWrapper(String cssClassWrapper) {
2906 _cssClassWrapper = cssClassWrapper;
2907 }
2908
2909
2916 @Override
2917 public void setCustomAttributesDisplayClasses(
2918 List<String> customAttributesDisplayClasses) {
2919
2920 _customAttributesDisplayClasses = customAttributesDisplayClasses;
2921 }
2922
2923
2928 @Override
2929 public void setDefaultPluginSetting(PluginSetting pluginSetting) {
2930 _defaultPluginSetting = pluginSetting;
2931 }
2932
2933
2938 @Override
2939 public void setDefaultPreferences(String defaultPreferences) {
2940 _defaultPreferences = defaultPreferences;
2941 }
2942
2943
2948 @Override
2949 public void setDisplayName(String displayName) {
2950 _displayName = displayName;
2951 }
2952
2953
2958 @Override
2959 public void setExpCache(Integer expCache) {
2960 _expCache = expCache;
2961 }
2962
2963
2968 @Override
2969 public void setFacebookIntegration(String facebookIntegration) {
2970 if (Validator.isNotNull(facebookIntegration)) {
2971 _facebookIntegration = facebookIntegration;
2972 }
2973 }
2974
2975
2982 @Override
2983 public void setFooterPortalCss(List<String> footerPortalCss) {
2984 _footerPortalCss = footerPortalCss;
2985 }
2986
2987
2995 @Override
2996 public void setFooterPortalJavaScript(List<String> footerPortalJavaScript) {
2997 _footerPortalJavaScript = footerPortalJavaScript;
2998 }
2999
3000
3007 @Override
3008 public void setFooterPortletCss(List<String> footerPortletCss) {
3009 _footerPortletCss = footerPortletCss;
3010 }
3011
3012
3020 @Override
3021 public void setFooterPortletJavaScript(
3022 List<String> footerPortletJavaScript) {
3023
3024 _footerPortletJavaScript = footerPortletJavaScript;
3025 }
3026
3027
3033 @Override
3034 public void setFriendlyURLMapperClass(String friendlyURLMapperClass) {
3035 _friendlyURLMapperClass = friendlyURLMapperClass;
3036 }
3037
3038
3044 @Override
3045 public void setFriendlyURLMapping(String friendlyURLMapping) {
3046 _friendlyURLMapping = friendlyURLMapping;
3047 }
3048
3049
3056 @Override
3057 public void setFriendlyURLRoutes(String friendlyURLRoutes) {
3058 _friendlyURLRoutes = friendlyURLRoutes;
3059 }
3060
3061
3068 @Override
3069 public void setHeaderPortalCss(List<String> headerPortalCss) {
3070 _headerPortalCss = headerPortalCss;
3071 }
3072
3073
3081 @Override
3082 public void setHeaderPortalJavaScript(List<String> headerPortalJavaScript) {
3083 _headerPortalJavaScript = headerPortalJavaScript;
3084 }
3085
3086
3093 @Override
3094 public void setHeaderPortletCss(List<String> headerPortletCss) {
3095 _headerPortletCss = headerPortletCss;
3096 }
3097
3098
3106 @Override
3107 public void setHeaderPortletJavaScript(
3108 List<String> headerPortletJavaScript) {
3109
3110 _headerPortletJavaScript = headerPortletJavaScript;
3111 }
3112
3113
3118 @Override
3119 public void setIcon(String icon) {
3120 _icon = icon;
3121 }
3122
3123
3130 @Override
3131 public void setInclude(boolean include) {
3132 _include = include;
3133 }
3134
3135
3142 @Override
3143 public void setIndexerClasses(List<String> indexerClasses) {
3144 _indexerClasses = indexerClasses;
3145 }
3146
3147
3152 @Override
3153 public void setInitParams(Map<String, String> initParams) {
3154 _initParams = initParams;
3155 }
3156
3157
3164 @Override
3165 public void setInstanceable(boolean instanceable) {
3166 _instanceable = instanceable;
3167 }
3168
3169
3176 @Override
3177 public void setLayoutCacheable(boolean layoutCacheable) {
3178 _layoutCacheable = layoutCacheable;
3179 }
3180
3181
3188 @Override
3189 public void setMaximizeEdit(boolean maximizeEdit) {
3190 _maximizeEdit = maximizeEdit;
3191 }
3192
3193
3200 @Override
3201 public void setMaximizeHelp(boolean maximizeHelp) {
3202 _maximizeHelp = maximizeHelp;
3203 }
3204
3205
3210 @Override
3211 public void setOpenSearchClass(String openSearchClass) {
3212 _openSearchClass = openSearchClass;
3213 }
3214
3215
3220 @Override
3221 public void setParentStrutsPath(String parentStrutsPath) {
3222 _parentStrutsPath = parentStrutsPath;
3223 }
3224
3225
3228 @Override
3229 public void setPermissionPropagatorClass(String permissionPropagatorClass) {
3230 _permissionPropagatorClass = permissionPropagatorClass;
3231 }
3232
3233
3238 @Override
3239 public void setPluginPackage(PluginPackage pluginPackage) {
3240 _pluginPackage = pluginPackage;
3241 }
3242
3243
3249 @Override
3250 public void setPollerProcessorClass(String pollerProcessorClass) {
3251 _pollerProcessorClass = pollerProcessorClass;
3252 }
3253
3254
3260 @Override
3261 public void setPopMessageListenerClass(String popMessageListenerClass) {
3262 _popMessageListenerClass = popMessageListenerClass;
3263 }
3264
3265
3272 @Override
3273 public void setPopUpPrint(boolean popUpPrint) {
3274 _popUpPrint = popUpPrint;
3275 }
3276
3277
3282 @Override
3283 public void setPortletApp(PortletApp portletApp) {
3284 _portletApp = portletApp;
3285
3286 _portletApp.addPortlet(this);
3287 }
3288
3289
3294 @Override
3295 public void setPortletClass(String portletClass) {
3296 _portletClass = portletClass;
3297 }
3298
3299
3305 @Override
3306 public void setPortletDataHandlerClass(String portletDataHandlerClass) {
3307 _portletDataHandlerClass = portletDataHandlerClass;
3308 }
3309
3310
3315 @Override
3316 public void setPortletFilters(Map<String, PortletFilter> portletFilters) {
3317 _portletFilters = portletFilters;
3318 }
3319
3320
3325 @Override
3326 public void setPortletInfo(PortletInfo portletInfo) {
3327 _portletInfo = portletInfo;
3328 }
3329
3330
3336 @Override
3337 public void setPortletLayoutListenerClass(
3338 String portletLayoutListenerClass) {
3339
3340 _portletLayoutListenerClass = portletLayoutListenerClass;
3341 }
3342
3343
3348 @Override
3349 public void setPortletModes(Map<String, Set<String>> portletModes) {
3350 _portletModes = portletModes;
3351 }
3352
3353
3358 @Override
3359 public void setPortletName(String portletName) {
3360 _portletName = portletName;
3361 }
3362
3363
3368 @Override
3369 public void setPortletURLClass(String portletURLClass) {
3370 _portletURLClass = portletURLClass;
3371 }
3372
3373
3380 @Override
3381 public void setPreferencesCompanyWide(boolean preferencesCompanyWide) {
3382 _preferencesCompanyWide = preferencesCompanyWide;
3383 }
3384
3385
3394 @Override
3395 public void setPreferencesOwnedByGroup(boolean preferencesOwnedByGroup) {
3396 _preferencesOwnedByGroup = preferencesOwnedByGroup;
3397 }
3398
3399
3405 @Override
3406 public void setPreferencesUniquePerLayout(
3407 boolean preferencesUniquePerLayout) {
3408
3409 _preferencesUniquePerLayout = preferencesUniquePerLayout;
3410 }
3411
3412
3418 @Override
3419 public void setPreferencesValidator(String preferencesValidator) {
3420 if (preferencesValidator != null) {
3421
3422
3423
3424
3425 _preferencesValidator = preferencesValidator.trim();
3426 }
3427 else {
3428 _preferencesValidator = null;
3429 }
3430 }
3431
3432
3440 @Override
3441 public void setPrivateRequestAttributes(boolean privateRequestAttributes) {
3442 _privateRequestAttributes = privateRequestAttributes;
3443 }
3444
3445
3452 @Override
3453 public void setPrivateSessionAttributes(boolean privateSessionAttributes) {
3454 _privateSessionAttributes = privateSessionAttributes;
3455 }
3456
3457
3462 @Override
3463 public void setProcessingEvents(Set<QName> processingEvents) {
3464 for (QName processingEvent : processingEvents) {
3465 addProcessingEvent(processingEvent);
3466 }
3467 }
3468
3469
3474 @Override
3475 public void setPublicRenderParameters(
3476 Set<PublicRenderParameter> publicRenderParameters) {
3477
3478 for (PublicRenderParameter publicRenderParameter :
3479 publicRenderParameters) {
3480
3481 addPublicRenderParameter(publicRenderParameter);
3482 }
3483 }
3484
3485
3490 @Override
3491 public void setPublishingEvents(Set<QName> publishingEvents) {
3492 for (QName publishingEvent : publishingEvents) {
3493 addPublishingEvent(publishingEvent);
3494 }
3495 }
3496
3497
3502 @Override
3503 public void setReady(boolean ready) {
3504 _readyMap.put(getRootPortletId(), ready);
3505
3506 Registry registry = RegistryUtil.getRegistry();
3507
3508 synchronized (_serviceRegistrars) {
3509 if (ready) {
3510 ServiceRegistrar<Portlet> serviceRegistrar =
3511 registry.getServiceRegistrar(Portlet.class);
3512
3513 Map<String, Object> properties = new HashMap<>();
3514
3515 properties.put("javax.portlet.name", getPortletName());
3516
3517 serviceRegistrar.registerService(
3518 Portlet.class, this, properties);
3519
3520 _serviceRegistrars.put(getRootPortletId(), serviceRegistrar);
3521 }
3522 else {
3523 ServiceRegistrar<Portlet> serviceRegistrar =
3524 _serviceRegistrars.remove(getRootPortletId());
3525
3526 serviceRegistrar.destroy();
3527 }
3528 }
3529 }
3530
3531
3537 @Override
3538 public void setRemoteable(boolean remoteable) {
3539 _remoteable = remoteable;
3540 }
3541
3542
3547 @Override
3548 public void setRenderTimeout(int renderTimeout) {
3549 _renderTimeout = renderTimeout;
3550 }
3551
3552
3557 @Override
3558 public void setRenderWeight(int renderWeight) {
3559 _renderWeight = renderWeight;
3560 }
3561
3562
3569 @Override
3570 public void setRequiresNamespacedParameters(
3571 boolean requiresNamespacedParameters) {
3572
3573 _requiresNamespacedParameters = requiresNamespacedParameters;
3574 }
3575
3576
3581 @Override
3582 public void setResourceBundle(String resourceBundle) {
3583 _resourceBundle = resourceBundle;
3584 }
3585
3586
3593 @Override
3594 public void setRestoreCurrentView(boolean restoreCurrentView) {
3595 _restoreCurrentView = restoreCurrentView;
3596 }
3597
3598
3603 @Override
3604 public void setRoleMappers(Map<String, String> roleMappers) {
3605 _roleMappers = roleMappers;
3606 }
3607
3608
3613 @Override
3614 public void setRoles(String roles) {
3615 _rolesArray = StringUtil.split(roles);
3616
3617 super.setRoles(roles);
3618 }
3619
3620
3625 @Override
3626 public void setRolesArray(String[] rolesArray) {
3627 _rolesArray = rolesArray;
3628
3629 super.setRoles(StringUtil.merge(rolesArray));
3630 }
3631
3632
3637 @Override
3638 public void setSchedulerEntries(List<SchedulerEntry> schedulerEntries) {
3639 for (SchedulerEntry schedulerEntry : schedulerEntries) {
3640 addSchedulerEntry(schedulerEntry);
3641 }
3642 }
3643
3644
3650 @Override
3651 public void setScopeable(boolean scopeable) {
3652 _scopeable = scopeable;
3653 }
3654
3655
3662 @Override
3663 public void setShowPortletAccessDenied(boolean showPortletAccessDenied) {
3664 _showPortletAccessDenied = showPortletAccessDenied;
3665 }
3666
3667
3673 @Override
3674 public void setShowPortletInactive(boolean showPortletInactive) {
3675 _showPortletInactive = showPortletInactive;
3676 }
3677
3678
3684 @Override
3685 public void setSinglePageApplication(boolean singlePageApplication) {
3686 _singlePageApplication = singlePageApplication;
3687 }
3688
3689
3696 @Override
3697 public void setSocialActivityInterpreterClasses(
3698 List<String> socialActivityInterpreterClasses) {
3699
3700 _socialActivityInterpreterClasses = socialActivityInterpreterClasses;
3701 }
3702
3703
3709 @Override
3710 public void setSocialRequestInterpreterClass(
3711 String socialRequestInterpreterClass) {
3712
3713 _socialRequestInterpreterClass = socialRequestInterpreterClass;
3714 }
3715
3716
3721
3722
3729 @Override
3730 public void setStagedModelDataHandlerClasses(
3731 List<String> stagedModelDataHandlerClasses) {
3732
3733 _stagedModelDataHandlerClasses = stagedModelDataHandlerClasses;
3734 }
3735
3736
3743 @Override
3744 public void setStatic(boolean staticPortlet) {
3745 _staticPortlet = staticPortlet;
3746 }
3747
3748
3755 @Override
3756 public void setStaticStart(boolean staticPortletStart) {
3757 _staticPortletStart = staticPortletStart;
3758 }
3759
3760
3765 @Override
3766 public void setStrutsPath(String strutsPath) {
3767 _strutsPath = strutsPath;
3768 }
3769
3770
3775 @Override
3776 public void setSupportedLocales(Set<String> supportedLocales) {
3777 _supportedLocales = supportedLocales;
3778 }
3779
3780
3787 @Override
3788 public void setSystem(boolean system) {
3789 _system = system;
3790 }
3791
3792
3798 @Override
3799 public void setTemplateHandlerClass(String templateHandlerClass) {
3800 _templateHandlerClass = templateHandlerClass;
3801 }
3802
3803
3810 @Override
3811 public void setTrashHandlerClasses(List<String> trashHandlerClasses) {
3812 _trashHandlerClasses = trashHandlerClasses;
3813 }
3814
3815
3821 @Override
3822 public void setUndeployedPortlet(boolean undeployedPortlet) {
3823 _undeployedPortlet = undeployedPortlet;
3824 }
3825
3826
3831 @Override
3832 public void setUnlinkedRoles(Set<String> unlinkedRoles) {
3833 _unlinkedRoles = unlinkedRoles;
3834 }
3835
3836
3841 @Override
3842 public void setURLEncoderClass(String urlEncoderClass) {
3843 _urlEncoderClass = urlEncoderClass;
3844 }
3845
3846
3852 @Override
3853 public void setUseDefaultTemplate(boolean useDefaultTemplate) {
3854 _useDefaultTemplate = useDefaultTemplate;
3855 }
3856
3857
3864 @Override
3865 public void setUserNotificationDefinitions(
3866 String userNotificationDefinitions) {
3867
3868 _userNotificationDefinitions = userNotificationDefinitions;
3869 }
3870
3871
3878 @Override
3879 public void setUserNotificationHandlerClasses(
3880 List<String> userNotificationHandlerClasses) {
3881
3882 _userNotificationHandlerClasses = userNotificationHandlerClasses;
3883 }
3884
3885
3890 @Override
3891 public void setUserPrincipalStrategy(String userPrincipalStrategy) {
3892 if (Validator.isNotNull(userPrincipalStrategy)) {
3893 _userPrincipalStrategy = userPrincipalStrategy;
3894 }
3895 }
3896
3897
3902 @Override
3903 public void setVirtualPath(String virtualPath) {
3904 if (_portletApp.isWARFile() && Validator.isNull(virtualPath)) {
3905 virtualPath = PropsValues.PORTLET_VIRTUAL_PATH;
3906 }
3907
3908 _virtualPath = virtualPath;
3909 }
3910
3911
3917 @Override
3918 public void setWebDAVStorageClass(String webDAVStorageClass) {
3919 _webDAVStorageClass = webDAVStorageClass;
3920 }
3921
3922
3928 @Override
3929 public void setWebDAVStorageToken(String webDAVStorageToken) {
3930 _webDAVStorageToken = webDAVStorageToken;
3931 }
3932
3933
3938 @Override
3939 public void setWindowStates(Map<String, Set<String>> windowStates) {
3940 _windowStates = windowStates;
3941 }
3942
3943
3950 @Override
3951 public void setWorkflowHandlerClasses(List<String> workflowHandlerClasses) {
3952 _workflowHandlerClasses = workflowHandlerClasses;
3953 }
3954
3955
3961 @Override
3962 public void setXmlRpcMethodClass(String xmlRpcMethodClass) {
3963 _xmlRpcMethodClass = xmlRpcMethodClass;
3964 }
3965
3966 @Override
3967 public void unsetReady() {
3968 _readyMap.remove(getRootPortletId());
3969
3970 synchronized (_serviceRegistrars) {
3971 ServiceRegistrar<Portlet> serviceRegistrar =
3972 _serviceRegistrars.remove(getRootPortletId());
3973
3974 serviceRegistrar.destroy();
3975 }
3976 }
3977
3978
3981 private static final Log _log = LogFactoryUtil.getLog(PortletImpl.class);
3982
3983
3986 private static final Map<String, Boolean> _readyMap =
3987 new ConcurrentHashMap<>();
3988
3989 private static final Map<String, ServiceRegistrar<Portlet>>
3990 _serviceRegistrars = new HashMap<>();
3991
3992
3995 private int _actionTimeout;
3996
3997
4001 private boolean _actionURLRedirect;
4002
4003
4007 private boolean _addDefaultResource;
4008
4009
4012 private boolean _ajaxable = true;
4013
4014
4017 private final Set<ApplicationType> _applicationTypes = new HashSet<>();
4018
4019
4023 private List<String> _assetRendererFactoryClasses;
4024
4025
4029 private List<String> _atomCollectionAdapterClasses;
4030
4031
4035 private Set<String> _autopropagatedParameters;
4036
4037
4040 private String _configurationActionClass;
4041
4042
4046 private String _controlPanelEntryCategory = StringPool.BLANK;
4047
4048
4052 private String _controlPanelEntryClass;
4053
4054
4058 private double _controlPanelEntryWeight = 100;
4059
4060
4064 private String _cssClassWrapper = StringPool.BLANK;
4065
4066
4070 private List<String> _customAttributesDisplayClasses;
4071
4072
4075 private PluginSetting _defaultPluginSetting;
4076
4077
4080 private String _defaultPreferences;
4081
4082
4085 private String _displayName;
4086
4087
4090 private Integer _expCache;
4091
4092
4095 private String _facebookIntegration =
4096 PortletConstants.FACEBOOK_INTEGRATION_IFRAME;
4097
4098
4102 private List<String> _footerPortalCss;
4103
4104
4108 private List<String> _footerPortalJavaScript;
4109
4110
4114 private List<String> _footerPortletCss;
4115
4116
4120 private List<String> _footerPortletJavaScript;
4121
4122
4125 private String _friendlyURLMapperClass;
4126
4127
4130 private String _friendlyURLMapping;
4131
4132
4136 private String _friendlyURLRoutes;
4137
4138
4142 private List<String> _headerPortalCss;
4143
4144
4148 private List<String> _headerPortalJavaScript;
4149
4150
4154 private List<String> _headerPortletCss;
4155
4156
4160 private List<String> _headerPortletJavaScript;
4161
4162
4165 private String _icon;
4166
4167
4171 private boolean _include = true;
4172
4173
4177 private List<String> _indexerClasses;
4178
4179
4182 private Map<String, String> _initParams;
4183
4184
4187 private boolean _instanceable;
4188
4189
4192 private boolean _layoutCacheable;
4193
4194
4198 private boolean _maximizeEdit;
4199
4200
4204 private boolean _maximizeHelp;
4205
4206
4209 private String _openSearchClass;
4210
4211
4214 private String _parentStrutsPath;
4215
4216
4219 private String _permissionPropagatorClass;
4220
4221
4224 private PluginPackage _pluginPackage;
4225
4226
4229 private String _pollerProcessorClass;
4230
4231
4234 private String _popMessageListenerClass;
4235
4236
4240 private boolean _popUpPrint = true;
4241
4242
4245 private PortletApp _portletApp;
4246
4247
4250 private String _portletClass;
4251
4252
4255 private String _portletDataHandlerClass;
4256
4257
4260 private Map<String, PortletFilter> _portletFilters;
4261
4262
4265 private PortletInfo _portletInfo;
4266
4267
4270 private String _portletLayoutListenerClass;
4271
4272
4275 private Map<String, Set<String>> _portletModes;
4276
4277
4280 private String _portletName;
4281
4282
4285 private String _portletURLClass;
4286
4287
4290 private boolean _preferencesCompanyWide;
4291
4292
4297 private boolean _preferencesOwnedByGroup = true;
4298
4299
4302 private boolean _preferencesUniquePerLayout = true;
4303
4304
4307 private String _preferencesValidator;
4308
4309
4313 private boolean _privateRequestAttributes = true;
4314
4315
4319 private boolean _privateSessionAttributes = true;
4320
4321
4324 private final Set<QName> _processingEvents = new HashSet<>();
4325
4326
4329 private final Map<String, QName> _processingEventsByQName = new HashMap<>();
4330
4331
4334 private final Set<PublicRenderParameter> _publicRenderParameters =
4335 new HashSet<>();
4336
4337
4341 private final Map<String, PublicRenderParameter>
4342 _publicRenderParametersByIdentifier = new HashMap<>();
4343
4344
4347 private final Map<String, PublicRenderParameter>
4348 _publicRenderParametersByQName = new HashMap<>();
4349
4350
4353 private final Set<QName> _publishingEvents = new HashSet<>();
4354
4355
4358 private boolean _remoteable;
4359
4360
4363 private int _renderTimeout;
4364
4365
4368 private int _renderWeight = 1;
4369
4370
4373 private boolean _requiresNamespacedParameters = true;
4374
4375
4378 private String _resourceBundle;
4379
4380
4384 private boolean _restoreCurrentView = true;
4385
4386
4389 private Map<String, String> _roleMappers;
4390
4391
4394 private String[] _rolesArray = new String[0];
4395
4396
4399 private final Portlet _rootPortlet;
4400
4401
4404 private final List<SchedulerEntry> _schedulerEntries;
4405
4406
4409 private boolean _scopeable;
4410
4411
4415 private boolean _showPortletAccessDenied =
4416 PropsValues.LAYOUT_SHOW_PORTLET_ACCESS_DENIED;
4417
4418
4421 private boolean _showPortletInactive =
4422 PropsValues.LAYOUT_SHOW_PORTLET_INACTIVE;
4423
4424
4427 private boolean _singlePageApplication = true;
4428
4429
4433 private List<String> _socialActivityInterpreterClasses;
4434
4435
4438 private String _socialRequestInterpreterClass;
4439
4440
4444 private List<String> _stagedModelDataHandlerClasses;
4445
4446
4450 private boolean _staticPortlet;
4451
4452
4456 private boolean _staticPortletStart;
4457
4458
4461 private String _strutsPath;
4462
4463
4466 private Set<String> _supportedLocales;
4467
4468
4472 private boolean _system;
4473
4474
4477 private String _templateHandlerClass;
4478
4479
4482 private Long _timestamp;
4483
4484
4488 private List<String> _trashHandlerClasses;
4489
4490
4493 private boolean _undeployedPortlet;
4494
4495
4498 private Set<String> _unlinkedRoles;
4499
4500
4503 private String _urlEncoderClass;
4504
4505
4508 private boolean _useDefaultTemplate = true;
4509
4510
4514 private String _userNotificationDefinitions;
4515
4516
4520 private List<String> _userNotificationHandlerClasses;
4521
4522
4525 private String _userPrincipalStrategy =
4526 PortletConstants.USER_PRINCIPAL_STRATEGY_USER_ID;
4527
4528
4531 private String _virtualPath;
4532
4533
4536 private String _webDAVStorageClass;
4537
4538
4541 private String _webDAVStorageToken;
4542
4543
4546 private Map<String, Set<String>> _windowStates;
4547
4548
4552 private List<String> _workflowHandlerClasses;
4553
4554
4557 private String _xmlRpcMethodClass;
4558
4559 }