/**
* 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.wsrp.web.internal.exportimport.data.handler;
import com.liferay.exportimport.kernel.lar.BaseStagedModelDataHandler;
import com.liferay.exportimport.kernel.lar.ExportImportPathUtil;
import com.liferay.exportimport.kernel.lar.PortletDataContext;
import com.liferay.exportimport.kernel.lar.StagedModelModifiedDateComparator;
import com.liferay.portal.kernel.dao.orm.QueryUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.xml.Element;
import com.liferay.wsrp.model.WSRPProducer;
import com.liferay.wsrp.service.WSRPProducerLocalServiceUtil;
import java.util.List;
/**
* @author Michael C. Han
*/
public class WSRPProducerStagedModelDataHandler
extends BaseStagedModelDataHandler<WSRPProducer> {
public static final String[] CLASS_NAMES = {WSRPProducer.class.getName()};
@Override
public void deleteStagedModel(
String uuid, long groupId, String className, String extraData)
throws PortalException {
WSRPProducer wsrpProducer = fetchStagedModelByUuidAndGroupId(
uuid, groupId);
if (wsrpProducer != null) {
deleteStagedModel(wsrpProducer);
}
}
@Override
public void deleteStagedModel(WSRPProducer wsrpProducer)
throws PortalException {
WSRPProducerLocalServiceUtil.deleteWSRPProducer(wsrpProducer);
}
@Override
public WSRPProducer fetchStagedModelByUuidAndGroupId(
String uuid, long groupId) {
return WSRPProducerLocalServiceUtil.fetchWSRPProducerByUuidAndGroupId(
uuid, groupId);
}
@Override
public List<WSRPProducer> fetchStagedModelsByUuidAndCompanyId(
String uuid, long companyId) {
return WSRPProducerLocalServiceUtil.getWSRPProducersByUuidAndCompanyId(
uuid, companyId, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
new StagedModelModifiedDateComparator<WSRPProducer>());
}
@Override
public String[] getClassNames() {
return CLASS_NAMES;
}
@Override
public String getDisplayName(WSRPProducer wsrpProducer) {
return wsrpProducer.getName();
}
@Override
protected void doExportStagedModel(
PortletDataContext portletDataContext, WSRPProducer wsrpProducer)
throws Exception {
Element wsrpProducerElement = portletDataContext.getExportDataElement(
wsrpProducer);
portletDataContext.addClassedModel(
wsrpProducerElement,
ExportImportPathUtil.getModelPath(wsrpProducer), wsrpProducer);
}
@Override
protected void doImportStagedModel(
PortletDataContext portletDataContext, WSRPProducer wsrpProducer)
throws Exception {
ServiceContext serviceContext = portletDataContext.createServiceContext(
wsrpProducer);
WSRPProducer importedWSRPProducer = null;
if (portletDataContext.isDataStrategyMirror()) {
WSRPProducer existingWSRPProducer =
fetchStagedModelByUuidAndGroupId(
wsrpProducer.getUuid(),
portletDataContext.getScopeGroupId());
if (existingWSRPProducer == null) {
serviceContext.setUuid(wsrpProducer.getUuid());
importedWSRPProducer =
WSRPProducerLocalServiceUtil.addWSRPProducer(
portletDataContext.getUserId(null),
wsrpProducer.getName(), wsrpProducer.getVersion(),
wsrpProducer.getPortletIds(), serviceContext);
}
else {
existingWSRPProducer.setName(wsrpProducer.getName());
existingWSRPProducer.setVersion(wsrpProducer.getVersion());
existingWSRPProducer.setPortletIds(
wsrpProducer.getPortletIds());
WSRPProducerLocalServiceUtil.updateWSRPProducer(
existingWSRPProducer);
importedWSRPProducer =
WSRPProducerLocalServiceUtil.updateWSRPProducer(
existingWSRPProducer);
}
}
else {
importedWSRPProducer = WSRPProducerLocalServiceUtil.addWSRPProducer(
portletDataContext.getUserId(null), wsrpProducer.getName(),
wsrpProducer.getVersion(), wsrpProducer.getPortletIds(),
serviceContext);
}
portletDataContext.importClassedModel(
wsrpProducer, importedWSRPProducer);
}
}