Example usage for com.liferay.portal.kernel.util GroupThreadLocal isDeleteInProcess

List of usage examples for com.liferay.portal.kernel.util GroupThreadLocal isDeleteInProcess

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util GroupThreadLocal isDeleteInProcess.

Prototype

public static boolean isDeleteInProcess() 

Source Link

Usage

From source file:com.liferay.dynamic.data.mapping.service.impl.DDMDataProviderInstanceLocalServiceImpl.java

License:Open Source License

@Override
public void deleteDataProviderInstance(DDMDataProviderInstance dataProviderInstance) throws PortalException {

    if (!GroupThreadLocal.isDeleteInProcess()) {
        if (ddmDataProviderInstanceLinkPersistence
                .countByDataProviderInstanceId(dataProviderInstance.getDataProviderInstanceId()) > 0) {

            throw new RequiredDataProviderInstanceException.MustNotDeleteDataProviderInstanceReferencedByDataProviderInstanceLinks(
                    dataProviderInstance.getDataProviderInstanceId());
        }/*from  w  w w .j a  va  2 s .  co m*/
    }

    // Data provider instance

    ddmDataProviderInstancePersistence.remove(dataProviderInstance);

    // Resources

    resourceLocalService.deleteResource(dataProviderInstance.getCompanyId(),
            DDMDataProviderInstance.class.getName(), ResourceConstants.SCOPE_INDIVIDUAL,
            dataProviderInstance.getDataProviderInstanceId());
}

From source file:com.liferay.dynamic.data.mapping.service.impl.DDMStructureLocalServiceImpl.java

License:Open Source License

/**
 * Deletes the structure and its resources.
 *
 * <p>/*from  w w  w.  ja  v a2s  . com*/
 * Before deleting the structure, this method verifies whether the structure
 * is required by another entity. If it is needed, an exception is thrown.
 * </p>
 *
 * @param structure the structure to be deleted
 */
@Override
@SystemEvent(type = SystemEventConstants.TYPE_DELETE)
public void deleteStructure(DDMStructure structure) throws PortalException {
    if (!GroupThreadLocal.isDeleteInProcess()) {
        if (ddmStructureLinkPersistence.countByStructureId(structure.getStructureId()) > 0) {

            throw new RequiredStructureException.MustNotDeleteStructureReferencedByStructureLinks(
                    structure.getStructureId());
        }

        if (ddmStructurePersistence.countByParentStructureId(structure.getStructureId()) > 0) {

            throw new RequiredStructureException.MustNotDeleteStructureThatHasChild(structure.getStructureId());
        }

        if (ddmTemplatePersistence.countByClassPK(structure.getStructureId()) > 0) {

            throw new RequiredStructureException.MustNotDeleteStructureReferencedByTemplates(
                    structure.getStructureId());
        }
    }

    // Structure

    ddmStructurePersistence.remove(structure);

    // Data provider instance links

    ddmDataProviderInstanceLinkPersistence.removeByStructureId(structure.getStructureId());

    // Structure links

    ddmStructureLinkPersistence.removeByStructureId(structure.getStructureId());

    // Structure versions

    List<DDMStructureVersion> structureVersions = ddmStructureVersionLocalService
            .getStructureVersions(structure.getStructureId());

    for (DDMStructureVersion structureVersion : structureVersions) {
        ddmStructureLayoutPersistence.removeByStructureVersionId(structureVersion.getStructureVersionId());

        ddmStructureVersionPersistence.remove(structureVersion);
    }

    // Resources

    String resourceName = DDMStructurePermission.getStructureModelResourceName(structure.getClassName());

    resourceLocalService.deleteResource(structure.getCompanyId(), resourceName,
            ResourceConstants.SCOPE_INDIVIDUAL, structure.getStructureId());

    // Background tasks

    String backgroundTaskName = DDMStructureIndexerBackgroundTaskExecutor
            .getBackgroundTaskName(structure.getStructureId());

    backgroundTaskmanager.deleteGroupBackgroundTasks(structure.getGroupId(), backgroundTaskName,
            DDMStructureIndexerBackgroundTaskExecutor.class.getName());
}

From source file:com.liferay.dynamic.data.mapping.service.impl.DDMStructureLocalServiceImpl.java

License:Open Source License

protected Set<Long> deleteStructures(List<DDMStructure> structures) throws PortalException {

    if (ListUtil.isEmpty(structures)) {
        return Collections.emptySet();
    }//from  w  w w  . j  a va  2s .c  om

    Set<Long> deletedStructureIds = new HashSet<>();

    for (DDMStructure structure : structures) {
        if (deletedStructureIds.contains(structure.getStructureId())) {
            continue;
        }

        if (!GroupThreadLocal.isDeleteInProcess()) {
            List<DDMStructure> childDDMStructures = ddmStructurePersistence
                    .findByParentStructureId(structure.getStructureId());

            deletedStructureIds.addAll(deleteStructures(childDDMStructures));
        }

        ddmStructureLocalService.deleteStructure(structure);

        deletedStructureIds.add(structure.getStructureId());
    }

    return deletedStructureIds;
}