Interface TrashService

    • Field Detail

      • ABOUT_TO_TRASH

        static final String ABOUT_TO_TRASH
        Event for a document about to be trashed by the user.
        Since:
        2021.30
        See Also:
        Constant Field Values
      • DOCUMENT_TRASHED

        static final String DOCUMENT_TRASHED
        Event for a document trashed by the user. Triggers an async listener that trashes its children too.
        Since:
        10.1
        See Also:
        Constant Field Values
      • ABOUT_TO_UNTRASH

        static final String ABOUT_TO_UNTRASH
        Event for a document about to be untrashed by the user.
        Since:
        2021.30
        See Also:
        Constant Field Values
      • DOCUMENT_UNTRASHED

        static final String DOCUMENT_UNTRASHED
        Event for a document untrashed by the user. Triggers an async listener that untrashes its children too.
        Since:
        10.1
        See Also:
        Constant Field Values
    • Method Detail

      • canPurgeOrUntrash

        boolean canPurgeOrUntrash​(List<DocumentModel> docs,
                                  NuxeoPrincipal principal)
        Are all documents purgeable/undeletable?

        Documents need to be in the trash for this to be true, in addition to the standard permission checks.

        Parameters:
        docs - the documents
        principal - the current user (to check locks)
        Returns:
        true if the documents are purgeable/undeletable
      • canPurgeOrUntrash

        default boolean canPurgeOrUntrash​(DocumentModel doc,
                                          NuxeoPrincipal principal)
        Is document purgeable/untrashable?

        Documents need to be in the trash for this to be true, in addition to the standard permission checks.

        Parameters:
        doc - the document
        principal - the current user (to check locks)
        Returns:
        true if the documents are purgeable/untrashable
      • getAboveDocument

        DocumentModel getAboveDocument​(DocumentModel doc,
                                       NuxeoPrincipal principal)
        Gets the first non trashed ancestor.

        This is used to find what safe document to redirect to when deleting one.

        Parameters:
        doc - the trashed document
        principal - the current user
        Returns:
        the first non trashed ancestor
      • trashDocuments

        void trashDocuments​(List<DocumentModel> docs)
        Moves documents to the trash.

        Do nothing if the document current state is trashed.

        Proxies are removed.

        Since 10.3, sublevels are trashed asynchronously using BAF.

        Parameters:
        docs - the documents to trash
      • trashDocument

        default void trashDocument​(DocumentModel doc)
        Moves document to the trash.

        Do nothing if the document current state is trashed.

        Proxies are removed.

        Since 10.3, sublevels are trashed asynchronously using BAF.

        Parameters:
        doc - the document to trash
        Since:
        10.1
      • purgeDocuments

        void purgeDocuments​(CoreSession session,
                            List<DocumentRef> docRefs)
        Purges (completely deletes) documents.
        Parameters:
        session - the session
        docRefs - the documents to purge
      • purgeDocumentsUnder

        void purgeDocumentsUnder​(DocumentModel parent)
        Purges (completely deletes) trashed documents under the given parent.
        Parameters:
        parent - The parent document of trashed documents.
        Since:
        10.1
      • untrashDocuments

        void untrashDocuments​(List<DocumentModel> docs)
        Unmoves documents from the trash.

        Also fires async events to untrash the children.

        Parameters:
        docs - the documents to untrash
      • untrashDocument

        default void untrashDocument​(DocumentModel doc)
        Unmoves document from the trash.

        Also fires async events to untrash the children.

        Parameters:
        doc - the document to untrash
        Since:
        10.1
      • getDocuments

        @Deprecated(since="11.1")
        DocumentModelList getDocuments​(DocumentModel parent)
        Deprecated.
        since 11.1, not scalable
        Get all documents from the trash of the current document.
        Parameters:
        parent - The parent document of trash document.
        Returns:
        All documents in the trash of the current document.
        Since:
        7.1
      • isMangledName

        boolean isMangledName​(String docName)
        Parameters:
        docName - the document's name
        Returns:
        true if the document's name is mangled, false otherwise
        Since:
        11.1
      • mangleName

        String mangleName​(DocumentModel doc)
        Mangles the name of a document to avoid collisions with non-trashed documents when it's in the trash.
        Parameters:
        doc - the document
        Since:
        7.3
      • unmangleName

        String unmangleName​(CoreSession session,
                            DocumentRef parentRef,
                            String docName)
        Unmangles the name of a document in the trash to find its un-trashed name.
        Parameters:
        session - the session used for collisions check
        parentRef - the parent document ref
        docName - the document name
        Returns:
        the unmangled name
        Since:
        11.1
      • unmangleName

        String unmangleName​(DocumentModel doc)
        Unmangles the name of a document in the trash to find its un-trashed name.
        Parameters:
        doc - the trashed document
        Returns:
        the unmangled name
        Since:
        7.3
      • hasFeature

        boolean hasFeature​(TrashService.Feature feature)
        Checks if a feature is available.
        Since:
        10.1