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