001
014
015 package com.liferay.portal.repository.liferayrepository;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.repository.LocalRepository;
019 import com.liferay.portal.kernel.repository.model.FileEntry;
020 import com.liferay.portal.kernel.repository.model.FileVersion;
021 import com.liferay.portal.kernel.repository.model.Folder;
022 import com.liferay.portal.kernel.util.OrderByComparator;
023 import com.liferay.portal.kernel.util.ParamUtil;
024 import com.liferay.portal.kernel.util.SortedArrayList;
025 import com.liferay.portal.kernel.util.UnicodeProperties;
026 import com.liferay.portal.repository.liferayrepository.model.LiferayFileEntry;
027 import com.liferay.portal.repository.liferayrepository.model.LiferayFileVersion;
028 import com.liferay.portal.repository.liferayrepository.model.LiferayFolder;
029 import com.liferay.portal.service.RepositoryLocalService;
030 import com.liferay.portal.service.RepositoryService;
031 import com.liferay.portal.service.ResourceLocalService;
032 import com.liferay.portal.service.ServiceContext;
033 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
034 import com.liferay.portlet.documentlibrary.model.DLFileVersion;
035 import com.liferay.portlet.documentlibrary.model.DLFolder;
036 import com.liferay.portlet.documentlibrary.service.DLAppHelperLocalService;
037 import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService;
038 import com.liferay.portlet.documentlibrary.service.DLFileEntryService;
039 import com.liferay.portlet.documentlibrary.service.DLFileEntryTypeLocalService;
040 import com.liferay.portlet.documentlibrary.service.DLFileVersionLocalService;
041 import com.liferay.portlet.documentlibrary.service.DLFileVersionService;
042 import com.liferay.portlet.documentlibrary.service.DLFolderLocalService;
043 import com.liferay.portlet.documentlibrary.service.DLFolderService;
044 import com.liferay.portlet.documentlibrary.util.RepositoryModelUtil;
045 import com.liferay.portlet.documentlibrary.util.comparator.DLFileEntryOrderByComparator;
046 import com.liferay.portlet.dynamicdatamapping.storage.Fields;
047
048 import java.io.File;
049 import java.io.InputStream;
050
051 import java.util.List;
052 import java.util.Map;
053
054
057 public class LiferayLocalRepository
058 extends LiferayRepositoryBase implements LocalRepository {
059
060 public LiferayLocalRepository(
061 RepositoryLocalService repositoryLocalService,
062 RepositoryService repositoryService,
063 DLAppHelperLocalService dlAppHelperLocalService,
064 DLFileEntryLocalService dlFileEntryLocalService,
065 DLFileEntryService dlFileEntryService,
066 DLFileEntryTypeLocalService dlFileEntryTypeLocalService,
067 DLFileVersionLocalService dlFileVersionLocalService,
068 DLFileVersionService dlFileVersionService,
069 DLFolderLocalService dlFolderLocalService,
070 DLFolderService dlFolderService,
071 ResourceLocalService resourceLocalService, long groupId,
072 long repositoryId, long dlFolderId) {
073
074 super(
075 repositoryLocalService, repositoryService, dlAppHelperLocalService,
076 dlFileEntryLocalService, dlFileEntryService,
077 dlFileEntryTypeLocalService, dlFileVersionLocalService,
078 dlFileVersionService, dlFolderLocalService, dlFolderService,
079 resourceLocalService, groupId, repositoryId, dlFolderId);
080 }
081
082 @Override
083 public FileEntry addFileEntry(
084 long userId, long folderId, String sourceFileName, String mimeType,
085 String title, String description, String changeLog, File file,
086 ServiceContext serviceContext)
087 throws PortalException {
088
089 long fileEntryTypeId = ParamUtil.getLong(
090 serviceContext, "fileEntryTypeId",
091 getDefaultFileEntryTypeId(serviceContext, folderId));
092
093 Map<String, Fields> fieldsMap = getFieldsMap(
094 serviceContext, fileEntryTypeId);
095
096 long size = 0;
097
098 if (file != null) {
099 size = file.length();
100 }
101
102 DLFileEntry dlFileEntry = dlFileEntryLocalService.addFileEntry(
103 userId, getGroupId(), getRepositoryId(), toFolderId(folderId),
104 sourceFileName, mimeType, title, description, changeLog,
105 fileEntryTypeId, fieldsMap, file, null, size, serviceContext);
106
107 addFileEntryResources(dlFileEntry, serviceContext);
108
109 return new LiferayFileEntry(dlFileEntry);
110 }
111
112 @Override
113 public FileEntry addFileEntry(
114 long userId, long folderId, String sourceFileName, String mimeType,
115 String title, String description, String changeLog, InputStream is,
116 long size, ServiceContext serviceContext)
117 throws PortalException {
118
119 long fileEntryTypeId = ParamUtil.getLong(
120 serviceContext, "fileEntryTypeId",
121 getDefaultFileEntryTypeId(serviceContext, folderId));
122
123 Map<String, Fields> fieldsMap = getFieldsMap(
124 serviceContext, fileEntryTypeId);
125
126 DLFileEntry dlFileEntry = dlFileEntryLocalService.addFileEntry(
127 userId, getGroupId(), getRepositoryId(), toFolderId(folderId),
128 sourceFileName, mimeType, title, description, changeLog,
129 fileEntryTypeId, fieldsMap, null, is, size, serviceContext);
130
131 addFileEntryResources(dlFileEntry, serviceContext);
132
133 return new LiferayFileEntry(dlFileEntry);
134 }
135
136 @Override
137 public Folder addFolder(
138 long userId, long parentFolderId, String name, String description,
139 ServiceContext serviceContext)
140 throws PortalException {
141
142 boolean mountPoint = ParamUtil.getBoolean(serviceContext, "mountPoint");
143
144 DLFolder dlFolder = dlFolderLocalService.addFolder(
145 userId, getGroupId(), getRepositoryId(), mountPoint,
146 toFolderId(parentFolderId), name, description, false,
147 serviceContext);
148
149 return new LiferayFolder(dlFolder);
150 }
151
152 public void addRepository(
153 long groupId, String name, String description, String portletKey,
154 UnicodeProperties typeSettingsProperties) {
155 }
156
157 @Override
158 public void deleteAll() throws PortalException {
159 dlFolderLocalService.deleteAll(getGroupId());
160 }
161
162 @Override
163 public void deleteFileEntry(long fileEntryId) throws PortalException {
164 dlFileEntryLocalService.deleteFileEntry(fileEntryId);
165 }
166
167 @Override
168 public void deleteFolder(long folderId) throws PortalException {
169 DLFolder dlFolder = dlFolderLocalService.fetchFolder(folderId);
170
171 if (dlFolder != null) {
172 dlFolderLocalService.deleteFolder(folderId);
173 }
174 }
175
176 @Override
177 public FileEntry getFileEntry(long fileEntryId) throws PortalException {
178 DLFileEntry dlFileEntry = dlFileEntryLocalService.getFileEntry(
179 fileEntryId);
180
181 return new LiferayFileEntry(dlFileEntry);
182 }
183
184 @Override
185 public FileEntry getFileEntry(long folderId, String title)
186 throws PortalException {
187
188 DLFileEntry dlFileEntry = dlFileEntryLocalService.getFileEntry(
189 getGroupId(), toFolderId(folderId), title);
190
191 return new LiferayFileEntry(dlFileEntry);
192 }
193
194 @Override
195 public FileEntry getFileEntryByUuid(String uuid) throws PortalException {
196 DLFileEntry dlFileEntry =
197 dlFileEntryLocalService.getFileEntryByUuidAndGroupId(
198 uuid, getGroupId());
199
200 return new LiferayFileEntry(dlFileEntry);
201 }
202
203 @Override
204 public FileVersion getFileVersion(long fileVersionId)
205 throws PortalException {
206
207 DLFileVersion dlFileVersion = dlFileVersionLocalService.getFileVersion(
208 fileVersionId);
209
210 return new LiferayFileVersion(dlFileVersion);
211 }
212
213 @Override
214 public Folder getFolder(long folderId) throws PortalException {
215 DLFolder dlFolder = dlFolderLocalService.getFolder(folderId);
216
217 return new LiferayFolder(dlFolder);
218 }
219
220 @Override
221 public Folder getFolder(long parentFolderId, String name)
222 throws PortalException {
223
224 DLFolder dlFolder = dlFolderLocalService.getFolder(
225 getGroupId(), toFolderId(parentFolderId), name);
226
227 return new LiferayFolder(dlFolder);
228 }
229
230 @Override
231 public List<FileEntry> getRepositoryFileEntries(
232 long rootFolderId, int start, int end,
233 OrderByComparator<FileEntry> obc) {
234
235 List<DLFileEntry> dlFileEntries =
236 dlFileEntryLocalService.getGroupFileEntries(
237 getGroupId(), 0, rootFolderId, start, end,
238 DLFileEntryOrderByComparator.getOrderByComparator(obc));
239
240 return RepositoryModelUtil.toFileEntries(dlFileEntries);
241 }
242
243 @Override
244 public FileEntry moveFileEntry(
245 long userId, long fileEntryId, long newFolderId,
246 ServiceContext serviceContext)
247 throws PortalException {
248
249 DLFileEntry dlFileEntry = dlFileEntryLocalService.moveFileEntry(
250 userId, fileEntryId, toFolderId(newFolderId), serviceContext);
251
252 return new LiferayFileEntry(dlFileEntry);
253 }
254
255 @Override
256 public Folder moveFolder(
257 long userId, long folderId, long parentFolderId,
258 ServiceContext serviceContext)
259 throws PortalException {
260
261 DLFolder dlFolder = dlFolderLocalService.moveFolder(
262 userId, folderId, parentFolderId, serviceContext);
263
264 return new LiferayFolder(dlFolder);
265 }
266
267 @Override
268 public void updateAsset(
269 long userId, FileEntry fileEntry, FileVersion fileVersion,
270 long[] assetCategoryIds, String[] assetTagNames,
271 long[] assetLinkEntryIds)
272 throws PortalException {
273
274 dlAppHelperLocalService.updateAsset(
275 userId, fileEntry, fileVersion, assetCategoryIds, assetTagNames,
276 assetLinkEntryIds);
277 }
278
279 @Override
280 public FileEntry updateFileEntry(
281 long userId, long fileEntryId, String sourceFileName,
282 String mimeType, String title, String description, String changeLog,
283 boolean majorVersion, File file, ServiceContext serviceContext)
284 throws PortalException {
285
286 long fileEntryTypeId = ParamUtil.getLong(
287 serviceContext, "fileEntryTypeId", -1L);
288
289 Map<String, Fields> fieldsMap = getFieldsMap(
290 serviceContext, fileEntryTypeId);
291
292 long size = 0;
293
294 if (file != null) {
295 size = file.length();
296 }
297
298 DLFileEntry dlFileEntry = dlFileEntryLocalService.updateFileEntry(
299 userId, fileEntryId, sourceFileName, mimeType, title, description,
300 changeLog, majorVersion, fileEntryTypeId, fieldsMap, file, null,
301 size, serviceContext);
302
303 return new LiferayFileEntry(dlFileEntry);
304 }
305
306 @Override
307 public FileEntry updateFileEntry(
308 long userId, long fileEntryId, String sourceFileName,
309 String mimeType, String title, String description, String changeLog,
310 boolean majorVersion, InputStream is, long size,
311 ServiceContext serviceContext)
312 throws PortalException {
313
314 long fileEntryTypeId = ParamUtil.getLong(
315 serviceContext, "fileEntryTypeId", -1L);
316
317 Map<String, Fields> fieldsMap = getFieldsMap(
318 serviceContext, fileEntryTypeId);
319
320 DLFileEntry dlFileEntry = dlFileEntryLocalService.updateFileEntry(
321 userId, fileEntryId, sourceFileName, mimeType, title, description,
322 changeLog, majorVersion, fileEntryTypeId, fieldsMap, null, is, size,
323 serviceContext);
324
325 return new LiferayFileEntry(dlFileEntry);
326 }
327
328 @Override
329 public Folder updateFolder(
330 long folderId, long parentFolderId, String name, String description,
331 ServiceContext serviceContext)
332 throws PortalException {
333
334 long defaultFileEntryTypeId = ParamUtil.getLong(
335 serviceContext, "defaultFileEntryTypeId");
336 SortedArrayList<Long> fileEntryTypeIds = getLongList(
337 serviceContext, "dlFileEntryTypesSearchContainerPrimaryKeys");
338 boolean overrideFileEntryTypes = ParamUtil.getBoolean(
339 serviceContext, "overrideFileEntryTypes");
340
341 DLFolder dlFolder = dlFolderLocalService.updateFolder(
342 toFolderId(folderId), toFolderId(parentFolderId), name, description,
343 defaultFileEntryTypeId, fileEntryTypeIds, overrideFileEntryTypes,
344 serviceContext);
345
346 return new LiferayFolder(dlFolder);
347 }
348
349 public UnicodeProperties updateRepository(
350 UnicodeProperties typeSettingsProperties) {
351
352 return typeSettingsProperties;
353 }
354
355 }