/**
* 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.ExportImportHelperUtil;
import com.liferay.exportimport.kernel.lar.PortletDataHandlerKeys;
import com.liferay.exportimport.kernel.model.ExportImportConfiguration;
import com.liferay.exportimport.kernel.service.ExportImportConfigurationLocalServiceUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.model.User;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.WebKeys;
import java.io.Serializable;
import java.util.Map;
import javax.portlet.PortletRequest;
/**
* @author Levente Hudák
*/
@ProviderType
public class ExportImportConfigurationFactory {
public static ExportImportConfiguration
buildDefaultLocalPublishingExportImportConfiguration(
PortletRequest portletRequest)
throws PortalException {
ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
WebKeys.THEME_DISPLAY);
long sourceGroupId = ParamUtil.getLong(portletRequest, "sourceGroupId");
long targetGroupId = ParamUtil.getLong(portletRequest, "targetGroupId");
boolean privateLayout = ParamUtil.getBoolean(
portletRequest, "privateLayout");
Map<String, String[]> parameterMap = getDefaultPublishingParameters(
portletRequest);
return buildDefaultLocalPublishingExportImportConfiguration(
themeDisplay.getUser(), sourceGroupId, targetGroupId, privateLayout,
parameterMap);
}
public static ExportImportConfiguration
buildDefaultLocalPublishingExportImportConfiguration(
User user, long sourceGroupId, long targetGroupId,
boolean privateLayout)
throws PortalException {
return buildDefaultLocalPublishingExportImportConfiguration(
user, sourceGroupId, targetGroupId, privateLayout,
getDefaultPublishingParameters());
}
public static ExportImportConfiguration
buildDefaultLocalPublishingExportImportConfiguration(
User user, long sourceGroupId, long targetGroupId,
boolean privateLayout, Map<String, String[]> parameterMap)
throws PortalException {
Map<String, Serializable> publishLayoutLocalSettingsMap =
ExportImportConfigurationSettingsMapFactory.
buildPublishLayoutLocalSettingsMap(
user, sourceGroupId, targetGroupId, privateLayout,
ExportImportHelperUtil.getAllLayoutIds(
sourceGroupId, privateLayout),
parameterMap);
return ExportImportConfigurationLocalServiceUtil.
addDraftExportImportConfiguration(
user.getUserId(),
ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_LOCAL,
publishLayoutLocalSettingsMap);
}
public static ExportImportConfiguration
buildDefaultRemotePublishingExportImportConfiguration(
PortletRequest portletRequest)
throws PortalException {
ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
WebKeys.THEME_DISPLAY);
long sourceGroupId = ParamUtil.getLong(portletRequest, "sourceGroupId");
boolean privateLayout = ParamUtil.getBoolean(
portletRequest, "privateLayout");
String remoteAddress = ParamUtil.getString(
portletRequest, "remoteAddress");
int remotePort = ParamUtil.getInteger(portletRequest, "remotePort");
String remotePathContext = ParamUtil.getString(
portletRequest, "remotePathContext");
boolean secureConnection = ParamUtil.getBoolean(
portletRequest, "secureConnection");
long remoteGroupId = ParamUtil.getLong(portletRequest, "remoteGroupId");
Map<String, String[]> parameterMap = getDefaultPublishingParameters(
portletRequest);
return buildDefaultRemotePublishingExportImportConfiguration(
themeDisplay.getUser(), sourceGroupId, privateLayout, remoteAddress,
remotePort, remotePathContext, secureConnection, remoteGroupId,
parameterMap);
}
public static ExportImportConfiguration
buildDefaultRemotePublishingExportImportConfiguration(
User user, long sourceGroupId, boolean privateLayout,
String remoteAddress, int remotePort, String remotePathContext,
boolean secureConnection, long remoteGroupId)
throws PortalException {
return buildDefaultRemotePublishingExportImportConfiguration(
user, sourceGroupId, privateLayout, remoteAddress, remotePort,
remotePathContext, secureConnection, remoteGroupId,
getDefaultPublishingParameters());
}
public static ExportImportConfiguration cloneExportImportConfiguration(
ExportImportConfiguration exportImportConfiguration)
throws PortalException {
if (exportImportConfiguration == null) {
return null;
}
return ExportImportConfigurationLocalServiceUtil.
addExportImportConfiguration(
exportImportConfiguration.getUserId(),
exportImportConfiguration.getGroupId(),
exportImportConfiguration.getName(),
exportImportConfiguration.getDescription(),
exportImportConfiguration.getType(),
exportImportConfiguration.getSettingsMap(),
exportImportConfiguration.getStatus(), new ServiceContext());
}
public static Map<String, String[]> getDefaultPublishingParameters(
PortletRequest portletRequest) {
Map<String, String[]> parameterMap =
ExportImportConfigurationParameterMapFactory.buildParameterMap(
portletRequest);
return addDefaultPublishingParameters(parameterMap);
}
protected static Map<String, String[]> addDefaultPublishingParameters(
Map<String, String[]> parameterMap) {
parameterMap.put(
PortletDataHandlerKeys.DELETIONS,
new String[] {Boolean.TRUE.toString()});
parameterMap.put(
PortletDataHandlerKeys.IGNORE_LAST_PUBLISH_DATE,
new String[] {Boolean.FALSE.toString()});
parameterMap.put(
PortletDataHandlerKeys.LAYOUT_SET_SETTINGS,
new String[] {Boolean.TRUE.toString()});
parameterMap.put(
PortletDataHandlerKeys.LOGO,
new String[] {Boolean.TRUE.toString()});
parameterMap.put(
PortletDataHandlerKeys.PERMISSIONS,
new String[] {Boolean.TRUE.toString()});
parameterMap.put(
PortletDataHandlerKeys.PORTLET_CONFIGURATION,
new String[] {Boolean.TRUE.toString()});
parameterMap.put(
PortletDataHandlerKeys.PORTLET_CONFIGURATION_ALL,
new String[] {Boolean.TRUE.toString()});
parameterMap.put(
PortletDataHandlerKeys.PORTLET_DATA,
new String[] {Boolean.TRUE.toString()});
parameterMap.put(
PortletDataHandlerKeys.PORTLET_DATA_ALL,
new String[] {Boolean.TRUE.toString()});
parameterMap.put(
PortletDataHandlerKeys.PORTLET_SETUP_ALL,
new String[] {Boolean.TRUE.toString()});
parameterMap.put(
ExportImportDateUtil.RANGE,
new String[] {ExportImportDateUtil.RANGE_FROM_LAST_PUBLISH_DATE});
parameterMap.put(
PortletDataHandlerKeys.THEME_REFERENCE,
new String[] {Boolean.TRUE.toString()});
return parameterMap;
}
protected static ExportImportConfiguration
buildDefaultRemotePublishingExportImportConfiguration(
User user, long sourceGroupId, boolean privateLayout,
String remoteAddress, int remotePort, String remotePathContext,
boolean secureConnection, long remoteGroupId,
Map<String, String[]> parameterMap)
throws PortalException {
Map<String, Serializable> publishLayoutRemoteSettingsMap =
ExportImportConfigurationSettingsMapFactory.
buildPublishLayoutRemoteSettingsMap(
user.getUserId(), sourceGroupId, privateLayout,
ExportImportHelperUtil.getAllLayoutIdsMap(
sourceGroupId, privateLayout),
parameterMap, remoteAddress, remotePort, remotePathContext,
secureConnection, remoteGroupId, privateLayout,
user.getLocale(), user.getTimeZone());
return ExportImportConfigurationLocalServiceUtil.
addDraftExportImportConfiguration(
user.getUserId(),
ExportImportConfigurationConstants.TYPE_PUBLISH_LAYOUT_REMOTE,
publishLayoutRemoteSettingsMap);
}
protected static Map<String, String[]> getDefaultPublishingParameters() {
Map<String, String[]> parameterMap =
ExportImportConfigurationParameterMapFactory.buildParameterMap();
return addDefaultPublishingParameters(parameterMap);
}
}