Example usage for com.liferay.portal.kernel.repository.model FileEntry isInTrash

List of usage examples for com.liferay.portal.kernel.repository.model FileEntry isInTrash

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.repository.model FileEntry isInTrash.

Prototype

public boolean isInTrash();

Source Link

Usage

From source file:blade.document.action.configurationicon.BladeActionConfigurationIcon.java

License:Apache License

private FileEntry _retrieveFile(HttpServletRequest request) {
    try {//from ww w  .ja  v a2  s  .c  om
        long fileEntryId = ParamUtil.getLong(request, "fileEntryId");

        FileEntry fileEntry = null;

        if (fileEntryId > 0) {
            fileEntry = _dlAppService.getFileEntry(fileEntryId);
        }

        if (fileEntry == null) {
            return null;
        }

        String cmd = ParamUtil.getString(request, Constants.CMD);

        if (fileEntry.isInTrash() && !cmd.equals(Constants.MOVE_FROM_TRASH)) {

            return null;
        }

        return fileEntry;
    } catch (PortalException pe) {
        _log.error(pe);

        return null;
    }
}

From source file:com.liferay.document.library.internal.exportimport.data.handler.FileEntryStagedModelDataHandler.java

License:Open Source License

@Override
public String getDisplayName(FileEntry fileEntry) {
    if (fileEntry.isInTrash()) {
        return TrashUtil.getOriginalTitle(fileEntry.getTitle());
    }/*www  .jav a2 s.  co m*/

    return fileEntry.getTitle();
}

From source file:com.liferay.document.library.internal.exportimport.data.handler.FileEntryStagedModelDataHandler.java

License:Open Source License

@Override
protected void doImportStagedModel(PortletDataContext portletDataContext, FileEntry fileEntry)
        throws Exception {

    long userId = portletDataContext.getUserId(fileEntry.getUserUuid());

    if (!fileEntry.isDefaultRepository()) {

        // References has been automatically imported, nothing to do here

        return;/*w ww  . j a va 2s  .c  o  m*/
    }

    Map<Long, Long> folderIds = (Map<Long, Long>) portletDataContext.getNewPrimaryKeysMap(Folder.class);

    long folderId = MapUtil.getLong(folderIds, fileEntry.getFolderId(), fileEntry.getFolderId());

    long[] assetCategoryIds = portletDataContext.getAssetCategoryIds(DLFileEntry.class,
            fileEntry.getFileEntryId());
    String[] assetTagNames = portletDataContext.getAssetTagNames(DLFileEntry.class, fileEntry.getFileEntryId());

    ServiceContext serviceContext = portletDataContext.createServiceContext(fileEntry, DLFileEntry.class);

    serviceContext.setAttribute("sourceFileName", "A." + fileEntry.getExtension());
    serviceContext.setUserId(userId);

    Element fileEntryElement = portletDataContext.getImportDataElement(fileEntry);

    String binPath = fileEntryElement.attributeValue("bin-path");

    InputStream is = null;

    try {
        if (Validator.isNull(binPath) && portletDataContext.isPerformDirectBinaryImport()) {

            try {
                is = FileEntryUtil.getContentStream(fileEntry);
            } catch (Exception e) {
                if (_log.isWarnEnabled()) {
                    _log.warn("Unable to retrieve content for file entry " + fileEntry.getFileEntryId(), e);
                }

                return;
            }
        } else {
            is = portletDataContext.getZipEntryAsInputStream(binPath);
        }

        if (is == null) {
            if (_log.isWarnEnabled()) {
                _log.warn("No file found for file entry " + fileEntry.getFileEntryId());
            }

            return;
        }

        importMetaData(portletDataContext, fileEntryElement, fileEntry, serviceContext);

        FileEntry importedFileEntry = null;

        if (portletDataContext.isDataStrategyMirror()) {
            FileEntry existingFileEntry = fetchStagedModelByUuidAndGroupId(fileEntry.getUuid(),
                    portletDataContext.getScopeGroupId());

            FileVersion fileVersion = fileEntry.getFileVersion();

            if (existingFileEntry == null) {
                if (portletDataContext.isDataStrategyMirrorWithOverwriting()) {

                    FileEntry existingTitleFileEntry = FileEntryUtil
                            .fetchByR_F_T(portletDataContext.getScopeGroupId(), folderId, fileEntry.getTitle());

                    if (existingTitleFileEntry == null) {
                        existingTitleFileEntry = FileEntryUtil.fetchByR_F_FN(
                                portletDataContext.getScopeGroupId(), folderId, fileEntry.getFileName());
                    }

                    if (existingTitleFileEntry != null) {
                        _dlAppLocalService.deleteFileEntry(existingTitleFileEntry.getFileEntryId());
                    }
                }

                serviceContext.setAttribute("fileVersionUuid", fileVersion.getUuid());
                serviceContext.setUuid(fileEntry.getUuid());

                String fileEntryTitle = _dlFileEntryLocalService.getUniqueTitle(
                        portletDataContext.getScopeGroupId(), folderId, 0, fileEntry.getTitle(),
                        fileEntry.getExtension());

                importedFileEntry = _dlAppLocalService.addFileEntry(userId,
                        portletDataContext.getScopeGroupId(), folderId, fileEntry.getFileName(),
                        fileEntry.getMimeType(), fileEntryTitle, fileEntry.getDescription(), null, is,
                        fileEntry.getSize(), serviceContext);

                if (fileEntry.isInTrash()) {
                    importedFileEntry = _dlTrashService
                            .moveFileEntryToTrash(importedFileEntry.getFileEntryId());
                }
            } else {
                FileVersion latestExistingFileVersion = existingFileEntry.getLatestFileVersion(true);

                boolean indexEnabled = serviceContext.isIndexingEnabled();

                boolean deleteFileEntry = false;
                boolean updateFileEntry = false;

                if (!Objects.equals(fileVersion.getUuid(), latestExistingFileVersion.getUuid())) {

                    deleteFileEntry = true;
                    updateFileEntry = true;
                } else {
                    InputStream existingFileVersionInputStream = null;

                    try {
                        existingFileVersionInputStream = latestExistingFileVersion.getContentStream(false);
                    } catch (Exception e) {
                        if (_log.isDebugEnabled()) {
                            _log.debug(e, e);
                        }
                    } finally {
                        if (existingFileVersionInputStream != null) {
                            existingFileVersionInputStream.close();
                        }
                    }

                    if (existingFileVersionInputStream == null) {
                        updateFileEntry = true;
                    }
                }

                try {
                    serviceContext.setIndexingEnabled(false);

                    if (updateFileEntry) {
                        DLFileVersion alreadyExistingFileVersion = _dlFileVersionLocalService
                                .getFileVersionByUuidAndGroupId(fileVersion.getUuid(),
                                        existingFileEntry.getGroupId());

                        if (alreadyExistingFileVersion != null) {
                            serviceContext.setAttribute("existingDLFileVersionId",
                                    alreadyExistingFileVersion.getFileVersionId());
                        }

                        serviceContext.setUuid(fileVersion.getUuid());

                        String fileEntryTitle = _dlFileEntryLocalService.getUniqueTitle(
                                portletDataContext.getScopeGroupId(), existingFileEntry.getFolderId(),
                                existingFileEntry.getFileEntryId(), fileEntry.getTitle(),
                                fileEntry.getExtension());

                        importedFileEntry = _dlAppLocalService.updateFileEntry(userId,
                                existingFileEntry.getFileEntryId(), fileEntry.getFileName(),
                                fileEntry.getMimeType(), fileEntryTitle, fileEntry.getDescription(), null,
                                false, is, fileEntry.getSize(), serviceContext);
                    } else {
                        _dlAppLocalService.updateAsset(userId, existingFileEntry, latestExistingFileVersion,
                                assetCategoryIds, assetTagNames, null);

                        importedFileEntry = existingFileEntry;
                    }

                    if (importedFileEntry.getFolderId() != folderId) {
                        importedFileEntry = _dlAppLocalService.moveFileEntry(userId,
                                importedFileEntry.getFileEntryId(), folderId, serviceContext);
                    }

                    if (importedFileEntry instanceof LiferayFileEntry) {
                        LiferayFileEntry liferayFileEntry = (LiferayFileEntry) importedFileEntry;

                        Indexer<DLFileEntry> indexer = IndexerRegistryUtil
                                .nullSafeGetIndexer(DLFileEntry.class);

                        indexer.reindex((DLFileEntry) liferayFileEntry.getModel());
                    }

                    if (deleteFileEntry && ExportImportThreadLocal.isStagingInProcess()) {

                        _dlAppService.deleteFileVersion(latestExistingFileVersion.getFileEntryId(),
                                latestExistingFileVersion.getVersion());
                    }
                } finally {
                    serviceContext.setIndexingEnabled(indexEnabled);
                }
            }
        } else {
            String fileEntryTitle = _dlFileEntryLocalService.getUniqueTitle(
                    portletDataContext.getScopeGroupId(), folderId, 0, fileEntry.getTitle(),
                    fileEntry.getExtension());

            importedFileEntry = _dlAppLocalService.addFileEntry(userId, portletDataContext.getScopeGroupId(),
                    folderId, fileEntry.getFileName(), fileEntry.getMimeType(), fileEntryTitle,
                    fileEntry.getDescription(), null, is, fileEntry.getSize(), serviceContext);
        }

        for (DLPluggableContentDataHandler dlPluggableContentDataHandler : _serviceTrackerList) {

            dlPluggableContentDataHandler.importContent(portletDataContext, fileEntryElement, fileEntry,
                    importedFileEntry);
        }

        portletDataContext.importClassedModel(fileEntry, importedFileEntry, DLFileEntry.class);

        Map<Long, Long> fileEntryIds = (Map<Long, Long>) portletDataContext
                .getNewPrimaryKeysMap(FileEntry.class);

        fileEntryIds.put(fileEntry.getFileEntryId(), importedFileEntry.getFileEntryId());
    } finally {
        try {
            is.close();
        } catch (IOException ioe) {
            _log.error(ioe, ioe);
        }
    }
}

From source file:com.liferay.document.library.internal.exportimport.data.handler.FileEntryStagedModelDataHandler.java

License:Open Source License

@Override
protected void doRestoreStagedModel(PortletDataContext portletDataContext, FileEntry fileEntry)
        throws Exception {

    long userId = portletDataContext.getUserId(fileEntry.getUserUuid());

    FileEntry existingFileEntry = fetchStagedModelByUuidAndGroupId(fileEntry.getUuid(),
            portletDataContext.getScopeGroupId());

    if ((existingFileEntry == null) || !existingFileEntry.isInTrash()) {
        return;/*from ww w . ja  va  2s .  co m*/
    }

    TrashHandler trashHandler = TrashHandlerRegistryUtil.getTrashHandler(DLFileEntry.class.getName());

    if (trashHandler.isRestorable(existingFileEntry.getFileEntryId())) {
        trashHandler.restoreTrashEntry(userId, existingFileEntry.getFileEntryId());
    }
}

From source file:com.liferay.document.library.internal.exportimport.data.handler.FileEntryStagedModelDataHandler.java

License:Open Source License

@Override
protected void validateExport(PortletDataContext portletDataContext, FileEntry fileEntry)
        throws PortletDataException {

    if ((fileEntry.getGroupId() != portletDataContext.getGroupId())
            && (fileEntry.getGroupId() != portletDataContext.getScopeGroupId())) {

        PortletDataException pde = new PortletDataException(PortletDataException.INVALID_GROUP);

        pde.setStagedModel(fileEntry);//from   ww w .  j  a v  a  2 s .  co  m

        throw pde;
    }

    try {
        FileVersion fileVersion = fileEntry.getFileVersion();

        if (!portletDataContext.isInitialPublication()
                && !ArrayUtil.contains(getExportableStatuses(), fileVersion.getStatus())) {

            throw new PortletDataException(PortletDataException.STATUS_UNAVAILABLE);
        }
    } catch (PortletDataException pde) {
        throw pde;
    } catch (Exception e) {
        if (_log.isDebugEnabled()) {
            _log.debug(e, e);
        } else if (_log.isWarnEnabled()) {
            _log.warn("Unable to check workflow status for file entry " + fileEntry.getFileEntryId());
        }
    }

    if (fileEntry.isInTrash() || fileEntry.isInTrashContainer()) {
        PortletDataException pde = new PortletDataException(PortletDataException.STATUS_IN_TRASH);

        pde.setStagedModel(fileEntry);

        throw pde;
    }
}

From source file:com.liferay.document.library.internal.service.SubscriptionDLAppHelperLocalServiceWrapper.java

License:Open Source License

@Override
public void updateStatus(long userId, FileEntry fileEntry, FileVersion latestFileVersion, int oldStatus,
        int newStatus, ServiceContext serviceContext, Map<String, Serializable> workflowContext)
        throws PortalException {

    if (!_isEnabled(fileEntry)) {
        return;// ww w  . java  2  s.c  om
    }

    super.updateStatus(userId, fileEntry, latestFileVersion, oldStatus, newStatus, serviceContext,
            workflowContext);

    if ((newStatus == WorkflowConstants.STATUS_APPROVED) && (oldStatus != WorkflowConstants.STATUS_IN_TRASH)
            && !fileEntry.isInTrash()) {

        // Subscriptions

        notifySubscribers(userId, latestFileVersion,
                (String) workflowContext.get(WorkflowConstants.CONTEXT_URL), serviceContext);
    }
}

From source file:com.liferay.document.library.web.internal.portlet.action.ActionUtil.java

License:Open Source License

public static FileEntry getFileEntry(HttpServletRequest request) throws PortalException {

    long fileEntryId = ParamUtil.getLong(request, "fileEntryId");

    FileEntry fileEntry = null;

    if (fileEntryId > 0) {
        fileEntry = DLAppServiceUtil.getFileEntry(fileEntryId);
    }//  ww w.  j  a  v  a 2 s . com

    if (fileEntry == null) {
        return null;
    }

    String cmd = ParamUtil.getString(request, Constants.CMD);

    if (fileEntry.isInTrash() && !cmd.equals(Constants.MOVE_FROM_TRASH)) {
        throw new NoSuchFileEntryException("{fileEntryId=" + fileEntryId + "}");
    }

    return fileEntry;
}

From source file:com.liferay.exportimport.content.processor.base.BaseTextExportImportContentProcessor.java

License:Open Source License

protected String replaceExportDLReferences(PortletDataContext portletDataContext, StagedModel stagedModel,
        String content, boolean exportReferencedContent) throws Exception {

    Group group = GroupLocalServiceUtil.getGroup(portletDataContext.getGroupId());

    if (group.isStagingGroup()) {
        group = group.getLiveGroup();/*from w  w  w .  jav a  2s  .  co  m*/
    }

    if (group.isStaged() && !group.isStagedRemotely() && !group.isStagedPortlet(PortletKeys.DOCUMENT_LIBRARY)) {

        return content;
    }

    StringBuilder sb = new StringBuilder(content);

    String contextPath = PortalUtil.getPathContext();

    String[] patterns = { contextPath.concat("/c/document_library/get_file?"),
            contextPath.concat("/documents/"), contextPath.concat("/image/image_gallery?") };

    int beginPos = -1;
    int endPos = content.length();

    while (true) {
        beginPos = StringUtil.lastIndexOfAny(content, patterns, endPos);

        if (beginPos == -1) {
            break;
        }

        Map<String, String[]> dlReferenceParameters = getDLReferenceParameters(
                portletDataContext.getScopeGroupId(), content, beginPos + contextPath.length(), endPos);

        FileEntry fileEntry = getFileEntry(dlReferenceParameters);

        if (fileEntry == null) {
            endPos = beginPos - 1;

            continue;
        }

        endPos = MapUtil.getInteger(dlReferenceParameters, "endPos");

        try {
            if (exportReferencedContent && !fileEntry.isInTrash()) {
                StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext, stagedModel,
                        fileEntry, PortletDataContext.REFERENCE_TYPE_DEPENDENCY);
            } else {
                Element entityElement = portletDataContext.getExportDataElement(stagedModel);

                String referenceType = PortletDataContext.REFERENCE_TYPE_DEPENDENCY;

                if (fileEntry.isInTrash()) {
                    referenceType = PortletDataContext.REFERENCE_TYPE_DEPENDENCY_DISPOSABLE;
                }

                portletDataContext.addReferenceElement(stagedModel, entityElement, fileEntry, referenceType,
                        true);
            }

            String path = ExportImportPathUtil.getModelPath(fileEntry);

            StringBundler exportedReferenceSB = new StringBundler(6);

            exportedReferenceSB.append("[$dl-reference=");
            exportedReferenceSB.append(path);
            exportedReferenceSB.append("$]");

            if (fileEntry.isInTrash()) {
                String originalReference = sb.substring(beginPos, endPos);

                exportedReferenceSB.append("[#dl-reference=");
                exportedReferenceSB.append(originalReference);
                exportedReferenceSB.append("#]");
            }

            sb.replace(beginPos, endPos, exportedReferenceSB.toString());

            int deleteTimestampParametersOffset = beginPos;

            if (fileEntry.isInTrash()) {
                deleteTimestampParametersOffset = sb.indexOf("[#dl-reference=", beginPos);
            }

            deleteTimestampParameters(sb, deleteTimestampParametersOffset);
        } catch (Exception e) {
            if (_log.isDebugEnabled()) {
                _log.debug(e, e);
            } else if (_log.isWarnEnabled()) {
                StringBundler exceptionSB = new StringBundler(6);

                exceptionSB.append("Unable to process file entry ");
                exceptionSB.append(fileEntry.getFileEntryId());
                exceptionSB.append(" for staged model ");
                exceptionSB.append(stagedModel.getModelClassName());
                exceptionSB.append(" with primary key ");
                exceptionSB.append(stagedModel.getPrimaryKeyObj());

                _log.warn(exceptionSB.toString());
            }
        }

        endPos = beginPos - 1;
    }

    return sb.toString();
}

From source file:com.liferay.exportimport.internal.content.processor.DLReferencesExportImportContentProcessor.java

License:Open Source License

protected String replaceExportDLReferences(PortletDataContext portletDataContext, StagedModel stagedModel,
        String content, boolean exportReferencedContent) throws Exception {

    Group group = _groupLocalService.getGroup(portletDataContext.getGroupId());

    if (group.isStagingGroup()) {
        group = group.getLiveGroup();//from  w ww  .  j  a  v  a 2s  .c o  m
    }

    if (group.isStaged() && !group.isStagedRemotely() && !group.isStagedPortlet(PortletKeys.DOCUMENT_LIBRARY)) {

        return content;
    }

    StringBuilder sb = new StringBuilder(content);

    String contextPath = _portal.getPathContext();

    String[] patterns = { contextPath.concat("/c/document_library/get_file?"),
            contextPath.concat("/documents/"), contextPath.concat("/image/image_gallery?") };

    int beginPos = -1;
    int endPos = content.length();

    while (true) {
        beginPos = StringUtil.lastIndexOfAny(content, patterns, endPos);

        if (beginPos == -1) {
            break;
        }

        Map<String, String[]> dlReferenceParameters = getDLReferenceParameters(
                portletDataContext.getScopeGroupId(), content, beginPos + contextPath.length(), endPos);

        FileEntry fileEntry = getFileEntry(dlReferenceParameters);

        if (fileEntry == null) {
            endPos = beginPos - 1;

            continue;
        }

        endPos = MapUtil.getInteger(dlReferenceParameters, "endPos");

        try {
            if (exportReferencedContent && !fileEntry.isInTrash()) {
                StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext, stagedModel,
                        fileEntry, PortletDataContext.REFERENCE_TYPE_DEPENDENCY);
            } else {
                Element entityElement = portletDataContext.getExportDataElement(stagedModel);

                String referenceType = PortletDataContext.REFERENCE_TYPE_DEPENDENCY;

                if (fileEntry.isInTrash()) {
                    referenceType = PortletDataContext.REFERENCE_TYPE_DEPENDENCY_DISPOSABLE;
                }

                portletDataContext.addReferenceElement(stagedModel, entityElement, fileEntry, referenceType,
                        true);
            }

            String path = ExportImportPathUtil.getModelPath(fileEntry);

            StringBundler exportedReferenceSB = new StringBundler(6);

            exportedReferenceSB.append("[$dl-reference=");
            exportedReferenceSB.append(path);
            exportedReferenceSB.append("$]");

            if (fileEntry.isInTrash()) {
                String originalReference = sb.substring(beginPos, endPos);

                exportedReferenceSB.append("[#dl-reference=");
                exportedReferenceSB.append(originalReference);
                exportedReferenceSB.append("#]");
            }

            sb.replace(beginPos, endPos, exportedReferenceSB.toString());

            int deleteTimestampParametersOffset = beginPos;

            if (fileEntry.isInTrash()) {
                deleteTimestampParametersOffset = sb.indexOf("[#dl-reference=", beginPos);
            }

            deleteTimestampParameters(sb, deleteTimestampParametersOffset);
        } catch (Exception e) {
            if (_log.isDebugEnabled()) {
                _log.debug(e, e);
            } else if (_log.isWarnEnabled()) {
                StringBundler exceptionSB = new StringBundler(6);

                exceptionSB.append("Unable to process file entry ");
                exceptionSB.append(fileEntry.getFileEntryId());
                exceptionSB.append(" for staged model ");
                exceptionSB.append(stagedModel.getModelClassName());
                exceptionSB.append(" with primary key ");
                exceptionSB.append(stagedModel.getPrimaryKeyObj());

                _log.warn(exceptionSB.toString());
            }
        }

        endPos = beginPos - 1;
    }

    return sb.toString();
}

From source file:com.liferay.portlet.documentlibrary.util.DLImpl.java

License:Open Source License

@Override
public String getPreviewURL(FileEntry fileEntry, FileVersion fileVersion, ThemeDisplay themeDisplay,
        String queryString, boolean appendVersion, boolean absoluteURL) {

    StringBundler sb = new StringBundler(17);

    if (themeDisplay != null) {
        if (absoluteURL) {
            sb.append(themeDisplay.getPortalURL());
        }//from  ww  w.j a  va 2s .  c  o  m
    }

    sb.append(PortalUtil.getPathContext());
    sb.append("/documents/");
    sb.append(fileEntry.getRepositoryId());
    sb.append(StringPool.SLASH);
    sb.append(fileEntry.getFolderId());
    sb.append(StringPool.SLASH);

    String fileName = fileEntry.getFileName();

    if (fileEntry.isInTrash()) {
        fileName = TrashUtil.getOriginalTitle(fileEntry.getFileName());
    }

    sb.append(HttpUtil.encodeURL(HtmlUtil.unescape(fileName)));

    sb.append(StringPool.SLASH);
    sb.append(HttpUtil.encodeURL(fileEntry.getUuid()));

    if (appendVersion) {
        sb.append("?version=");
        sb.append(fileVersion.getVersion());
    }

    if (ImageProcessorUtil.isImageSupported(fileVersion)) {
        if (appendVersion) {
            sb.append("&t=");
        } else {
            sb.append("?t=");
        }

        Date modifiedDate = fileVersion.getModifiedDate();

        sb.append(modifiedDate.getTime());
    }

    sb.append(queryString);

    String previewURL = sb.toString();

    if ((themeDisplay != null) && themeDisplay.isAddSessionIdToURL()) {
        return PortalUtil.getURLWithSessionId(previewURL, themeDisplay.getSessionId());
    }

    return previewURL;
}