001
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.OrderByComparator;
020 import com.liferay.portal.model.Layout;
021 import com.liferay.portal.model.LayoutSet;
022 import com.liferay.portal.security.permission.ActionKeys;
023 import com.liferay.portal.service.ServiceContext;
024 import com.liferay.portal.util.PortalUtil;
025 import com.liferay.portlet.mobiledevicerules.model.MDRRuleGroupInstance;
026 import com.liferay.portlet.mobiledevicerules.service.base.MDRRuleGroupInstanceServiceBaseImpl;
027 import com.liferay.portlet.mobiledevicerules.service.permission.MDRPermissionUtil;
028 import com.liferay.portlet.mobiledevicerules.service.permission.MDRRuleGroupInstancePermissionUtil;
029
030 import java.util.List;
031
032
035 public class MDRRuleGroupInstanceServiceImpl
036 extends MDRRuleGroupInstanceServiceBaseImpl {
037
038 public MDRRuleGroupInstance addRuleGroupInstance(
039 long groupId, String className, long classPK, long ruleGroupId,
040 int priority, ServiceContext serviceContext)
041 throws PortalException, SystemException {
042
043 MDRPermissionUtil.check(
044 getPermissionChecker(), groupId,
045 ActionKeys.ADD_RULE_GROUP_INSTANCE);
046
047 return mdrRuleGroupInstanceLocalService.addRuleGroupInstance(
048 groupId, className, classPK, ruleGroupId, priority, serviceContext);
049 }
050
051 public MDRRuleGroupInstance addRuleGroupInstance(
052 long groupId, String className, long classPK, long ruleGroupId,
053 ServiceContext serviceContext)
054 throws PortalException, SystemException {
055
056 MDRPermissionUtil.check(
057 getPermissionChecker(), groupId,
058 ActionKeys.ADD_RULE_GROUP_INSTANCE);
059
060 return mdrRuleGroupInstanceLocalService.addRuleGroupInstance(
061 groupId, className, classPK, ruleGroupId, serviceContext);
062 }
063
064 public void deleteRuleGroupInstance(long ruleGroupInstanceId)
065 throws PortalException, SystemException {
066
067 MDRRuleGroupInstance ruleGroupInstance =
068 mdrRuleGroupInstancePersistence.findByPrimaryKey(
069 ruleGroupInstanceId);
070
071 MDRRuleGroupInstancePermissionUtil.check(
072 getPermissionChecker(), ruleGroupInstance, ActionKeys.DELETE);
073
074 mdrRuleGroupInstanceLocalService.deleteRuleGroupInstance(
075 ruleGroupInstance);
076 }
077
078 public List<MDRRuleGroupInstance> getRuleGroupInstances(
079 String className, long classPK, int start, int end,
080 OrderByComparator orderByComparator)
081 throws SystemException {
082
083 long groupId = getGroupId(className, classPK);
084 long classNameId = PortalUtil.getClassNameId(className);
085
086 return mdrRuleGroupInstancePersistence.filterFindByG_C_C(
087 groupId, classNameId, classPK, start, end, orderByComparator);
088 }
089
090 public int getRuleGroupInstancesCount(String className, long classPK)
091 throws SystemException {
092
093 long groupId = getGroupId(className, classPK);
094 long classNameId = PortalUtil.getClassNameId(className);
095
096 return mdrRuleGroupInstancePersistence.filterCountByG_C_C(
097 groupId, classNameId, classPK);
098 }
099
100 public MDRRuleGroupInstance updateRuleGroupInstance(
101 long ruleGroupInstanceId, int priority)
102 throws PortalException, SystemException {
103
104 MDRRuleGroupInstance ruleGroupInstance =
105 mdrRuleGroupInstancePersistence.findByPrimaryKey(
106 ruleGroupInstanceId);
107
108 MDRRuleGroupInstancePermissionUtil.check(
109 getPermissionChecker(), ruleGroupInstance.getRuleGroupInstanceId(),
110 ActionKeys.UPDATE);
111
112 return mdrRuleGroupInstanceLocalService.updateRuleGroupInstance(
113 ruleGroupInstanceId, priority);
114 }
115
116 protected long getGroupId(String className, long classPK)
117 throws SystemException {
118
119 long groupId = 0;
120
121 if (className.equals(Layout.class.getName())) {
122 Layout layout = layoutPersistence.fetchByPrimaryKey(classPK);
123
124 if (layout != null) {
125 groupId = layout.getGroupId();
126 }
127 }
128 else if (className.equals(LayoutSet.class.getName())) {
129 LayoutSet layoutSet = layoutSetPersistence.fetchByPrimaryKey(
130 classPK);
131
132 if (layoutSet != null) {
133 groupId = layoutSet.getGroupId();
134 }
135 }
136
137 return groupId;
138 }
139
140 }