001    /**
002     * Copyright (c) 2000-2011 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
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                    return updateMDRAction(action, false);
069            }
070    
071            public MDRAction addAction(
072                            long ruleGroupInstanceId, Map<Locale, String> nameMap,
073                            Map<Locale, String> descriptionMap, String type,
074                            UnicodeProperties typeSettingsProperties,
075                            ServiceContext serviceContext)
076                    throws PortalException, SystemException {
077    
078                    return addAction(
079                            ruleGroupInstanceId, nameMap, descriptionMap, type,
080                            typeSettingsProperties.toString(), serviceContext);
081            }
082    
083            public void deleteAction(long actionId) throws SystemException {
084                    MDRAction action = mdrActionPersistence.fetchByPrimaryKey(actionId);
085    
086                    if (action != null) {
087                            deleteAction(action);
088                    }
089            }
090    
091            public void deleteAction(MDRAction action) throws SystemException {
092                    mdrActionPersistence.remove(action);
093            }
094    
095            public void deleteActions(long ruleGroupInstanceId)
096                    throws SystemException {
097    
098                    List<MDRAction> actions =
099                            mdrActionPersistence.findByRuleGroupInstanceId(ruleGroupInstanceId);
100    
101                    for (MDRAction action : actions) {
102                            deleteAction(action);
103                    }
104            }
105    
106            public MDRAction fetchAction(long actionId) throws SystemException {
107                    return mdrActionPersistence.fetchByPrimaryKey(actionId);
108            }
109    
110            public List<MDRAction> getActions(long ruleGroupInstanceId)
111                    throws SystemException {
112    
113                    return mdrActionPersistence.findByRuleGroupInstanceId(
114                            ruleGroupInstanceId);
115            }
116    
117            public List<MDRAction> getActions(
118                            long ruleGroupInstanceId, int start, int end)
119                    throws SystemException {
120    
121                    return mdrActionPersistence.findByRuleGroupInstanceId(
122                            ruleGroupInstanceId, start, end);
123            }
124    
125            public int getActionsCount(long ruleGroupInstanceId)
126                    throws SystemException {
127    
128                    return mdrActionPersistence.countByRuleGroupInstanceId(
129                            ruleGroupInstanceId);
130            }
131    
132            public MDRAction updateAction(
133                            long actionId, Map<Locale, String> nameMap,
134                            Map<Locale, String> descriptionMap, String type,
135                            String typeSettings, ServiceContext serviceContext)
136                    throws PortalException, SystemException {
137    
138                    MDRAction action = mdrActionPersistence.findByPrimaryKey(actionId);
139    
140                    action.setModifiedDate(serviceContext.getModifiedDate(null));
141                    action.setNameMap(nameMap);
142                    action.setDescriptionMap(descriptionMap);
143                    action.setType(type);
144                    action.setTypeSettings(typeSettings);
145    
146                    mdrActionPersistence.update(action, false);
147    
148                    return action;
149            }
150    
151            public MDRAction updateAction(
152                            long actionId, Map<Locale, String> nameMap,
153                            Map<Locale, String> descriptionMap, String type,
154                            UnicodeProperties typeSettingsProperties,
155                            ServiceContext serviceContext)
156                    throws PortalException, SystemException {
157    
158                    return updateAction(
159                            actionId, nameMap, descriptionMap, type,
160                            typeSettingsProperties.toString(), serviceContext);
161            }
162    
163    }