/**
* 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.mobile.device.rules.service.impl;
import com.liferay.mobile.device.rules.model.MDRAction;
import com.liferay.mobile.device.rules.model.MDRRuleGroupInstance;
import com.liferay.mobile.device.rules.service.base.MDRActionLocalServiceBaseImpl;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.model.SystemEventConstants;
import com.liferay.portal.kernel.model.User;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.systemevent.SystemEvent;
import com.liferay.portal.kernel.util.OrderByComparator;
import com.liferay.portal.kernel.util.UnicodeProperties;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
/**
* @author Edward C. Han
*/
public class MDRActionLocalServiceImpl extends MDRActionLocalServiceBaseImpl {
@Override
public MDRAction addAction(
long ruleGroupInstanceId, Map<Locale, String> nameMap,
Map<Locale, String> descriptionMap, String type,
String typeSettings, ServiceContext serviceContext)
throws PortalException {
User user = userLocalService.getUser(serviceContext.getUserId());
MDRRuleGroupInstance ruleGroupInstance =
mdrRuleGroupInstancePersistence.findByPrimaryKey(
ruleGroupInstanceId);
long actionId = counterLocalService.increment();
MDRAction action = mdrActionLocalService.createMDRAction(actionId);
action.setUuid(serviceContext.getUuid());
action.setGroupId(ruleGroupInstance.getGroupId());
action.setCompanyId(serviceContext.getCompanyId());
action.setUserId(serviceContext.getUserId());
action.setUserName(user.getFullName());
action.setClassNameId(ruleGroupInstance.getClassNameId());
action.setClassPK(ruleGroupInstance.getClassPK());
action.setRuleGroupInstanceId(ruleGroupInstanceId);
action.setNameMap(nameMap);
action.setDescriptionMap(descriptionMap);
action.setType(type);
action.setTypeSettings(typeSettings);
action = updateMDRAction(action);
ruleGroupInstance.setModifiedDate(new Date());
mdrRuleGroupInstancePersistence.update(ruleGroupInstance);
return action;
}
@Override
public MDRAction addAction(
long ruleGroupInstanceId, Map<Locale, String> nameMap,
Map<Locale, String> descriptionMap, String type,
UnicodeProperties typeSettingsProperties,
ServiceContext serviceContext)
throws PortalException {
return addAction(
ruleGroupInstanceId, nameMap, descriptionMap, type,
typeSettingsProperties.toString(), serviceContext);
}
@Override
public void deleteAction(long actionId) {
MDRAction action = mdrActionPersistence.fetchByPrimaryKey(actionId);
if (action != null) {
mdrActionLocalService.deleteAction(action);
}
}
@Override
@SystemEvent(type = SystemEventConstants.TYPE_DELETE)
public void deleteAction(MDRAction action) {
mdrActionPersistence.remove(action);
MDRRuleGroupInstance ruleGroupInstance =
mdrRuleGroupInstancePersistence.fetchByPrimaryKey(
action.getRuleGroupInstanceId());
if (ruleGroupInstance != null) {
ruleGroupInstance.setModifiedDate(new Date());
mdrRuleGroupInstancePersistence.update(ruleGroupInstance);
}
}
@Override
public void deleteActions(long ruleGroupInstanceId) {
List<MDRAction> actions =
mdrActionPersistence.findByRuleGroupInstanceId(ruleGroupInstanceId);
for (MDRAction action : actions) {
mdrActionLocalService.deleteAction(action);
}
}
@Override
public MDRAction fetchAction(long actionId) {
return mdrActionPersistence.fetchByPrimaryKey(actionId);
}
@Override
public MDRAction getAction(long actionId) throws PortalException {
return mdrActionPersistence.findByPrimaryKey(actionId);
}
@Override
public List<MDRAction> getActions(long ruleGroupInstanceId) {
return mdrActionPersistence.findByRuleGroupInstanceId(
ruleGroupInstanceId);
}
@Override
public List<MDRAction> getActions(
long ruleGroupInstanceId, int start, int end) {
return mdrActionPersistence.findByRuleGroupInstanceId(
ruleGroupInstanceId, start, end);
}
@Override
public List<MDRAction> getActions(
long ruleGroupInstanceId, int start, int end,
OrderByComparator<MDRAction> obc) {
return mdrActionPersistence.findByRuleGroupInstanceId(
ruleGroupInstanceId, start, end, obc);
}
@Override
public int getActionsCount(long ruleGroupInstanceId) {
return mdrActionPersistence.countByRuleGroupInstanceId(
ruleGroupInstanceId);
}
@Override
public MDRAction updateAction(
long actionId, Map<Locale, String> nameMap,
Map<Locale, String> descriptionMap, String type,
String typeSettings, ServiceContext serviceContext)
throws PortalException {
MDRAction action = mdrActionPersistence.findByPrimaryKey(actionId);
action.setNameMap(nameMap);
action.setDescriptionMap(descriptionMap);
action.setType(type);
action.setTypeSettings(typeSettings);
mdrActionPersistence.update(action);
MDRRuleGroupInstance ruleGroupInstance =
mdrRuleGroupInstancePersistence.findByPrimaryKey(
action.getRuleGroupInstanceId());
ruleGroupInstance.setModifiedDate(serviceContext.getModifiedDate(null));
mdrRuleGroupInstancePersistence.update(ruleGroupInstance);
return action;
}
@Override
public MDRAction updateAction(
long actionId, Map<Locale, String> nameMap,
Map<Locale, String> descriptionMap, String type,
UnicodeProperties typeSettingsProperties,
ServiceContext serviceContext)
throws PortalException {
return updateAction(
actionId, nameMap, descriptionMap, type,
typeSettingsProperties.toString(), serviceContext);
}
}