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.FileShortcut;
021 import com.liferay.portal.kernel.repository.model.FileVersion;
022 import com.liferay.portal.kernel.repository.model.Folder;
023 import com.liferay.portal.kernel.util.OrderByComparator;
024 import com.liferay.portal.kernel.util.ParamUtil;
025 import com.liferay.portal.kernel.util.SortedArrayList;
026 import com.liferay.portal.kernel.util.UnicodeProperties;
027 import com.liferay.portal.repository.liferayrepository.model.LiferayFileEntry;
028 import com.liferay.portal.repository.liferayrepository.model.LiferayFileShortcut;
029 import com.liferay.portal.repository.liferayrepository.model.LiferayFileVersion;
030 import com.liferay.portal.repository.liferayrepository.model.LiferayFolder;
031 import com.liferay.portal.service.RepositoryLocalService;
032 import com.liferay.portal.service.RepositoryService;
033 import com.liferay.portal.service.ResourceLocalService;
034 import com.liferay.portal.service.ServiceContext;
035 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
036 import com.liferay.portlet.documentlibrary.model.DLFileShortcut;
037 import com.liferay.portlet.documentlibrary.model.DLFileVersion;
038 import com.liferay.portlet.documentlibrary.model.DLFolder;
039 import com.liferay.portlet.documentlibrary.service.DLAppHelperLocalService;
040 import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService;
041 import com.liferay.portlet.documentlibrary.service.DLFileEntryService;
042 import com.liferay.portlet.documentlibrary.service.DLFileEntryTypeLocalService;
043 import com.liferay.portlet.documentlibrary.service.DLFileShortcutLocalService;
044 import com.liferay.portlet.documentlibrary.service.DLFileShortcutService;
045 import com.liferay.portlet.documentlibrary.service.DLFileVersionLocalService;
046 import com.liferay.portlet.documentlibrary.service.DLFileVersionService;
047 import com.liferay.portlet.documentlibrary.service.DLFolderLocalService;
048 import com.liferay.portlet.documentlibrary.service.DLFolderService;
049 import com.liferay.portlet.documentlibrary.util.RepositoryModelUtil;
050 import com.liferay.portlet.documentlibrary.util.comparator.DLFileEntryOrderByComparator;
051 import com.liferay.portlet.dynamicdatamapping.storage.DDMFormValues;
052
053 import java.io.File;
054 import java.io.InputStream;
055
056 import java.util.List;
057 import java.util.Map;
058
059
062 public class LiferayLocalRepository
063 extends LiferayRepositoryBase implements LocalRepository {
064
065 public LiferayLocalRepository(
066 RepositoryLocalService repositoryLocalService,
067 RepositoryService repositoryService,
068 DLAppHelperLocalService dlAppHelperLocalService,
069 DLFileEntryLocalService dlFileEntryLocalService,
070 DLFileEntryService dlFileEntryService,
071 DLFileEntryTypeLocalService dlFileEntryTypeLocalService,
072 DLFileShortcutLocalService dlFileShortcutLocalService,
073 DLFileShortcutService dlFileShortcutService,
074 DLFileVersionLocalService dlFileVersionLocalService,
075 DLFileVersionService dlFileVersionService,
076 DLFolderLocalService dlFolderLocalService,
077 DLFolderService dlFolderService,
078 ResourceLocalService resourceLocalService, long groupId,
079 long repositoryId, long dlFolderId) {
080
081 super(
082 repositoryLocalService, repositoryService, dlAppHelperLocalService,
083 dlFileEntryLocalService, dlFileEntryService,
084 dlFileEntryTypeLocalService, dlFileShortcutLocalService,
085 dlFileShortcutService, dlFileVersionLocalService,
086 dlFileVersionService, dlFolderLocalService, dlFolderService,
087 resourceLocalService, groupId, repositoryId, dlFolderId);
088 }
089
090 @Override
091 public FileEntry addFileEntry(
092 long userId, long folderId, String sourceFileName, String mimeType,
093 String title, String description, String changeLog, File file,
094 ServiceContext serviceContext)
095 throws PortalException {
096
097 long fileEntryTypeId = ParamUtil.getLong(
098 serviceContext, "fileEntryTypeId",
099 getDefaultFileEntryTypeId(serviceContext, folderId));
100
101 Map<String, DDMFormValues> ddmFormValuesMap = getDDMFormValuesMap(
102 serviceContext, fileEntryTypeId);
103
104 long size = 0;
105
106 if (file != null) {
107 size = file.length();
108 }
109
110 DLFileEntry dlFileEntry = dlFileEntryLocalService.addFileEntry(
111 userId, getGroupId(), getRepositoryId(), toFolderId(folderId),
112 sourceFileName, mimeType, title, description, changeLog,
113 fileEntryTypeId, ddmFormValuesMap, file, null, size,
114 serviceContext);
115
116 addFileEntryResources(dlFileEntry, serviceContext);
117
118 return new LiferayFileEntry(dlFileEntry);
119 }
120
121 @Override
122 public FileEntry addFileEntry(
123 long userId, long folderId, String sourceFileName, String mimeType,
124 String title, String description, String changeLog, InputStream is,
125 long size, ServiceContext serviceContext)
126 throws PortalException {
127
128 long fileEntryTypeId = ParamUtil.getLong(
129 serviceContext, "fileEntryTypeId",
130 getDefaultFileEntryTypeId(serviceContext, folderId));
131
132 Map<String, DDMFormValues> ddmFormValuesMap = getDDMFormValuesMap(
133 serviceContext, fileEntryTypeId);
134
135 DLFileEntry dlFileEntry = dlFileEntryLocalService.addFileEntry(
136 userId, getGroupId(), getRepositoryId(), toFolderId(folderId),
137 sourceFileName, mimeType, title, description, changeLog,
138 fileEntryTypeId, ddmFormValuesMap, null, is, size, serviceContext);
139
140 addFileEntryResources(dlFileEntry, serviceContext);
141
142 return new LiferayFileEntry(dlFileEntry);
143 }
144
145 @Override
146 public FileShortcut addFileShortcut(
147 long userId, long folderId, long toFileEntryId,
148 ServiceContext serviceContext)
149 throws PortalException {
150
151 DLFileShortcut dlFileShortcut =
152 dlFileShortcutLocalService.addFileShortcut(
153 userId, getGroupId(), getRepositoryId(), toFolderId(folderId),
154 toFileEntryId, serviceContext);
155
156 return new LiferayFileShortcut(dlFileShortcut);
157 }
158
159 @Override
160 public Folder addFolder(
161 long userId, long parentFolderId, String name, String description,
162 ServiceContext serviceContext)
163 throws PortalException {
164
165 boolean mountPoint = ParamUtil.getBoolean(serviceContext, "mountPoint");
166
167 DLFolder dlFolder = dlFolderLocalService.addFolder(
168 userId, getGroupId(), getRepositoryId(), mountPoint,
169 toFolderId(parentFolderId), name, description, false,
170 serviceContext);
171
172 return new LiferayFolder(dlFolder);
173 }
174
175 @Override
176 public void checkInFileEntry(
177 long userId, long fileEntryId, boolean major, String changeLog,
178 ServiceContext serviceContext)
179 throws PortalException {
180
181 dlFileEntryLocalService.checkInFileEntry(
182 userId, fileEntryId, major, changeLog, serviceContext);
183 }
184
185 @Override
186 public void checkInFileEntry(
187 long userId, long fileEntryId, String lockUuid,
188 ServiceContext serviceContext)
189 throws PortalException {
190
191 dlFileEntryLocalService.checkInFileEntry(
192 userId, fileEntryId, lockUuid, serviceContext);
193 }
194
195 @Override
196 public FileEntry copyFileEntry(
197 long userId, long groupId, long fileEntryId, long destFolderId,
198 ServiceContext serviceContext)
199 throws PortalException {
200
201 DLFileEntry dlFileEntry = dlFileEntryLocalService.copyFileEntry(
202 userId, groupId, getRepositoryId(), fileEntryId,
203 toFolderId(destFolderId), serviceContext);
204
205 return new LiferayFileEntry(dlFileEntry);
206 }
207
208 @Override
209 public void deleteAll() throws PortalException {
210 dlFolderLocalService.deleteAllByRepository(getRepositoryId());
211 }
212
213 @Override
214 public void deleteFileEntry(long fileEntryId) throws PortalException {
215 dlFileEntryLocalService.deleteFileEntry(fileEntryId);
216 }
217
218 @Override
219 public void deleteFileShortcut(long fileShortcutId) throws PortalException {
220 dlFileShortcutLocalService.deleteFileShortcut(fileShortcutId);
221 }
222
223 @Override
224 public void deleteFileShortcuts(long toFileEntryId) throws PortalException {
225 dlFileShortcutLocalService.deleteFileShortcuts(toFileEntryId);
226 }
227
228 @Override
229 public void deleteFolder(long folderId) throws PortalException {
230 DLFolder dlFolder = dlFolderLocalService.fetchFolder(folderId);
231
232 if (dlFolder != null) {
233 dlFolderLocalService.deleteFolder(folderId);
234 }
235 }
236
237 @Override
238 public List<FileEntry> getFileEntries(
239 long folderId, int status, int start, int end,
240 OrderByComparator<FileEntry> obc) {
241
242 List<DLFileEntry> dlFileEntries =
243 dlFileEntryLocalService.getFileEntries(
244 getGroupId(), toFolderId(folderId), status, start, end,
245 DLFileEntryOrderByComparator.getOrderByComparator(obc));
246
247 return RepositoryModelUtil.toFileEntries(dlFileEntries);
248 }
249
250 @Override
251 public List<FileEntry> getFileEntries(
252 long folderId, int start, int end, OrderByComparator<FileEntry> obc) {
253
254 List<DLFileEntry> dlFileEntries =
255 dlFileEntryLocalService.getFileEntries(
256 getGroupId(), toFolderId(folderId), start, end,
257 DLFileEntryOrderByComparator.getOrderByComparator(obc));
258
259 return RepositoryModelUtil.toFileEntries(dlFileEntries);
260 }
261
262 @Override
263 public int getFileEntriesCount(long folderId) {
264 return dlFileEntryLocalService.getFileEntriesCount(
265 getGroupId(), toFolderId(folderId));
266 }
267
268 @Override
269 public int getFileEntriesCount(long folderId, int status) {
270 return dlFileEntryLocalService.getFileEntriesCount(
271 getGroupId(), toFolderId(folderId), status);
272 }
273
274 @Override
275 public FileEntry getFileEntry(long fileEntryId) throws PortalException {
276 DLFileEntry dlFileEntry = dlFileEntryLocalService.getFileEntry(
277 fileEntryId);
278
279 return new LiferayFileEntry(dlFileEntry);
280 }
281
282 @Override
283 public FileEntry getFileEntry(long folderId, String title)
284 throws PortalException {
285
286 DLFileEntry dlFileEntry = dlFileEntryLocalService.getFileEntry(
287 getGroupId(), toFolderId(folderId), title);
288
289 return new LiferayFileEntry(dlFileEntry);
290 }
291
292 @Override
293 public FileEntry getFileEntryByUuid(String uuid) throws PortalException {
294 DLFileEntry dlFileEntry =
295 dlFileEntryLocalService.getFileEntryByUuidAndGroupId(
296 uuid, getGroupId());
297
298 return new LiferayFileEntry(dlFileEntry);
299 }
300
301 @Override
302 public FileShortcut getFileShortcut(long fileShortcutId)
303 throws PortalException {
304
305 DLFileShortcut dlFileShortcut =
306 dlFileShortcutLocalService.getDLFileShortcut(fileShortcutId);
307
308 return new LiferayFileShortcut(dlFileShortcut);
309 }
310
311 @Override
312 public FileVersion getFileVersion(long fileVersionId)
313 throws PortalException {
314
315 DLFileVersion dlFileVersion = dlFileVersionLocalService.getFileVersion(
316 fileVersionId);
317
318 return new LiferayFileVersion(dlFileVersion);
319 }
320
321 @Override
322 public Folder getFolder(long folderId) throws PortalException {
323 DLFolder dlFolder = dlFolderLocalService.getFolder(
324 toFolderId(folderId));
325
326 return new LiferayFolder(dlFolder);
327 }
328
329 @Override
330 public Folder getFolder(long parentFolderId, String name)
331 throws PortalException {
332
333 DLFolder dlFolder = dlFolderLocalService.getFolder(
334 getGroupId(), toFolderId(parentFolderId), name);
335
336 return new LiferayFolder(dlFolder);
337 }
338
339 @Override
340 public List<FileEntry> getRepositoryFileEntries(
341 long userId, long rootFolderId, int start, int end,
342 OrderByComparator<FileEntry> obc) {
343
344 List<DLFileEntry> dlFileEntries =
345 dlFileEntryLocalService.getGroupFileEntries(
346 getGroupId(), 0, getRepositoryId(), toFolderId(rootFolderId),
347 start, end,
348 DLFileEntryOrderByComparator.getOrderByComparator(obc));
349
350 return RepositoryModelUtil.toFileEntries(dlFileEntries);
351 }
352
353 @Override
354 public FileEntry moveFileEntry(
355 long userId, long fileEntryId, long newFolderId,
356 ServiceContext serviceContext)
357 throws PortalException {
358
359 DLFileEntry dlFileEntry = dlFileEntryLocalService.moveFileEntry(
360 userId, fileEntryId, toFolderId(newFolderId), serviceContext);
361
362 return new LiferayFileEntry(dlFileEntry);
363 }
364
365 @Override
366 public Folder moveFolder(
367 long userId, long folderId, long parentFolderId,
368 ServiceContext serviceContext)
369 throws PortalException {
370
371 DLFolder dlFolder = dlFolderLocalService.moveFolder(
372 userId, toFolderId(folderId), toFolderId(parentFolderId),
373 serviceContext);
374
375 return new LiferayFolder(dlFolder);
376 }
377
378 @Override
379 public void revertFileEntry(
380 long userId, long fileEntryId, String version,
381 ServiceContext serviceContext)
382 throws PortalException {
383
384 dlFileEntryLocalService.revertFileEntry(
385 userId, fileEntryId, version, serviceContext);
386 }
387
388
391 @Deprecated
392 @Override
393 public void updateAsset(
394 long userId, FileEntry fileEntry, FileVersion fileVersion,
395 long[] assetCategoryIds, String[] assetTagNames,
396 long[] assetLinkEntryIds)
397 throws PortalException {
398
399 dlAppHelperLocalService.updateAsset(
400 userId, fileEntry, fileVersion, assetCategoryIds, assetTagNames,
401 assetLinkEntryIds);
402 }
403
404 @Override
405 public FileEntry updateFileEntry(
406 long userId, long fileEntryId, String sourceFileName,
407 String mimeType, String title, String description, String changeLog,
408 boolean majorVersion, File file, ServiceContext serviceContext)
409 throws PortalException {
410
411 long fileEntryTypeId = ParamUtil.getLong(
412 serviceContext, "fileEntryTypeId", -1L);
413
414 Map<String, DDMFormValues> ddmFormValuesMap = getDDMFormValuesMap(
415 serviceContext, fileEntryTypeId);
416
417 long size = 0;
418
419 if (file != null) {
420 size = file.length();
421 }
422
423 DLFileEntry dlFileEntry = dlFileEntryLocalService.updateFileEntry(
424 userId, fileEntryId, sourceFileName, mimeType, title, description,
425 changeLog, majorVersion, fileEntryTypeId, ddmFormValuesMap, file,
426 null, size, serviceContext);
427
428 return new LiferayFileEntry(dlFileEntry);
429 }
430
431 @Override
432 public FileEntry updateFileEntry(
433 long userId, long fileEntryId, String sourceFileName,
434 String mimeType, String title, String description, String changeLog,
435 boolean majorVersion, InputStream is, long size,
436 ServiceContext serviceContext)
437 throws PortalException {
438
439 long fileEntryTypeId = ParamUtil.getLong(
440 serviceContext, "fileEntryTypeId", -1L);
441
442 Map<String, DDMFormValues> ddmFormValuesMap = getDDMFormValuesMap(
443 serviceContext, fileEntryTypeId);
444
445 DLFileEntry dlFileEntry = dlFileEntryLocalService.updateFileEntry(
446 userId, fileEntryId, sourceFileName, mimeType, title, description,
447 changeLog, majorVersion, fileEntryTypeId, ddmFormValuesMap, null,
448 is, size, serviceContext);
449
450 return new LiferayFileEntry(dlFileEntry);
451 }
452
453 @Override
454 public FileShortcut updateFileShortcut(
455 long userId, long fileShortcutId, long folderId, long toFileEntryId,
456 ServiceContext serviceContext)
457 throws PortalException {
458
459 DLFileShortcut dlFileShortcut =
460 dlFileShortcutLocalService.updateFileShortcut(
461 userId, fileShortcutId, getRepositoryId(), toFolderId(folderId),
462 toFileEntryId, serviceContext);
463
464 return new LiferayFileShortcut(dlFileShortcut);
465 }
466
467 @Override
468 public void updateFileShortcuts(
469 long oldToFileEntryId, long newToFileEntryId) {
470
471 dlFileShortcutLocalService.updateFileShortcuts(
472 oldToFileEntryId, newToFileEntryId);
473 }
474
475 @Override
476 public Folder updateFolder(
477 long folderId, long parentFolderId, String name, String description,
478 ServiceContext serviceContext)
479 throws PortalException {
480
481 long defaultFileEntryTypeId = ParamUtil.getLong(
482 serviceContext, "defaultFileEntryTypeId");
483 SortedArrayList<Long> fileEntryTypeIds = getLongList(
484 serviceContext, "dlFileEntryTypesSearchContainerPrimaryKeys");
485 int restrictionType = ParamUtil.getInteger(
486 serviceContext, "restrictionType");
487
488 DLFolder dlFolder = dlFolderLocalService.updateFolder(
489 toFolderId(folderId), toFolderId(parentFolderId), name, description,
490 defaultFileEntryTypeId, fileEntryTypeIds, restrictionType,
491 serviceContext);
492
493 return new LiferayFolder(dlFolder);
494 }
495
496 public UnicodeProperties updateRepository(
497 UnicodeProperties typeSettingsProperties) {
498
499 return typeSettingsProperties;
500 }
501
502 }