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.DDMFormValues;
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, long fileEntryId,
134 long fileVersionId, Map<String, DDMFormValues> ddmFormValuesMap,
135 ServiceContext serviceContext)
136 throws PortalException {
137
138 for (DDMStructure ddmStructure : ddmStructures) {
139 DDMFormValues ddmFormValues = ddmFormValuesMap.get(
140 ddmStructure.getStructureKey());
141
142 if (ddmFormValues != null) {
143 updateFileEntryMetadata(
144 companyId, ddmStructure, fileEntryId, fileVersionId,
145 ddmFormValues, serviceContext);
146 }
147 }
148 }
149
150 @Override
151 public void updateFileEntryMetadata(
152 long fileEntryTypeId, long fileEntryId, long fileVersionId,
153 Map<String, DDMFormValues> ddmFormValuesMap,
154 ServiceContext serviceContext)
155 throws PortalException {
156
157 DLFileEntryType fileEntryType =
158 dlFileEntryTypeLocalService.getFileEntryType(fileEntryTypeId);
159
160 List<DDMStructure> ddmStructures = fileEntryType.getDDMStructures();
161
162 updateFileEntryMetadata(
163 fileEntryType.getCompanyId(), ddmStructures, fileEntryId,
164 fileVersionId, ddmFormValuesMap, serviceContext);
165 }
166
167 protected void deleteFileEntryMetadata(
168 DLFileEntryMetadata fileEntryMetadata)
169 throws PortalException {
170
171
172
173 dlFileEntryMetadataPersistence.remove(fileEntryMetadata);
174
175
176
177 StorageEngineUtil.deleteByClass(fileEntryMetadata.getDDMStorageId());
178
179
180
181 long classNameId = classNameLocalService.getClassNameId(
182 DLFileEntryMetadata.class);
183
184 ddmStructureLinkLocalService.deleteStructureLinks(
185 classNameId, fileEntryMetadata.getFileEntryMetadataId());
186 }
187
188 protected void updateFileEntryMetadata(
189 long companyId, DDMStructure ddmStructure, long fileEntryId,
190 long fileVersionId, DDMFormValues ddmFormValues,
191 ServiceContext serviceContext)
192 throws StorageException {
193
194 DLFileEntryMetadata fileEntryMetadata =
195 dlFileEntryMetadataPersistence.fetchByD_F(
196 ddmStructure.getStructureId(), fileVersionId);
197
198 if (fileEntryMetadata != null) {
199 StorageEngineUtil.update(
200 fileEntryMetadata.getDDMStorageId(), ddmFormValues,
201 serviceContext);
202 }
203 else {
204
205
206
207 long fileEntryMetadataId = counterLocalService.increment();
208
209 fileEntryMetadata = dlFileEntryMetadataPersistence.create(
210 fileEntryMetadataId);
211
212 long ddmStorageId = StorageEngineUtil.create(
213 companyId, ddmStructure.getStructureId(), ddmFormValues,
214 serviceContext);
215
216 fileEntryMetadata.setDDMStorageId(ddmStorageId);
217
218 fileEntryMetadata.setDDMStructureId(ddmStructure.getStructureId());
219 fileEntryMetadata.setFileEntryId(fileEntryId);
220 fileEntryMetadata.setFileVersionId(fileVersionId);
221
222 dlFileEntryMetadataPersistence.update(fileEntryMetadata);
223
224
225
226 long classNameId = classNameLocalService.getClassNameId(
227 DLFileEntryMetadata.class);
228
229 ddmStructureLinkLocalService.addStructureLink(
230 classNameId, fileEntryMetadata.getFileEntryMetadataId(),
231 ddmStructure.getStructureId());
232 }
233 }
234
235 }