001
014
015 package com.liferay.portlet.documentlibrary.service.impl;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.service.ServiceContext;
019 import com.liferay.portlet.documentlibrary.model.DLFileEntryMetadata;
020 import com.liferay.portlet.documentlibrary.model.DLFileEntryType;
021 import com.liferay.portlet.documentlibrary.service.base.DLFileEntryMetadataLocalServiceBaseImpl;
022 import com.liferay.portlet.dynamicdatamapping.StorageException;
023 import com.liferay.portlet.dynamicdatamapping.model.DDMStructure;
024 import com.liferay.portlet.dynamicdatamapping.storage.Fields;
025 import com.liferay.portlet.dynamicdatamapping.storage.StorageEngineUtil;
026
027 import java.util.List;
028 import java.util.Map;
029
030
033 public class DLFileEntryMetadataLocalServiceImpl
034 extends DLFileEntryMetadataLocalServiceBaseImpl {
035
036 @Override
037 public void deleteFileEntryMetadata(long fileEntryId)
038 throws PortalException {
039
040 List<DLFileEntryMetadata> fileEntryMetadatas =
041 dlFileEntryMetadataPersistence.findByFileEntryId(fileEntryId);
042
043 for (DLFileEntryMetadata fileEntryMetadata : fileEntryMetadatas) {
044 deleteFileEntryMetadata(fileEntryMetadata);
045 }
046 }
047
048 @Override
049 public void deleteFileVersionFileEntryMetadata(long fileVersionId)
050 throws PortalException {
051
052 List<DLFileEntryMetadata> fileEntryMetadatas =
053 dlFileEntryMetadataPersistence.findByFileVersionId(fileVersionId);
054
055 for (DLFileEntryMetadata fileEntryMetadata : fileEntryMetadatas) {
056 deleteFileEntryMetadata(fileEntryMetadata);
057 }
058 }
059
060 @Override
061 public DLFileEntryMetadata fetchFileEntryMetadata(
062 long fileEntryMetadataId) {
063
064 return dlFileEntryMetadataPersistence.fetchByPrimaryKey(
065 fileEntryMetadataId);
066 }
067
068 @Override
069 public DLFileEntryMetadata fetchFileEntryMetadata(
070 long ddmStructureId, long fileVersionId) {
071
072 return dlFileEntryMetadataPersistence.fetchByD_F(
073 ddmStructureId, fileVersionId);
074 }
075
076 @Override
077 public DLFileEntryMetadata getFileEntryMetadata(long fileEntryMetadataId)
078 throws PortalException {
079
080 return dlFileEntryMetadataPersistence.findByPrimaryKey(
081 fileEntryMetadataId);
082 }
083
084 @Override
085 public DLFileEntryMetadata getFileEntryMetadata(
086 long ddmStructureId, long fileVersionId)
087 throws PortalException {
088
089 return dlFileEntryMetadataPersistence.findByD_F(
090 ddmStructureId, fileVersionId);
091 }
092
093
097 @Deprecated
098 @Override
099 public long getFileEntryMetadataCount(
100 long fileEntryId, long fileVersionId) {
101
102 return getFileVersionFileEntryMetadatasCount(fileVersionId);
103 }
104
105 @Override
106 public List<DLFileEntryMetadata> getFileVersionFileEntryMetadatas(
107 long fileVersionId) {
108
109 return dlFileEntryMetadataPersistence.findByFileVersionId(
110 fileVersionId);
111 }
112
113 @Override
114 public long getFileVersionFileEntryMetadatasCount(long fileVersionId) {
115 return dlFileEntryMetadataPersistence.countByFileVersionId(
116 fileVersionId);
117 }
118
119 @Override
120 public List<DLFileEntryMetadata>
121 getMismatchedCompanyIdFileEntryMetadatas() {
122
123 return dlFileEntryMetadataFinder.findByMismatchedCompanyId();
124 }
125
126 @Override
127 public List<DLFileEntryMetadata> getNoStructuresFileEntryMetadatas() {
128 return dlFileEntryMetadataFinder.findByNoStructures();
129 }
130
131 @Override
132 public void updateFileEntryMetadata(
133 long companyId, List<DDMStructure> ddmStructures,
134 long fileEntryTypeId, long fileEntryId, long fileVersionId,
135 Map<String, Fields> fieldsMap, ServiceContext serviceContext)
136 throws PortalException {
137
138 for (DDMStructure ddmStructure : ddmStructures) {
139 Fields fields = fieldsMap.get(ddmStructure.getStructureKey());
140
141 if (fields != null) {
142 updateFileEntryMetadata(
143 companyId, ddmStructure, fileEntryTypeId, fileEntryId,
144 fileVersionId, fields, serviceContext);
145 }
146 }
147 }
148
149 @Override
150 public void updateFileEntryMetadata(
151 long fileEntryTypeId, long fileEntryId, long fileVersionId,
152 Map<String, Fields> fieldsMap, ServiceContext serviceContext)
153 throws PortalException {
154
155 DLFileEntryType fileEntryType =
156 dlFileEntryTypeLocalService.getFileEntryType(fileEntryTypeId);
157
158 List<DDMStructure> ddmStructures = fileEntryType.getDDMStructures();
159
160 updateFileEntryMetadata(
161 fileEntryType.getCompanyId(), ddmStructures, fileEntryTypeId,
162 fileEntryId, fileVersionId, fieldsMap, serviceContext);
163 }
164
165 protected void deleteFileEntryMetadata(
166 DLFileEntryMetadata fileEntryMetadata)
167 throws PortalException {
168
169
170
171 dlFileEntryMetadataPersistence.remove(fileEntryMetadata);
172
173
174
175 StorageEngineUtil.deleteByClass(fileEntryMetadata.getDDMStorageId());
176
177
178
179 ddmStructureLinkLocalService.deleteClassStructureLink(
180 fileEntryMetadata.getFileEntryMetadataId());
181 }
182
183 protected void updateFileEntryMetadata(
184 long companyId, DDMStructure ddmStructure, long fileEntryTypeId,
185 long fileEntryId, long fileVersionId, Fields fields,
186 ServiceContext serviceContext)
187 throws StorageException {
188
189 DLFileEntryMetadata fileEntryMetadata =
190 dlFileEntryMetadataPersistence.fetchByD_F(
191 ddmStructure.getStructureId(), fileVersionId);
192
193 if (fileEntryMetadata != null) {
194 StorageEngineUtil.update(
195 fileEntryMetadata.getDDMStorageId(), fields, true,
196 serviceContext);
197 }
198 else {
199
200
201
202 long fileEntryMetadataId = counterLocalService.increment();
203
204 fileEntryMetadata = dlFileEntryMetadataPersistence.create(
205 fileEntryMetadataId);
206
207 long ddmStorageId = StorageEngineUtil.create(
208 companyId, ddmStructure.getStructureId(), fields,
209 serviceContext);
210
211 fileEntryMetadata.setDDMStorageId(ddmStorageId);
212
213 fileEntryMetadata.setDDMStructureId(ddmStructure.getStructureId());
214 fileEntryMetadata.setFileEntryTypeId(fileEntryTypeId);
215 fileEntryMetadata.setFileEntryId(fileEntryId);
216 fileEntryMetadata.setFileVersionId(fileVersionId);
217
218 dlFileEntryMetadataPersistence.update(fileEntryMetadata);
219
220
221
222 long classNameId = classNameLocalService.getClassNameId(
223 DLFileEntryMetadata.class);
224
225 ddmStructureLinkLocalService.addStructureLink(
226 classNameId, fileEntryMetadata.getFileEntryMetadataId(),
227 ddmStructure.getStructureId(), serviceContext);
228 }
229 }
230
231 }