001    /**
002     * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.mobiledevicerules.service.impl;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.kernel.util.UnicodeProperties;
020    import com.liferay.portal.model.User;
021    import com.liferay.portal.service.ServiceContext;
022    import com.liferay.portlet.mobiledevicerules.model.MDRAction;
023    import com.liferay.portlet.mobiledevicerules.model.MDRRuleGroupInstance;
024    import com.liferay.portlet.mobiledevicerules.service.base.MDRActionLocalServiceBaseImpl;
025    
026    import java.util.Date;
027    import java.util.List;
028    import java.util.Locale;
029    import java.util.Map;
030    
031    /**
032     * @author Edward C. Han
033     */
034    public class MDRActionLocalServiceImpl extends MDRActionLocalServiceBaseImpl {
035    
036            public MDRAction addAction(
037                            long ruleGroupInstanceId, Map<Locale, String> nameMap,
038                            Map<Locale, String> descriptionMap, String type,
039                            String typeSettings, ServiceContext serviceContext)
040                    throws PortalException, SystemException {
041    
042                    User user = userPersistence.findByPrimaryKey(
043                            serviceContext.getUserId());
044                    MDRRuleGroupInstance ruleGroupInstance =
045                            mdrRuleGroupInstancePersistence.findByPrimaryKey(
046                                    ruleGroupInstanceId);
047                    Date now = new Date();
048    
049                    long actionId = counterLocalService.increment();
050    
051                    MDRAction action = mdrActionLocalService.createMDRAction(actionId);
052    
053                    action.setUuid(serviceContext.getUuid());
054                    action.setGroupId(ruleGroupInstance.getGroupId());
055                    action.setCompanyId(serviceContext.getCompanyId());
056                    action.setCreateDate(serviceContext.getCreateDate(now));
057                    action.setModifiedDate(serviceContext.getModifiedDate(now));
058                    action.setUserId(serviceContext.getUserId());
059                    action.setUserName(user.getFullName());
060                    action.setClassNameId(ruleGroupInstance.getClassNameId());
061                    action.setClassPK(ruleGroupInstance.getClassPK());
062                    action.setRuleGroupInstanceId(ruleGroupInstanceId);
063                    action.setNameMap(nameMap);
064                    action.setDescriptionMap(descriptionMap);
065                    action.setType(type);
066                    action.setTypeSettings(typeSettings);
067    
068                    action = updateMDRAction(action);
069    
070                    ruleGroupInstance.setModifiedDate(now);
071    
072                    mdrRuleGroupInstancePersistence.update(ruleGroupInstance);
073    
074                    return action;
075            }
076    
077            public MDRAction addAction(
078                            long ruleGroupInstanceId, Map<Locale, String> nameMap,
079                            Map<Locale, String> descriptionMap, String type,
080                            UnicodeProperties typeSettingsProperties,
081                            ServiceContext serviceContext)
082                    throws PortalException, SystemException {
083    
084                    return addAction(
085                            ruleGroupInstanceId, nameMap, descriptionMap, type,
086                            typeSettingsProperties.toString(), serviceContext);
087            }
088    
089            public void deleteAction(long actionId) throws SystemException {
090                    MDRAction action = mdrActionPersistence.fetchByPrimaryKey(actionId);
091    
092                    if (action != null) {
093                            deleteAction(action);
094                    }
095            }
096    
097            public void deleteAction(MDRAction action) throws SystemException {
098                    mdrActionPersistence.remove(action);
099    
100                    MDRRuleGroupInstance ruleGroupInstance =
101                            mdrRuleGroupInstancePersistence.fetchByPrimaryKey(
102                                    action.getRuleGroupInstanceId());
103    
104                    if (ruleGroupInstance != null) {
105                            ruleGroupInstance.setModifiedDate(new Date());
106    
107                            mdrRuleGroupInstancePersistence.update(ruleGroupInstance);
108                    }
109            }
110    
111            public void deleteActions(long ruleGroupInstanceId) throws SystemException {
112                    List<MDRAction> actions =
113                            mdrActionPersistence.findByRuleGroupInstanceId(ruleGroupInstanceId);
114    
115                    for (MDRAction action : actions) {
116                            deleteAction(action);
117                    }
118            }
119    
120            public MDRAction fetchAction(long actionId) throws SystemException {
121                    return mdrActionPersistence.fetchByPrimaryKey(actionId);
122            }
123    
124            public MDRAction getAction(long actionId)
125                    throws PortalException, SystemException {
126    
127                    return mdrActionPersistence.findByPrimaryKey(actionId);
128            }
129    
130            public List<MDRAction> getActions(long ruleGroupInstanceId)
131                    throws SystemException {
132    
133                    return mdrActionPersistence.findByRuleGroupInstanceId(
134                            ruleGroupInstanceId);
135            }
136    
137            public List<MDRAction> getActions(
138                            long ruleGroupInstanceId, int start, int end)
139                    throws SystemException {
140    
141                    return mdrActionPersistence.findByRuleGroupInstanceId(
142                            ruleGroupInstanceId, start, end);
143            }
144    
145            public int getActionsCount(long ruleGroupInstanceId)
146                    throws SystemException {
147    
148                    return mdrActionPersistence.countByRuleGroupInstanceId(
149                            ruleGroupInstanceId);
150            }
151    
152            public MDRAction updateAction(
153                            long actionId, Map<Locale, String> nameMap,
154                            Map<Locale, String> descriptionMap, String type,
155                            String typeSettings, ServiceContext serviceContext)
156                    throws PortalException, SystemException {
157    
158                    MDRAction action = mdrActionPersistence.findByPrimaryKey(actionId);
159    
160                    action.setModifiedDate(serviceContext.getModifiedDate(null));
161                    action.setNameMap(nameMap);
162                    action.setDescriptionMap(descriptionMap);
163                    action.setType(type);
164                    action.setTypeSettings(typeSettings);
165    
166                    mdrActionPersistence.update(action);
167    
168                    MDRRuleGroupInstance ruleGroupInstance =
169                            mdrRuleGroupInstancePersistence.findByPrimaryKey(
170                                    action.getRuleGroupInstanceId());
171    
172                    ruleGroupInstance.setModifiedDate(serviceContext.getModifiedDate(null));
173    
174                    mdrRuleGroupInstancePersistence.update(ruleGroupInstance);
175    
176                    return action;
177            }
178    
179            public MDRAction updateAction(
180                            long actionId, Map<Locale, String> nameMap,
181                            Map<Locale, String> descriptionMap, String type,
182                            UnicodeProperties typeSettingsProperties,
183                            ServiceContext serviceContext)
184                    throws PortalException, SystemException {
185    
186                    return updateAction(
187                            actionId, nameMap, descriptionMap, type,
188                            typeSettingsProperties.toString(), serviceContext);
189            }
190    
191    }