001
014
015 package com.liferay.portal.repository.capabilities;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.repository.LocalRepository;
019 import com.liferay.portal.kernel.repository.capabilities.SyncCapability;
020 import com.liferay.portal.kernel.repository.event.RepositoryEventTrigger;
021 import com.liferay.portal.kernel.repository.event.RepositoryEventType;
022 import com.liferay.portal.kernel.repository.model.FileEntry;
023 import com.liferay.portal.kernel.repository.model.FileVersion;
024 import com.liferay.portal.kernel.repository.model.Folder;
025 import com.liferay.portal.kernel.util.OrderByComparator;
026 import com.liferay.portal.service.ServiceContext;
027
028 import java.io.File;
029 import java.io.InputStream;
030
031 import java.util.List;
032
033
036 public class CapabilityLocalRepository
037 extends BaseCapabilityRepository<LocalRepository>
038 implements LocalRepository {
039
040 public CapabilityLocalRepository(
041 LocalRepository localRepository,
042 RepositoryEventTrigger repositoryEventTrigger) {
043
044 super(localRepository);
045
046 _repositoryEventTrigger = repositoryEventTrigger;
047 }
048
049 @Override
050 public FileEntry addFileEntry(
051 long userId, long folderId, String sourceFileName, String mimeType,
052 String title, String description, String changeLog, File file,
053 ServiceContext serviceContext)
054 throws PortalException {
055
056 LocalRepository localRepository = getRepository();
057
058 FileEntry fileEntry = localRepository.addFileEntry(
059 userId, folderId, sourceFileName, mimeType, title, description,
060 changeLog, file, serviceContext);
061
062 _repositoryEventTrigger.trigger(
063 RepositoryEventType.Add.class, FileEntry.class, fileEntry);
064
065 return fileEntry;
066 }
067
068 @Override
069 public FileEntry addFileEntry(
070 long userId, long folderId, String sourceFileName, String mimeType,
071 String title, String description, String changeLog, InputStream is,
072 long size, ServiceContext serviceContext)
073 throws PortalException {
074
075 LocalRepository localRepository = getRepository();
076
077 FileEntry fileEntry = localRepository.addFileEntry(
078 userId, folderId, sourceFileName, mimeType, title, description,
079 changeLog, is, size, serviceContext);
080
081 _repositoryEventTrigger.trigger(
082 RepositoryEventType.Add.class, FileEntry.class, fileEntry);
083
084 return fileEntry;
085 }
086
087 @Override
088 public Folder addFolder(
089 long userId, long parentFolderId, String name, String description,
090 ServiceContext serviceContext)
091 throws PortalException {
092
093 LocalRepository localRepository = getRepository();
094
095 Folder folder = localRepository.addFolder(
096 userId, parentFolderId, name, description, serviceContext);
097
098 _repositoryEventTrigger.trigger(
099 RepositoryEventType.Add.class, Folder.class, folder);
100
101 return folder;
102 }
103
104 @Override
105 public void deleteAll() throws PortalException {
106 LocalRepository localRepository = getRepository();
107
108 _repositoryEventTrigger.trigger(
109 RepositoryEventType.Delete.class, LocalRepository.class,
110 localRepository);
111
112 SyncCapability syncCapability = getInternalCapability(
113 SyncCapability.class);
114
115 if (syncCapability != null) {
116 syncCapability.destroyLocalRepository(this);
117 }
118
119 localRepository.deleteAll();
120 }
121
122 @Override
123 public void deleteFileEntry(long fileEntryId) throws PortalException {
124 LocalRepository localRepository = getRepository();
125
126 FileEntry fileEntry = localRepository.getFileEntry(fileEntryId);
127
128 _repositoryEventTrigger.trigger(
129 RepositoryEventType.Delete.class, FileEntry.class, fileEntry);
130
131 localRepository.deleteFileEntry(fileEntryId);
132 }
133
134 @Override
135 public void deleteFolder(long folderId) throws PortalException {
136 LocalRepository localRepository = getRepository();
137
138 Folder folder = localRepository.getFolder(folderId);
139
140 _repositoryEventTrigger.trigger(
141 RepositoryEventType.Delete.class, Folder.class, folder);
142
143 localRepository.deleteFolder(folderId);
144 }
145
146 @Override
147 public FileEntry getFileEntry(long fileEntryId) throws PortalException {
148 return getRepository().getFileEntry(fileEntryId);
149 }
150
151 @Override
152 public FileEntry getFileEntry(long folderId, String title)
153 throws PortalException {
154
155 return getRepository().getFileEntry(folderId, title);
156 }
157
158 @Override
159 public FileEntry getFileEntryByUuid(String uuid) throws PortalException {
160 return getRepository().getFileEntryByUuid(uuid);
161 }
162
163 @Override
164 public FileVersion getFileVersion(long fileVersionId)
165 throws PortalException {
166
167 return getRepository().getFileVersion(fileVersionId);
168 }
169
170 @Override
171 public Folder getFolder(long folderId) throws PortalException {
172 return getRepository().getFolder(folderId);
173 }
174
175 @Override
176 public Folder getFolder(long parentFolderId, String name)
177 throws PortalException {
178
179 return getRepository().getFolder(parentFolderId, name);
180 }
181
182 @Override
183 public List<FileEntry> getRepositoryFileEntries(
184 long rootFolderId, int start, int end,
185 OrderByComparator<FileEntry> obc)
186 throws PortalException {
187
188 return getRepository().getRepositoryFileEntries(
189 rootFolderId, start, end, obc);
190 }
191
192 @Override
193 public long getRepositoryId() {
194 return getRepository().getRepositoryId();
195 }
196
197 @Override
198 public FileEntry moveFileEntry(
199 long userId, long fileEntryId, long newFolderId,
200 ServiceContext serviceContext)
201 throws PortalException {
202
203 LocalRepository localRepository = getRepository();
204
205 FileEntry fileEntry = localRepository.moveFileEntry(
206 userId, fileEntryId, newFolderId, serviceContext);
207
208 _repositoryEventTrigger.trigger(
209 RepositoryEventType.Move.class, FileEntry.class, fileEntry);
210
211 return fileEntry;
212 }
213
214 @Override
215 public Folder moveFolder(
216 long userId, long folderId, long parentFolderId,
217 ServiceContext serviceContext)
218 throws PortalException {
219
220 LocalRepository localRepository = getRepository();
221
222 Folder folder = localRepository.moveFolder(
223 userId, folderId, parentFolderId, serviceContext);
224
225 _repositoryEventTrigger.trigger(
226 RepositoryEventType.Move.class, Folder.class, folder);
227
228 return folder;
229 }
230
231 @Override
232 public void updateAsset(
233 long userId, FileEntry fileEntry, FileVersion fileVersion,
234 long[] assetCategoryIds, String[] assetTagNames,
235 long[] assetLinkEntryIds)
236 throws PortalException {
237
238 getRepository().updateAsset(
239 userId, fileEntry, fileVersion, assetCategoryIds, assetTagNames,
240 assetLinkEntryIds);
241 }
242
243 @Override
244 public FileEntry updateFileEntry(
245 long userId, long fileEntryId, String sourceFileName,
246 String mimeType, String title, String description, String changeLog,
247 boolean majorVersion, File file, ServiceContext serviceContext)
248 throws PortalException {
249
250 LocalRepository localRepository = getRepository();
251
252 FileEntry fileEntry = localRepository.updateFileEntry(
253 userId, fileEntryId, sourceFileName, mimeType, title, description,
254 changeLog, majorVersion, file, serviceContext);
255
256 _repositoryEventTrigger.trigger(
257 RepositoryEventType.Update.class, FileEntry.class, fileEntry);
258
259 return fileEntry;
260 }
261
262 @Override
263 public FileEntry updateFileEntry(
264 long userId, long fileEntryId, String sourceFileName,
265 String mimeType, String title, String description, String changeLog,
266 boolean majorVersion, InputStream is, long size,
267 ServiceContext serviceContext)
268 throws PortalException {
269
270 LocalRepository localRepository = getRepository();
271
272 FileEntry fileEntry = localRepository.updateFileEntry(
273 userId, fileEntryId, sourceFileName, mimeType, title, description,
274 changeLog, majorVersion, is, size, serviceContext);
275
276 _repositoryEventTrigger.trigger(
277 RepositoryEventType.Update.class, FileEntry.class, fileEntry);
278
279 return fileEntry;
280 }
281
282 @Override
283 public Folder updateFolder(
284 long folderId, long parentFolderId, String name, String description,
285 ServiceContext serviceContext)
286 throws PortalException {
287
288 LocalRepository localRepository = getRepository();
289
290 Folder folder = localRepository.updateFolder(
291 folderId, parentFolderId, name, description, serviceContext);
292
293 _repositoryEventTrigger.trigger(
294 RepositoryEventType.Update.class, Folder.class, folder);
295
296 return folder;
297 }
298
299 private final RepositoryEventTrigger _repositoryEventTrigger;
300
301 }