001
014
015 package com.liferay.portlet.documentlibrary.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.ListUtil;
020 import com.liferay.portal.kernel.util.LocaleUtil;
021 import com.liferay.portal.kernel.util.OrderByComparator;
022 import com.liferay.portal.security.permission.ActionKeys;
023 import com.liferay.portal.security.permission.PermissionChecker;
024 import com.liferay.portal.service.ServiceContext;
025 import com.liferay.portlet.documentlibrary.model.DLFileEntryType;
026 import com.liferay.portlet.documentlibrary.service.base.DLFileEntryTypeServiceBaseImpl;
027 import com.liferay.portlet.documentlibrary.service.permission.DLFileEntryTypePermission;
028 import com.liferay.portlet.documentlibrary.service.permission.DLPermission;
029
030 import java.util.HashMap;
031 import java.util.Iterator;
032 import java.util.List;
033 import java.util.Locale;
034 import java.util.Map;
035
036
042 public class DLFileEntryTypeServiceImpl extends DLFileEntryTypeServiceBaseImpl {
043
044 @Override
045 public DLFileEntryType addFileEntryType(
046 long groupId, String fileEntryTypeKey, Map<Locale, String> nameMap,
047 Map<Locale, String> descriptionMap, long[] ddmStructureIds,
048 ServiceContext serviceContext)
049 throws PortalException, SystemException {
050
051 DLPermission.check(
052 getPermissionChecker(), groupId, ActionKeys.ADD_DOCUMENT_TYPE);
053
054 return dlFileEntryTypeLocalService.addFileEntryType(
055 getUserId(), groupId, fileEntryTypeKey, nameMap, descriptionMap,
056 ddmStructureIds, serviceContext);
057 }
058
059 @Override
060 public DLFileEntryType addFileEntryType(
061 long groupId, String name, String description,
062 long[] ddmStructureIds, ServiceContext serviceContext)
063 throws PortalException, SystemException {
064
065 Map<Locale, String> nameMap = new HashMap<Locale, String>();
066
067 nameMap.put(LocaleUtil.getSiteDefault(), name);
068
069 Map<Locale, String> descriptionMap = new HashMap<Locale, String>();
070
071 descriptionMap.put(LocaleUtil.getSiteDefault(), description);
072
073 return addFileEntryType(
074 groupId, null, nameMap, descriptionMap, ddmStructureIds,
075 serviceContext);
076 }
077
078 @Override
079 public void deleteFileEntryType(long fileEntryTypeId)
080 throws PortalException, SystemException {
081
082 DLFileEntryTypePermission.check(
083 getPermissionChecker(), fileEntryTypeId, ActionKeys.DELETE);
084
085 dlFileEntryTypeLocalService.deleteFileEntryType(fileEntryTypeId);
086 }
087
088 @Override
089 public DLFileEntryType getFileEntryType(long fileEntryTypeId)
090 throws PortalException, SystemException {
091
092 DLFileEntryTypePermission.check(
093 getPermissionChecker(), fileEntryTypeId, ActionKeys.VIEW);
094
095 return dlFileEntryTypeLocalService.getFileEntryType(fileEntryTypeId);
096 }
097
098 @Override
099 public List<DLFileEntryType> getFileEntryTypes(long[] groupIds)
100 throws SystemException {
101
102 return dlFileEntryTypePersistence.filterFindByGroupId(groupIds);
103 }
104
105 @Override
106 public List<DLFileEntryType> getFileEntryTypes(
107 long[] groupIds, int start, int end)
108 throws SystemException {
109
110 return dlFileEntryTypePersistence.filterFindByGroupId(
111 groupIds, start, end);
112 }
113
114 @Override
115 public int getFileEntryTypesCount(long[] groupIds) throws SystemException {
116 return dlFileEntryTypePersistence.filterCountByGroupId(groupIds);
117 }
118
119 @Override
120 public List<DLFileEntryType> getFolderFileEntryTypes(
121 long[] groupIds, long folderId, boolean inherited)
122 throws PortalException, SystemException {
123
124 return filterFileEntryTypes(
125 dlFileEntryTypeLocalService.getFolderFileEntryTypes(
126 groupIds, folderId, inherited));
127 }
128
129 @Override
130 public List<DLFileEntryType> search(
131 long companyId, long[] groupIds, String keywords,
132 boolean includeBasicFileEntryType, int start, int end,
133 OrderByComparator orderByComparator)
134 throws SystemException {
135
136 return dlFileEntryTypeFinder.filterFindByKeywords(
137 companyId, groupIds, keywords, includeBasicFileEntryType, start,
138 end, orderByComparator);
139 }
140
141 @Override
142 public int searchCount(
143 long companyId, long[] groupIds, String keywords,
144 boolean includeBasicFileEntryType)
145 throws SystemException {
146
147 return dlFileEntryTypeFinder.filterCountByKeywords(
148 companyId, groupIds, keywords, includeBasicFileEntryType);
149 }
150
151 @Override
152 public void updateFileEntryType(
153 long fileEntryTypeId, Map<Locale, String> nameMap,
154 Map<Locale, String> descriptionMap, long[] ddmStructureIds,
155 ServiceContext serviceContext)
156 throws PortalException, SystemException {
157
158 DLFileEntryTypePermission.check(
159 getPermissionChecker(), fileEntryTypeId, ActionKeys.UPDATE);
160
161 dlFileEntryTypeLocalService.updateFileEntryType(
162 getUserId(), fileEntryTypeId, nameMap, descriptionMap,
163 ddmStructureIds, serviceContext);
164 }
165
166 @Override
167 public void updateFileEntryType(
168 long fileEntryTypeId, String name, String description,
169 long[] ddmStructureIds, ServiceContext serviceContext)
170 throws PortalException, SystemException {
171
172 Map<Locale, String> nameMap = new HashMap<Locale, String>();
173
174 nameMap.put(LocaleUtil.getSiteDefault(), name);
175
176 Map<Locale, String> descriptionMap = new HashMap<Locale, String>();
177
178 descriptionMap.put(LocaleUtil.getSiteDefault(), description);
179
180 updateFileEntryType(
181 fileEntryTypeId, nameMap, descriptionMap, ddmStructureIds,
182 serviceContext);
183 }
184
185 protected List<DLFileEntryType> filterFileEntryTypes(
186 List<DLFileEntryType> fileEntryTypes)
187 throws PortalException {
188
189 PermissionChecker permissionChecker = getPermissionChecker();
190
191 fileEntryTypes = ListUtil.copy(fileEntryTypes);
192
193 Iterator<DLFileEntryType> itr = fileEntryTypes.iterator();
194
195 while (itr.hasNext()) {
196 DLFileEntryType fileEntryType = itr.next();
197
198 if ((fileEntryType.getFileEntryTypeId() > 0) &&
199 !DLFileEntryTypePermission.contains(
200 permissionChecker, fileEntryType, ActionKeys.VIEW)) {
201
202 itr.remove();
203 }
204 }
205
206 return fileEntryTypes;
207 }
208
209 }