/** * 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.exportimport.kernel.configuration; import aQute.bnd.annotation.ProviderType; import com.liferay.exportimport.kernel.lar.ExportImportDateUtil; import com.liferay.exportimport.kernel.lar.PortletDataHandlerKeys; import com.liferay.exportimport.kernel.lar.UserIdStrategy; import com.liferay.portal.kernel.util.Validator; import java.util.LinkedHashMap; import java.util.Map; import javax.portlet.PortletRequest; /** * @author Akos Thurzo */ @ProviderType public class ExportImportConfigurationParameterMapFactory { public static Map<String, String[]> buildParameterMap() { return buildParameterMap( PortletDataHandlerKeys.DATA_STRATEGY_MIRROR_OVERWRITE, true, false, false, false, false, false, true, true, true, true, true, true, ExportImportDateUtil.RANGE_FROM_LAST_PUBLISH_DATE, true, true, UserIdStrategy.CURRENT_USER_ID); } public static Map<String, String[]> buildParameterMap( PortletRequest portletRequest) { Map<String, String[]> parameterMap = new LinkedHashMap<>( portletRequest.getParameterMap()); if (!parameterMap.containsKey(PortletDataHandlerKeys.DATA_STRATEGY)) { parameterMap.put( PortletDataHandlerKeys.DATA_STRATEGY, new String[] { PortletDataHandlerKeys.DATA_STRATEGY_MIRROR_OVERWRITE }); } /*if (!parameterMap.containsKey( PortletDataHandlerKeys.DELETE_MISSING_LAYOUTS)) { parameterMap.put( PortletDataHandlerKeys.DELETE_MISSING_LAYOUTS, new String[] {Boolean.TRUE.toString()}); }*/ if (!parameterMap.containsKey( PortletDataHandlerKeys.DELETE_PORTLET_DATA)) { parameterMap.put( PortletDataHandlerKeys.DELETE_PORTLET_DATA, new String[] {Boolean.FALSE.toString()}); } if (!parameterMap.containsKey( PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_LINK_ENABLED)) { parameterMap.put( PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_LINK_ENABLED, new String[] {Boolean.FALSE.toString()}); } if (!parameterMap.containsKey( PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_SETTINGS)) { parameterMap.put( PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_SETTINGS, new String[] {Boolean.FALSE.toString()}); } if (!parameterMap.containsKey( PortletDataHandlerKeys.LAYOUT_SET_SETTINGS)) { parameterMap.put( PortletDataHandlerKeys.LAYOUT_SET_SETTINGS, new String[] {Boolean.FALSE.toString()}); } if (!parameterMap.containsKey(PortletDataHandlerKeys.LOGO)) { parameterMap.put( PortletDataHandlerKeys.LOGO, new String[] {Boolean.FALSE.toString()}); } if (!parameterMap.containsKey( PortletDataHandlerKeys.PORTLET_CONFIGURATION)) { parameterMap.put( PortletDataHandlerKeys.PORTLET_CONFIGURATION, new String[] {Boolean.TRUE.toString()}); } if (!parameterMap.containsKey(PortletDataHandlerKeys.PORTLET_DATA)) { parameterMap.put( PortletDataHandlerKeys.PORTLET_DATA, new String[] {Boolean.FALSE.toString()}); } if (!parameterMap.containsKey( PortletDataHandlerKeys.PORTLET_DATA_ALL)) { parameterMap.put( PortletDataHandlerKeys.PORTLET_DATA_ALL, new String[] {Boolean.FALSE.toString()}); } if (!parameterMap.containsKey(PortletDataHandlerKeys.THEME_REFERENCE)) { parameterMap.put( PortletDataHandlerKeys.THEME_REFERENCE, new String[] {Boolean.FALSE.toString()}); } if (!parameterMap.containsKey( PortletDataHandlerKeys.UPDATE_LAST_PUBLISH_DATE)) { parameterMap.put( PortletDataHandlerKeys.UPDATE_LAST_PUBLISH_DATE, new String[] {Boolean.TRUE.toString()}); } if (!parameterMap.containsKey( PortletDataHandlerKeys.USER_ID_STRATEGY)) { parameterMap.put( PortletDataHandlerKeys.USER_ID_STRATEGY, new String[] {UserIdStrategy.CURRENT_USER_ID}); } return parameterMap; } public static Map<String, String[]> buildParameterMap( String dataStrategy, Boolean deleteMissingLayouts, Boolean deletePortletData, Boolean ignoreLastPublishDate, Boolean layoutSetPrototypeLinkEnabled, Boolean layoutSetSettings, Boolean logo, Boolean permissions, Boolean portletConfiguration, Boolean portletConfigurationAll, Boolean portletData, Boolean portletDataAll, Boolean portletSetupAll, String range, Boolean themeReference, Boolean updateLastPublishDate, String userIdStrategy) { Map<String, String[]> parameterMap = new LinkedHashMap<>(); // Data strategy String dataStrategyParameter = PortletDataHandlerKeys.DATA_STRATEGY_MIRROR_OVERWRITE; if (Validator.isNotNull(dataStrategy)) { parameterMap.put( PortletDataHandlerKeys.DATA_STRATEGY, new String[] {dataStrategyParameter}); } // Delete missing layouts boolean deleteMissingLayoutsParameter = true; if (deleteMissingLayouts != null) { deleteMissingLayoutsParameter = deleteMissingLayouts.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.DELETE_MISSING_LAYOUTS, new String[] {String.valueOf(deleteMissingLayoutsParameter)}); // Delete portlet data boolean deletePortletDataParameter = false; if (deletePortletData != null) { deletePortletDataParameter = deletePortletData.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.DELETE_PORTLET_DATA, new String[] {String.valueOf(deletePortletDataParameter)}); // Ignore last publish date boolean ignoreLastPublishDateParameter = true; if (ignoreLastPublishDate != null) { ignoreLastPublishDateParameter = ignoreLastPublishDate.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.IGNORE_LAST_PUBLISH_DATE, new String[] {String.valueOf(ignoreLastPublishDateParameter)}); // Layout set prototype link enabled boolean layoutSetPrototypeLinkEnabledParameter = false; if (layoutSetPrototypeLinkEnabled != null) { layoutSetPrototypeLinkEnabledParameter = layoutSetPrototypeLinkEnabled.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_LINK_ENABLED, new String[] { String.valueOf(layoutSetPrototypeLinkEnabledParameter) }); // Layout set prototype settings boolean layoutSetPrototypeSettingsParameter = false; if (layoutSetPrototypeLinkEnabled != null) { layoutSetPrototypeSettingsParameter = layoutSetPrototypeLinkEnabled.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_SETTINGS, new String[] {String.valueOf(layoutSetPrototypeSettingsParameter)}); // Layout set settings boolean layoutSetSettingsParameter = false; if (layoutSetSettings != null) { layoutSetSettingsParameter = layoutSetSettings.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.LAYOUT_SET_SETTINGS, new String[] {String.valueOf(layoutSetSettingsParameter)}); // Logo boolean logoParameter = false; if (logo != null) { logoParameter = logo.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.LOGO, new String[] {String.valueOf(logoParameter)}); // Permissions boolean permissionsParameter = true; if (permissions != null) { permissionsParameter = permissions.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.PERMISSIONS, new String[] {String.valueOf(permissionsParameter)}); // Portlet configuration boolean portletConfigurationParameter = true; if (portletConfiguration != null) { portletConfigurationParameter = portletConfiguration.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.PORTLET_CONFIGURATION, new String[] {String.valueOf(portletConfigurationParameter)}); // Portlet configuration all boolean portletConfigurationAllParameter = true; if (portletConfigurationAll != null) { portletConfigurationAllParameter = portletConfigurationAll.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.PORTLET_CONFIGURATION_ALL, new String[] {String.valueOf(portletConfigurationAllParameter)}); // Portlet data boolean portletDataParameter = false; if (portletData != null) { portletDataParameter = portletData.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.PORTLET_DATA, new String[] {String.valueOf(portletDataParameter)}); // Portlet data all boolean portletDataAllParameter = false; if (portletDataAll != null) { portletDataAllParameter = portletDataAll.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.PORTLET_DATA_ALL, new String[] {String.valueOf(portletDataAllParameter)}); // Portlet setup all boolean portletSetupAllParameter = true; if (portletSetupAll != null) { portletSetupAllParameter = portletSetupAll.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.PORTLET_SETUP_ALL, new String[] {String.valueOf(portletSetupAllParameter)}); // Range String rangeParameter = ExportImportDateUtil.RANGE_FROM_LAST_PUBLISH_DATE; if (Validator.isNotNull(range)) { rangeParameter = range; } parameterMap.put( ExportImportDateUtil.RANGE, new String[] {rangeParameter}); // Theme reference boolean themeReferenceParameter = false; if (themeReference != null) { themeReferenceParameter = themeReference.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.THEME_REFERENCE, new String[] {String.valueOf(themeReferenceParameter)}); // Update last publish date boolean updateLastPublishDateParameter = true; if (updateLastPublishDate != null) { updateLastPublishDateParameter = updateLastPublishDate.booleanValue(); } parameterMap.put( PortletDataHandlerKeys.UPDATE_LAST_PUBLISH_DATE, new String[] {String.valueOf(updateLastPublishDateParameter)}); // User id strategy String userIdStrategyParameter = UserIdStrategy.CURRENT_USER_ID; if (Validator.isNotNull(userIdStrategy)) { userIdStrategyParameter = userIdStrategy; } parameterMap.put( PortletDataHandlerKeys.USER_ID_STRATEGY, new String[] {userIdStrategyParameter}); return parameterMap; } }