
com.liferay.document.library.google.docs.migration.LegacyGoogleDocsMigration Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.document.library.google.docs Show documentation
Show all versions of com.liferay.document.library.google.docs Show documentation
Liferay Document Library Google Docs
The newest version!
/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.document.library.google.docs.migration;
import com.liferay.document.library.google.docs.util.GoogleDocsConstants;
import com.liferay.document.library.google.docs.util.GoogleDocsDLFileEntryTypeHelper;
import com.liferay.document.library.google.docs.util.GoogleDocsMetadataHelper;
import com.liferay.document.library.kernel.model.DLFileEntry;
import com.liferay.document.library.kernel.model.DLFileEntryType;
import com.liferay.document.library.kernel.service.DLFileEntryLocalService;
import com.liferay.document.library.kernel.service.DLFileEntryMetadataLocalService;
import com.liferay.document.library.kernel.service.DLFileEntryTypeLocalService;
import com.liferay.dynamic.data.mapping.kernel.DDMStructure;
import com.liferay.dynamic.data.mapping.service.DDMStructureLocalService;
import com.liferay.dynamic.data.mapping.storage.StorageEngine;
import com.liferay.dynamic.data.mapping.util.DDMFormValuesToFieldsConverter;
import com.liferay.dynamic.data.mapping.util.FieldsToDDMFormValuesConverter;
import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.model.Company;
import com.liferay.portal.kernel.util.SetUtil;
/**
* @author Iván Zaera
*/
public class LegacyGoogleDocsMigration {
public LegacyGoogleDocsMigration(
Company company,
DDMFormValuesToFieldsConverter ddmFormValuesToFieldsConverter,
DDMStructureLocalService ddmStructureLocalService,
DLFileEntryTypeLocalService dlFileEntryTypeLocalService,
DLFileEntryLocalService dlFileEntryLocalService,
DLFileEntryMetadataLocalService dlFileEntryMetadataLocalService,
FieldsToDDMFormValuesConverter fieldsToDDMFormValuesConverter,
GoogleDocsDLFileEntryTypeHelper googleDocsDLFileEntryTypeHelper,
StorageEngine storageEngine) {
_company = company;
_ddmFormValuesToFieldsConverter = ddmFormValuesToFieldsConverter;
_ddmStructureLocalService = ddmStructureLocalService;
_dlFileEntryTypeLocalService = dlFileEntryTypeLocalService;
_dlFileEntryLocalService = dlFileEntryLocalService;
_dlFileEntryMetadataLocalService = dlFileEntryMetadataLocalService;
_fieldsToDDMFormValuesConverter = fieldsToDDMFormValuesConverter;
_googleDocsDLFileEntryTypeHelper = googleDocsDLFileEntryTypeHelper;
_storageEngine = storageEngine;
try {
_dlFileEntryType = _dlFileEntryTypeLocalService.fetchFileEntryType(
_company.getGroupId(),
LegacyGoogleDocsConstants.DL_FILE_ENTRY_TYPE_KEY);
}
catch (PortalException pe) {
throw new SystemException(pe);
}
}
public boolean isMigrationNeeded() {
if (_dlFileEntryType == null) {
return false;
}
return true;
}
public void migrate() throws PortalException {
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_googleDocsDLFileEntryTypeHelper.addGoogleDocsDDMStructure();
_dlFileEntryType.setFileEntryTypeKey(
GoogleDocsConstants.DL_FILE_ENTRY_TYPE_KEY);
_dlFileEntryType = _dlFileEntryTypeLocalService.updateDLFileEntryType(
_dlFileEntryType);
_dlFileEntryTypeLocalService.addDDMStructureLinks(
_dlFileEntryType.getFileEntryTypeId(),
SetUtil.fromArray(new long[] {ddmStructure.getStructureId()}));
upgradeDLFileEntries();
deleteLegacyGoogleDocsDDMStructureFields();
}
protected void deleteLegacyGoogleDocsDDMStructureFields()
throws PortalException {
DDMStructure legacyDDMStructure =
LegacyGoogleDocsMetadataHelper.getGoogleDocsDDMStructure(
_dlFileEntryType);
String definition = legacyDDMStructure.getDefinition();
definition = definition.replaceAll(
"(?s)]*>.*? ", "");
com.liferay.dynamic.data.mapping.model.DDMStructure ddmStructure =
_ddmStructureLocalService.getDDMStructure(
legacyDDMStructure.getStructureId());
ddmStructure.setDefinition(definition);
_ddmStructureLocalService.updateDDMStructure(ddmStructure);
}
protected void upgradeDLFileEntries() throws PortalException {
ActionableDynamicQuery actionableDynamicQuery =
_dlFileEntryLocalService.getActionableDynamicQuery();
actionableDynamicQuery.setPerformActionMethod(
new ActionableDynamicQuery.PerformActionMethod() {
@Override
public void performAction(DLFileEntry dlFileEntry) {
GoogleDocsMetadataHelper googleDocsMetadataHelper =
new GoogleDocsMetadataHelper(
_ddmFormValuesToFieldsConverter,
_ddmStructureLocalService, dlFileEntry,
_dlFileEntryMetadataLocalService,
_fieldsToDDMFormValuesConverter, _storageEngine);
LegacyGoogleDocsMetadataHelper
legacyGoogleDocsMetadataHelper =
new LegacyGoogleDocsMetadataHelper(
_ddmFormValuesToFieldsConverter,
_ddmStructureLocalService, dlFileEntry,
_storageEngine);
googleDocsMetadataHelper.setFieldValue(
GoogleDocsConstants.DDM_FIELD_NAME_EMBEDDABLE_URL,
legacyGoogleDocsMetadataHelper.getFieldValue(
LegacyGoogleDocsConstants.DDM_FIELD_NAME_VIEW_URL));
googleDocsMetadataHelper.setFieldValue(
GoogleDocsConstants.DDM_FIELD_NAME_ICON_URL,
legacyGoogleDocsMetadataHelper.getFieldValue(
LegacyGoogleDocsConstants.DDM_FIELD_NAME_ICON_URL));
googleDocsMetadataHelper.setFieldValue(
GoogleDocsConstants.DDM_FIELD_NAME_ID,
legacyGoogleDocsMetadataHelper.getFieldValue(
LegacyGoogleDocsConstants.DDM_FIELD_NAME_ID));
googleDocsMetadataHelper.setFieldValue(
GoogleDocsConstants.DDM_FIELD_NAME_NAME,
legacyGoogleDocsMetadataHelper.getFieldValue(
LegacyGoogleDocsConstants.DDM_FIELD_NAME_NAME));
googleDocsMetadataHelper.setFieldValue(
GoogleDocsConstants.DDM_FIELD_NAME_URL,
legacyGoogleDocsMetadataHelper.getFieldValue(
LegacyGoogleDocsConstants.DDM_FIELD_NAME_EDIT_URL));
googleDocsMetadataHelper.update();
legacyGoogleDocsMetadataHelper.delete();
}
});
actionableDynamicQuery.performActions();
}
private final Company _company;
private final DDMFormValuesToFieldsConverter
_ddmFormValuesToFieldsConverter;
private final DDMStructureLocalService _ddmStructureLocalService;
private final DLFileEntryLocalService _dlFileEntryLocalService;
private final DLFileEntryMetadataLocalService
_dlFileEntryMetadataLocalService;
private DLFileEntryType _dlFileEntryType;
private final DLFileEntryTypeLocalService _dlFileEntryTypeLocalService;
private final FieldsToDDMFormValuesConverter
_fieldsToDDMFormValuesConverter;
private final GoogleDocsDLFileEntryTypeHelper
_googleDocsDLFileEntryTypeHelper;
private final StorageEngine _storageEngine;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy