package blade.migrate.liferay70; import java.util.Map; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.service.ServiceContext; import com.liferay.portal.util.PortalUtil; import com.liferay.portlet.documentlibrary.model.DLFileEntryMetadata; import com.liferay.portlet.dynamicdatamapping.StorageException; import com.liferay.portlet.dynamicdatamapping.model.DDMStructure; import com.liferay.portlet.dynamicdatamapping.storage.Field; import com.liferay.portlet.dynamicdatamapping.storage.Fields; import com.liferay.portlet.dynamicdatamapping.storage.StorageEngineUtil; public class StorageAdapterCreateUpdateMethodsTest { protected void updateFieldValues(long storageId, Map<String, String> fieldValues) throws Exception { Fields fields = new Fields(); for (Map.Entry<String, String> entry : fieldValues.entrySet()) { Field field = new Field(storageId, entry.getKey(), entry.getValue()); fields.put(field); } ServiceContext serviceContext = new ServiceContext(); StorageEngineUtil.update(storageId, fields, true, serviceContext); } protected void updateFieldValues(long storageId, Map<String, String> fieldValues) throws Exception { Fields fields = new Fields(); for (Map.Entry<String, String> entry : fieldValues.entrySet()) { Field field = new Field(storageId, entry.getKey(), entry.getValue()); fields.put(field); } ServiceContext serviceContext = new ServiceContext(); StorageEngineUtil.update(storageId, fields, serviceContext); } protected void updateFileEntryMetadata( long companyId, DDMStructure ddmStructure, long fileEntryTypeId, long fileEntryId, long fileVersionId, Fields fields, ServiceContext serviceContext) throws StorageException, SystemException { DLFileEntryMetadata fileEntryMetadata = dlFileEntryMetadataPersistence.fetchByD_F( ddmStructure.getStructureId(), fileVersionId); if (fileEntryMetadata != null) { StorageEngineUtil.update( fileEntryMetadata.getDDMStorageId(), fields, true, serviceContext); } else { // File entry metadata long fileEntryMetadataId = counterLocalService.increment(); fileEntryMetadata = dlFileEntryMetadataPersistence.create( fileEntryMetadataId); long ddmStorageId = StorageEngineUtil.create( companyId, ddmStructure.getStructureId(), fields, serviceContext); fileEntryMetadata.setDDMStorageId(ddmStorageId); fileEntryMetadata.setDDMStructureId(ddmStructure.getStructureId()); fileEntryMetadata.setFileEntryTypeId(fileEntryTypeId); fileEntryMetadata.setFileEntryId(fileEntryId); fileEntryMetadata.setFileVersionId(fileVersionId); dlFileEntryMetadataPersistence.update(fileEntryMetadata); // Dynamic data mapping structure link long classNameId = PortalUtil.getClassNameId( DLFileEntryMetadata.class); ddmStructureLinkLocalService.addStructureLink( classNameId, fileEntryMetadata.getFileEntryMetadataId(), ddmStructure.getStructureId(), serviceContext); } } }