protected void cascadeFileEntryTypes( long userId, long groupId, long folderId, long defaultFileEntryTypeId, List<Long> fileEntryTypeIds, ServiceContext serviceContext) throws PortalException { List<DLFileEntry> dlFileEntries = dlFileEntryPersistence.findByG_F(groupId, folderId); for (DLFileEntry dlFileEntry : dlFileEntries) { Long fileEntryTypeId = dlFileEntry.getFileEntryTypeId(); if (fileEntryTypeIds.contains(fileEntryTypeId)) { continue; } DLFileVersion dlFileVersion = dlFileVersionLocalService.getLatestFileVersion(dlFileEntry.getFileEntryId(), true); if (dlFileVersion.isPending()) { workflowInstanceLinkLocalService.deleteWorkflowInstanceLink( dlFileVersion.getCompanyId(), groupId, DLFileEntry.class.getName(), dlFileVersion.getFileVersionId()); } dlFileEntryLocalService.updateFileEntryType( userId, dlFileEntry.getFileEntryId(), defaultFileEntryTypeId, serviceContext); dlAppHelperLocalService.updateAsset( userId, new LiferayFileEntry(dlFileEntry), new LiferayFileVersion(dlFileVersion), serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds()); } List<DLFolder> subFolders = dlFolderPersistence.findByG_M_P_H(groupId, false, folderId, false); for (DLFolder subFolder : subFolders) { long subFolderId = subFolder.getFolderId(); if (subFolder.getRestrictionType() == DLFolderConstants.RESTRICTION_TYPE_INHERIT) { continue; } cascadeFileEntryTypes( userId, groupId, subFolderId, defaultFileEntryTypeId, fileEntryTypeIds, serviceContext); } }
protected long getFileEntryTypesPrimaryFolderId(long folderId) throws NoSuchFolderException { while (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { DLFolder dlFolder = dlFolderPersistence.findByPrimaryKey(folderId); if (dlFolder.getRestrictionType() == DLFolderConstants.RESTRICTION_TYPE_FILE_ENTRY_TYPES_AND_WORKFLOW) { break; } folderId = dlFolder.getParentFolderId(); } return folderId; }