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 checkInFileEntry(
159 long userId, long fileEntryId, boolean major, String changeLog,
160 ServiceContext serviceContext) {
161
162 throw new UnsupportedOperationException();
163 }
164
165 @Override
166 public void checkInFileEntry(
167 long userId, long fileEntryId, String lockUuid,
168 ServiceContext serviceContext) {
169
170 throw new UnsupportedOperationException();
171 }
172
173 @Override
174 public FileEntry copyFileEntry(
175 long userId, long groupId, long fileEntryId, long destFolderId,
176 ServiceContext serviceContext) {
177
178 throw new UnsupportedOperationException();
179 }
180
181 @Override
182 public void deleteAll() throws PortalException {
183 dlFolderLocalService.deleteAllByRepository(getRepositoryId());
184 }
185
186 @Override
187 public void deleteFileEntry(long fileEntryId) throws PortalException {
188 dlFileEntryLocalService.deleteFileEntry(fileEntryId);
189 }
190
191 @Override
192 public void deleteFolder(long folderId) throws PortalException {
193 DLFolder dlFolder = dlFolderLocalService.fetchFolder(folderId);
194
195 if (dlFolder != null) {
196 dlFolderLocalService.deleteFolder(folderId);
197 }
198 }
199
200 @Override
201 public FileEntry getFileEntry(long fileEntryId) throws PortalException {
202 DLFileEntry dlFileEntry = dlFileEntryLocalService.getFileEntry(
203 fileEntryId);
204
205 return new LiferayFileEntry(dlFileEntry);
206 }
207
208 @Override
209 public FileEntry getFileEntry(long folderId, String title)
210 throws PortalException {
211
212 DLFileEntry dlFileEntry = dlFileEntryLocalService.getFileEntry(
213 getGroupId(), toFolderId(folderId), title);
214
215 return new LiferayFileEntry(dlFileEntry);
216 }
217
218 @Override
219 public FileEntry getFileEntryByUuid(String uuid) throws PortalException {
220 DLFileEntry dlFileEntry =
221 dlFileEntryLocalService.getFileEntryByUuidAndGroupId(
222 uuid, getGroupId());
223
224 return new LiferayFileEntry(dlFileEntry);
225 }
226
227 @Override
228 public FileVersion getFileVersion(long fileVersionId)
229 throws PortalException {
230
231 DLFileVersion dlFileVersion = dlFileVersionLocalService.getFileVersion(
232 fileVersionId);
233
234 return new LiferayFileVersion(dlFileVersion);
235 }
236
237 @Override
238 public Folder getFolder(long folderId) throws PortalException {
239 DLFolder dlFolder = dlFolderLocalService.getFolder(
240 toFolderId(folderId));
241
242 return new LiferayFolder(dlFolder);
243 }
244
245 @Override
246 public Folder getFolder(long parentFolderId, String name)
247 throws PortalException {
248
249 DLFolder dlFolder = dlFolderLocalService.getFolder(
250 getGroupId(), toFolderId(parentFolderId), name);
251
252 return new LiferayFolder(dlFolder);
253 }
254
255 @Override
256 public List<FileEntry> getRepositoryFileEntries(
257 long userId, long rootFolderId, int start, int end,
258 OrderByComparator<FileEntry> obc) {
259
260 List<DLFileEntry> dlFileEntries =
261 dlFileEntryLocalService.getGroupFileEntries(
262 getGroupId(), 0, getRepositoryId(), toFolderId(rootFolderId),
263 start, end,
264 DLFileEntryOrderByComparator.getOrderByComparator(obc));
265
266 return RepositoryModelUtil.toFileEntries(dlFileEntries);
267 }
268
269 @Override
270 public FileEntry moveFileEntry(
271 long userId, long fileEntryId, long newFolderId,
272 ServiceContext serviceContext)
273 throws PortalException {
274
275 DLFileEntry dlFileEntry = dlFileEntryLocalService.moveFileEntry(
276 userId, fileEntryId, toFolderId(newFolderId), serviceContext);
277
278 return new LiferayFileEntry(dlFileEntry);
279 }
280
281 @Override
282 public Folder moveFolder(
283 long userId, long folderId, long parentFolderId,
284 ServiceContext serviceContext)
285 throws PortalException {
286
287 DLFolder dlFolder = dlFolderLocalService.moveFolder(
288 userId, toFolderId(folderId), toFolderId(parentFolderId),
289 serviceContext);
290
291 return new LiferayFolder(dlFolder);
292 }
293
294 @Override
295 public void revertFileEntry(
296 long userId, long fileEntryId, String version,
297 ServiceContext serviceContext) {
298
299 throw new UnsupportedOperationException();
300 }
301
302 @Override
303 public void updateAsset(
304 long userId, FileEntry fileEntry, FileVersion fileVersion,
305 long[] assetCategoryIds, String[] assetTagNames,
306 long[] assetLinkEntryIds)
307 throws PortalException {
308
309 dlAppHelperLocalService.updateAsset(
310 userId, fileEntry, fileVersion, assetCategoryIds, assetTagNames,
311 assetLinkEntryIds);
312 }
313
314 @Override
315 public FileEntry updateFileEntry(
316 long userId, long fileEntryId, String sourceFileName,
317 String mimeType, String title, String description, String changeLog,
318 boolean majorVersion, File file, ServiceContext serviceContext)
319 throws PortalException {
320
321 long fileEntryTypeId = ParamUtil.getLong(
322 serviceContext, "fileEntryTypeId", -1L);
323
324 Map<String, Fields> fieldsMap = getFieldsMap(
325 serviceContext, fileEntryTypeId);
326
327 long size = 0;
328
329 if (file != null) {
330 size = file.length();
331 }
332
333 DLFileEntry dlFileEntry = dlFileEntryLocalService.updateFileEntry(
334 userId, fileEntryId, sourceFileName, mimeType, title, description,
335 changeLog, majorVersion, fileEntryTypeId, fieldsMap, file, null,
336 size, serviceContext);
337
338 return new LiferayFileEntry(dlFileEntry);
339 }
340
341 @Override
342 public FileEntry updateFileEntry(
343 long userId, long fileEntryId, String sourceFileName,
344 String mimeType, String title, String description, String changeLog,
345 boolean majorVersion, InputStream is, long size,
346 ServiceContext serviceContext)
347 throws PortalException {
348
349 long fileEntryTypeId = ParamUtil.getLong(
350 serviceContext, "fileEntryTypeId", -1L);
351
352 Map<String, Fields> fieldsMap = getFieldsMap(
353 serviceContext, fileEntryTypeId);
354
355 DLFileEntry dlFileEntry = dlFileEntryLocalService.updateFileEntry(
356 userId, fileEntryId, sourceFileName, mimeType, title, description,
357 changeLog, majorVersion, fileEntryTypeId, fieldsMap, null, is, size,
358 serviceContext);
359
360 return new LiferayFileEntry(dlFileEntry);
361 }
362
363 @Override
364 public Folder updateFolder(
365 long folderId, long parentFolderId, String name, String description,
366 ServiceContext serviceContext)
367 throws PortalException {
368
369 long defaultFileEntryTypeId = ParamUtil.getLong(
370 serviceContext, "defaultFileEntryTypeId");
371 SortedArrayList<Long> fileEntryTypeIds = getLongList(
372 serviceContext, "dlFileEntryTypesSearchContainerPrimaryKeys");
373 int restrictionType = ParamUtil.getInteger(
374 serviceContext, "restrictionType");
375
376 DLFolder dlFolder = dlFolderLocalService.updateFolder(
377 toFolderId(folderId), toFolderId(parentFolderId), name, description,
378 defaultFileEntryTypeId, fileEntryTypeIds, restrictionType,
379 serviceContext);
380
381 return new LiferayFolder(dlFolder);
382 }
383
384 public UnicodeProperties updateRepository(
385 UnicodeProperties typeSettingsProperties) {
386
387 return typeSettingsProperties;
388 }
389
390 }