/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.wiki.web.internal.display.context.logic; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.theme.ThemeDisplay; import com.liferay.portal.kernel.util.ArrayUtil; import com.liferay.wiki.model.WikiNode; import com.liferay.wiki.service.WikiNodeServiceUtil; import com.liferay.wiki.util.WikiUtil; import com.liferay.wiki.web.configuration.WikiPortletInstanceOverriddenConfiguration; import com.liferay.wiki.web.internal.display.context.util.WikiRequestHelper; import java.util.List; /** * @author Iván Zaera */ public class WikiPortletInstanceSettingsHelper { public WikiPortletInstanceSettingsHelper( WikiRequestHelper wikiRequestHelper) { _wikiRequestHelper = wikiRequestHelper; } public List<String> getAllNodeNames() throws PortalException { if (_allNodeNames == null) { _populateNodes(); } return _allNodeNames; } public List<WikiNode> getAllNodes() throws PortalException { if (_allNodes == null) { _populateNodes(); } return _allNodes; } public List<WikiNode> getAllPermittedNodes() throws PortalException { if (_allPermittedNodes == null) { WikiPortletInstanceOverriddenConfiguration wikiPortletInstanceOverriddenConfiguration = _wikiRequestHelper. getWikiPortletInstanceOverridenConfiguration(); _allPermittedNodes = WikiUtil.getNodes( getAllNodes(), wikiPortletInstanceOverriddenConfiguration.hiddenNodes(), _wikiRequestHelper.getPermissionChecker()); } return _allPermittedNodes; } public String getDisplayStyle() { if (_displayStyle != null) { return _displayStyle; } WikiPortletInstanceOverriddenConfiguration wikiPortletInstanceOverriddenConfiguration = _wikiRequestHelper. getWikiPortletInstanceOverridenConfiguration(); _displayStyle = wikiPortletInstanceOverriddenConfiguration.displayStyle(); return _displayStyle; } public long getDisplayStyleGroupId() { if (_displayStyleGroupId != 0) { return _displayStyleGroupId; } WikiPortletInstanceOverriddenConfiguration wikiPortletInstanceOverriddenConfiguration = _wikiRequestHelper. getWikiPortletInstanceOverridenConfiguration(); _displayStyleGroupId = wikiPortletInstanceOverriddenConfiguration.displayStyleGroupId(); if (_displayStyleGroupId <= 0) { ThemeDisplay themeDisplay = _wikiRequestHelper.getThemeDisplay(); _displayStyleGroupId = themeDisplay.getScopeGroupId(); } return _displayStyleGroupId; } public String[] getHiddenNodes() { if (_hiddenNodes != null) { return _hiddenNodes; } WikiPortletInstanceOverriddenConfiguration wikiPortletInstanceOverriddenConfiguration = _wikiRequestHelper. getWikiPortletInstanceOverridenConfiguration(); _hiddenNodes = wikiPortletInstanceOverriddenConfiguration.hiddenNodes(); return _hiddenNodes; } public String[] getVisibleNodeNames() throws PortalException { if (_visibleNodeNames == null) { _populateNodes(); } return _visibleNodeNames; } public Boolean isEnableCommentRatings() { if (_enableCommentRatings != null) { return _enableCommentRatings; } WikiPortletInstanceOverriddenConfiguration wikiPortletInstanceOverriddenConfiguration = _wikiRequestHelper. getWikiPortletInstanceOverridenConfiguration(); _enableCommentRatings = wikiPortletInstanceOverriddenConfiguration.enableCommentRatings(); return _enableCommentRatings; } public Boolean isEnableComments() { if (_enableComments != null) { return _enableComments; } WikiPortletInstanceOverriddenConfiguration wikiPortletInstanceOverriddenConfiguration = _wikiRequestHelper. getWikiPortletInstanceOverridenConfiguration(); _enableComments = wikiPortletInstanceOverriddenConfiguration.enableComments(); return _enableComments; } public Boolean isEnablePageRatings() { if (_enablePageRatings != null) { return _enablePageRatings; } WikiPortletInstanceOverriddenConfiguration wikiPortletInstanceOverriddenConfiguration = _wikiRequestHelper. getWikiPortletInstanceOverridenConfiguration(); _enablePageRatings = wikiPortletInstanceOverriddenConfiguration.enablePageRatings(); return _enablePageRatings; } public boolean isEnableRelatedAssets() { if (_enableRelatedAssets != null) { return _enableRelatedAssets; } WikiPortletInstanceOverriddenConfiguration wikiPortletInstanceOverriddenConfiguration = _wikiRequestHelper. getWikiPortletInstanceOverridenConfiguration(); _enableRelatedAssets = wikiPortletInstanceOverriddenConfiguration.enableRelatedAssets(); return _enableRelatedAssets; } private void _populateNodes() throws PortalException { _allNodes = WikiNodeServiceUtil.getNodes( _wikiRequestHelper.getScopeGroupId()); _allNodeNames = WikiUtil.getNodeNames(_allNodes); WikiPortletInstanceOverriddenConfiguration wikiPortletInstanceOverriddenConfiguration = _wikiRequestHelper. getWikiPortletInstanceOverridenConfiguration(); _visibleNodeNames = wikiPortletInstanceOverriddenConfiguration.visibleNodes(); if (ArrayUtil.isNotEmpty(_visibleNodeNames)) { _allNodes = WikiUtil.orderNodes(_allNodes, _visibleNodeNames); } else { _visibleNodeNames = _allNodeNames.toArray( new String[_allNodeNames.size()]); } } private List<String> _allNodeNames; private List<WikiNode> _allNodes; private List<WikiNode> _allPermittedNodes; private String _displayStyle; private long _displayStyleGroupId; private Boolean _enableCommentRatings; private Boolean _enableComments; private Boolean _enablePageRatings; private Boolean _enableRelatedAssets; private String[] _hiddenNodes; private String[] _visibleNodeNames; private final WikiRequestHelper _wikiRequestHelper; }