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.capabilities.ProcessorCapability;
020 import com.liferay.portal.kernel.repository.model.FileEntry;
021 import com.liferay.portal.kernel.repository.model.FileVersion;
022 import com.liferay.portal.repository.util.LocalRepositoryWrapper;
023 import com.liferay.portal.service.ServiceContext;
024
025 import java.io.File;
026 import java.io.InputStream;
027
028
031 public class LiferayProcessorLocalRepositoryWrapper
032 extends LocalRepositoryWrapper {
033
034 public LiferayProcessorLocalRepositoryWrapper(
035 LocalRepository localRepository,
036 ProcessorCapability processorCapability) {
037
038 super(localRepository);
039
040 _processorCapability = processorCapability;
041 }
042
043 @Override
044 public FileEntry addFileEntry(
045 long userId, long folderId, String sourceFileName, String mimeType,
046 String title, String description, String changeLog, File file,
047 ServiceContext serviceContext)
048 throws PortalException {
049
050 FileEntry fileEntry = super.addFileEntry(
051 userId, folderId, sourceFileName, mimeType, title, description,
052 changeLog, file, serviceContext);
053
054 _processorCapability.generateNew(fileEntry);
055
056 return fileEntry;
057 }
058
059 @Override
060 public FileEntry addFileEntry(
061 long userId, long folderId, String sourceFileName, String mimeType,
062 String title, String description, String changeLog, InputStream is,
063 long size, ServiceContext serviceContext)
064 throws PortalException {
065
066 FileEntry fileEntry = super.addFileEntry(
067 userId, folderId, sourceFileName, mimeType, title, description,
068 changeLog, is, size, serviceContext);
069
070 _processorCapability.generateNew(fileEntry);
071
072 return fileEntry;
073 }
074
075 @Override
076 public void checkInFileEntry(
077 long userId, long fileEntryId, boolean major, String changeLog,
078 ServiceContext serviceContext)
079 throws PortalException {
080
081 FileEntry fileEntry = getFileEntry(fileEntryId);
082
083 _processorCapability.cleanUp(fileEntry.getLatestFileVersion(true));
084
085 super.checkInFileEntry(
086 userId, fileEntryId, major, changeLog, serviceContext);
087
088 _processorCapability.copyPrevious(fileEntry.getFileVersion());
089 }
090
091 @Override
092 public void checkInFileEntry(
093 long userId, long fileEntryId, String lockUuid,
094 ServiceContext serviceContext)
095 throws PortalException {
096
097 FileEntry fileEntry = getFileEntry(fileEntryId);
098
099 _processorCapability.cleanUp(fileEntry.getLatestFileVersion(true));
100
101 super.checkInFileEntry(userId, fileEntryId, lockUuid, serviceContext);
102
103 _processorCapability.copyPrevious(fileEntry.getFileVersion());
104 }
105
106 @Override
107 public void deleteFileEntry(long fileEntryId) throws PortalException {
108 FileEntry fileEntry = getFileEntry(fileEntryId);
109
110 super.deleteFileEntry(fileEntryId);
111
112 _processorCapability.cleanUp(fileEntry);
113 }
114
115 @Override
116 public void revertFileEntry(
117 long userId, long fileEntryId, String version,
118 ServiceContext serviceContext)
119 throws PortalException {
120
121 super.revertFileEntry(userId, fileEntryId, version, serviceContext);
122
123 FileEntry fileEntry = getFileEntry(fileEntryId);
124
125 _processorCapability.copyPrevious(fileEntry.getFileVersion(version));
126 }
127
128 @Override
129 public FileEntry updateFileEntry(
130 long userId, long fileEntryId, String sourceFileName,
131 String mimeType, String title, String description, String changeLog,
132 boolean majorVersion, File file, ServiceContext serviceContext)
133 throws PortalException {
134
135 FileEntry fileEntry = super.updateFileEntry(
136 userId, fileEntryId, sourceFileName, mimeType, title, description,
137 changeLog, majorVersion, file, serviceContext);
138
139 _processorCapability.cleanUp(fileEntry.getLatestFileVersion(true));
140 _processorCapability.generateNew(fileEntry);
141
142 return fileEntry;
143 }
144
145 @Override
146 public FileEntry updateFileEntry(
147 long userId, long fileEntryId, String sourceFileName,
148 String mimeType, String title, String description, String changeLog,
149 boolean majorVersion, InputStream is, long size,
150 ServiceContext serviceContext)
151 throws PortalException {
152
153 FileEntry oldFileEntry = null;
154 FileVersion oldFileVersion = null;
155
156 if (is == null) {
157 oldFileEntry = getFileEntry(fileEntryId);
158 oldFileVersion = oldFileEntry.getLatestFileVersion(true);
159 }
160
161 FileEntry fileEntry = super.updateFileEntry(
162 userId, fileEntryId, sourceFileName, mimeType, title, description,
163 changeLog, majorVersion, is, size, serviceContext);
164
165 if (is == null) {
166 _processorCapability.copyPrevious(oldFileVersion);
167 }
168 else {
169 _processorCapability.cleanUp(fileEntry.getLatestFileVersion(true));
170 _processorCapability.generateNew(fileEntry);
171 }
172
173 return fileEntry;
174 }
175
176 private final ProcessorCapability _processorCapability;
177
178 }