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