Class DocumentManagerImpl

  • All Implemented Interfaces:
    DocumentManager

    public class DocumentManagerImpl
    extends Object
    implements DocumentManager
    Basic Implementation of DocumentManager
    Since:
    3.5
    Author:
    Marco Meschieri - LogicalDOC
    • Constructor Detail

      • DocumentManagerImpl

        public DocumentManagerImpl()
    • Method Detail

      • setDocumentDAO

        public void setDocumentDAO​(DocumentDAO documentDAO)
      • setTemplateDAO

        public void setTemplateDAO​(TemplateDAO templateDAO)
      • setIndexer

        public void setIndexer​(SearchEngine indexer)
      • replaceFile

        public void replaceFile​(long docId,
                                String fileVersion,
                                InputStream content,
                                DocumentHistory transaction)
                         throws Exception
        Description copied from interface: DocumentManager
        Replaces the file of a given version
        Specified by:
        replaceFile in interface DocumentManager
        Parameters:
        docId - the document to be updated
        fileVersion - the file version
        content - the file to use
        transaction - entry to log the event (set the user)
        Throws:
        Exception - if an error occurs, this exception is thrown
      • replaceFile

        public void replaceFile​(long docId,
                                String fileVersion,
                                File newFile,
                                DocumentHistory transaction)
                         throws Exception
        Description copied from interface: DocumentManager
        Replaces the file of a given version
        Specified by:
        replaceFile in interface DocumentManager
        Parameters:
        docId - the document to be updated
        fileVersion - the file version
        newFile - the file to use
        transaction - entry to log the event (set the user)
        Throws:
        Exception - if an error occurs, this exception is thrown
      • checkin

        public void checkin​(long docId,
                            File file,
                            String filename,
                            boolean release,
                            AbstractDocument docVO,
                            DocumentHistory transaction)
                     throws Exception
        Description copied from interface: DocumentManager
        Checks in the given document
        Specified by:
        checkin in interface DocumentManager
        Parameters:
        docId - the document to be checked in
        file - of the new document version
        filename - new filename (can also be the old one)
        release - True if this is a new release(eg: 2.0) rather than a subversion(eg: 1.1)
        docVO - The value object containing document's metadata applied during the checkin (optional)
        transaction - entry to log the event, set the user and comment
        Throws:
        Exception - if an error occurs, this exception is thrown
      • checkin

        public void checkin​(long docId,
                            InputStream content,
                            String filename,
                            boolean release,
                            AbstractDocument docVO,
                            DocumentHistory transaction)
                     throws Exception
        Description copied from interface: DocumentManager
        Checks in the given document
        Specified by:
        checkin in interface DocumentManager
        Parameters:
        docId - the document to be checked in
        content - input stream pointing to the new document version
        filename - new filename (can also be the old one)
        release - True if this is a new release(eg: 2.0) rather than a subversion(eg: 1.1)
        docVO - The value object containing document's metadata applied during the checkin (optional)
        transaction - entry to log the event, set the user and comment
        Throws:
        Exception - if an error occurs, this exception is thrown
      • checkout

        public void checkout​(long docId,
                             DocumentHistory transaction)
                      throws Exception
        Description copied from interface: DocumentManager
        Checks out the given document
        Specified by:
        checkout in interface DocumentManager
        Parameters:
        docId - the document to be checked out
        transaction - entry to log the event (set the user)
        Throws:
        Exception - if an error occurs, this exception is thrown
      • lock

        public void lock​(long docId,
                         int status,
                         DocumentHistory transaction)
                  throws Exception
        Description copied from interface: DocumentManager
        Locks the given document
        Specified by:
        lock in interface DocumentManager
        Parameters:
        docId - the document to be locked
        status - the lock type (used to populate status attribute of the document)
        transaction - entry to log the event (set the user)
        Throws:
        Exception - if an error occurs, this exception is thrown
      • deleteFromIndex

        public void deleteFromIndex​(Document doc)
        Utility method for document removal from index
        Specified by:
        deleteFromIndex in interface DocumentManager
        Parameters:
        doc - the document to delete from the index
      • parseDocument

        public String parseDocument​(Document doc,
                                    String fileVersion)
        Retrieves the document's content as a string
        Specified by:
        parseDocument in interface DocumentManager
        Parameters:
        doc - The document representation
        fileVersion - version fo the file
        Returns:
        The document's content
      • reindex

        public long reindex​(long docId,
                            String content)
                     throws Exception
        Description copied from interface: DocumentManager
        Re-indexes an existing document in the full-text index.
        Specified by:
        reindex in interface DocumentManager
        Parameters:
        docId - The document to be indexed
        content - The content to use as document's body (can be null to parse the file)
        Returns:
        the number of milliseconds required to parse the document
        Throws:
        Exception - if an error occurs, this exception is thrown
      • update

        public void update​(Document doc,
                           Document docVO,
                           DocumentHistory transaction)
                    throws Exception
        Description copied from interface: DocumentManager
        Updates an existing document and marks it to be re-indexed
        Specified by:
        update in interface DocumentManager
        Parameters:
        doc - The document to be updated
        docVO - value object containing the new metadata
        transaction - entry to log the event (set the user)
        Throws:
        Exception - if an error occurs, this exception is thrown
      • moveToFolder

        public void moveToFolder​(Document doc,
                                 Folder folder,
                                 DocumentHistory transaction)
                          throws Exception
        Description copied from interface: DocumentManager
        Moves a document to the specified folder. All stores(db, file system, index) will be consequently altered.
        Specified by:
        moveToFolder in interface DocumentManager
        Parameters:
        doc - The document to move
        folder - The target folder
        transaction - entry to log the event (set the user)
        Throws:
        Exception - raised if the document cannot be moved
      • create

        public Document create​(InputStream content,
                               Document docVO,
                               DocumentHistory transaction)
                        throws Exception
        Description copied from interface: DocumentManager
        Creates a new Document. Saves the information provided. That also includes updating the search index for example.
        Specified by:
        create in interface DocumentManager
        Parameters:
        content - The document's content
        docVO - The value object containing the document's metadata
        transaction - The transaction metadata (remember to set the user and the comment)
        Returns:
        The newly created document
        Throws:
        Exception - raised if the document cannot be created
      • create

        public Document create​(File file,
                               Document docVO,
                               DocumentHistory transaction)
                        throws Exception
        Description copied from interface: DocumentManager
        Creates a new Document. Saves the information provided. That also includes updating the search index for example.
        Specified by:
        create in interface DocumentManager
        Parameters:
        file - The document's file
        docVO - The value object containing the document's metadata
        transaction - The trandaction metadata (remember to set the user and the comment)
        Returns:
        The newly created document
        Throws:
        Exception - raised if the document cannot be created
      • copyToFolder

        public Document copyToFolder​(Document doc,
                                     Folder folder,
                                     DocumentHistory transaction)
                              throws Exception
        Description copied from interface: DocumentManager
        Copy a document to the specified folder.
        Specified by:
        copyToFolder in interface DocumentManager
        Parameters:
        doc - The document to move
        folder - The target folder
        transaction - entry to log the event (set the user)
        Returns:
        The created document
        Throws:
        Exception - raised if the document cannot be copied
      • unlock

        public void unlock​(long docId,
                           DocumentHistory transaction)
                    throws Exception
        Description copied from interface: DocumentManager
        UNChecks out the given document
        Specified by:
        unlock in interface DocumentManager
        Parameters:
        docId - the document to be unchecked out
        transaction - entry to log the event
        Throws:
        Exception - if an error occurs, this exception is thrown
      • makeImmutable

        public void makeImmutable​(long docId,
                                  DocumentHistory transaction)
                           throws Exception
        Description copied from interface: DocumentManager
        Marks the document, with the given docId, as immutable and save the given document history
        Specified by:
        makeImmutable in interface DocumentManager
        Parameters:
        docId - identifier of the document
        transaction - entry to log the event (set the user)
        Throws:
        Exception - raised if the document cannot be marked immutable
      • rename

        public void rename​(Document doc,
                           String newName,
                           DocumentHistory transaction)
                    throws Exception
        Description copied from interface: DocumentManager
        Rename an existing document filename.
        Specified by:
        rename in interface DocumentManager
        Parameters:
        doc - The document to be renamed
        newName - The new filename of the document
        transaction - entry to log the event (set the user)
        Throws:
        Exception - if an error occurs, this exception is thrown
      • replaceAlias

        public Document replaceAlias​(long aliasId,
                                     DocumentHistory transaction)
                              throws Exception
        Description copied from interface: DocumentManager
        Replaces an alias with a copy of the original file
        Specified by:
        replaceAlias in interface DocumentManager
        Parameters:
        aliasId - ID of the alias to replace
        transaction - entry to log the event (set the user)
        Returns:
        The created document
        Throws:
        Exception - raised if the alias cannot be replaced
      • createAlias

        public Document createAlias​(Document doc,
                                    Folder folder,
                                    String aliasType,
                                    DocumentHistory transaction)
                             throws Exception
        Description copied from interface: DocumentManager
        Create an alias(shortcut) associated to the given doc to the specified folder.
        Specified by:
        createAlias in interface DocumentManager
        Parameters:
        doc - The document for which will be created the shortcut
        folder - The target folder
        aliasType - the alias type(null for the original file or pdf for it's pdf conversion)
        transaction - entry to log the event (set the user)
        Returns:
        The created document
        Throws:
        Exception - raised if the alias cannot be created
      • setVersionDAO

        public void setVersionDAO​(VersionDAO versionDAO)
      • changeIndexingStatus

        public void changeIndexingStatus​(Document doc,
                                         int status)
        Description copied from interface: DocumentManager
        Utility method used to declare that:
        1. a document must be taken into consideration by the indexer (status = AbstractDocument.INDEX_TO_INDEX).
        2. a document must not be taken into consideration by the indexer (status = AbstractDocument.INDEX_SKIP). If the document was previously indexed it is removed from the index.
        Status:
        1. AbstractDocument.INDEX_TO_INDEX
        2. AbstractDocument.INDEX_SKIP
        Specified by:
        changeIndexingStatus in interface DocumentManager
        Parameters:
        doc - The document for which will be changed the indexer status.
        status - The new document indexer status.
      • setUserDAO

        public void setUserDAO​(UserDAO userDAO)
      • setFolderDAO

        public void setFolderDAO​(FolderDAO folderDAO)
      • deleteVersion

        public Version deleteVersion​(long versionId,
                                     DocumentHistory transaction)
                              throws Exception
        Description copied from interface: DocumentManager
        Deletes a specific version.
        Specified by:
        deleteVersion in interface DocumentManager
        Parameters:
        versionId - The version to delete
        transaction - entry to log the event (set the user)
        Returns:
        the latest version
        Throws:
        Exception - If the version cannot be deleted
      • setDocumentNoteDAO

        public void setDocumentNoteDAO​(DocumentNoteDAO documentNoteDAO)
      • archiveFolder

        public long archiveFolder​(long folderId,
                                  DocumentHistory transaction)
                           throws Exception
        Description copied from interface: DocumentManager
        Archives all the documents in a folder's tree
        Specified by:
        archiveFolder in interface DocumentManager
        Parameters:
        folderId - The root folder
        transaction - entry to log the event (set the user)
        Returns:
        Total number of archived documents
        Throws:
        Exception - raised if at least a document cannot be archived
      • archiveDocuments

        public void archiveDocuments​(long[] docIds,
                                     DocumentHistory transaction)
                              throws Exception
        Description copied from interface: DocumentManager
        Archives all the documents in a folder's tree
        Specified by:
        archiveDocuments in interface DocumentManager
        Parameters:
        docIds - Documents to be archived
        transaction - entry to log the event (set the user)
        Throws:
        Exception - raised if at least a document cannot be archived
      • createDownloadTicket

        public Ticket createDownloadTicket​(long docId,
                                           String suffix,
                                           Integer expireHours,
                                           Date expireDate,
                                           Integer maxDownloads,
                                           String urlPrefix,
                                           DocumentHistory transaction)
                                    throws Exception
        Description copied from interface: DocumentManager
        Creates a new download ticket.
        Specified by:
        createDownloadTicket in interface DocumentManager
        Parameters:
        docId - The document id
        suffix - can be null or 'conversion.pdf'
        expireHours - expiration time expressed in hours
        expireDate - exact expiration date expressed in the format yyyy-MM-dd
        maxDownloads - maximum number of admitted downloads
        urlPrefix - prefiz of the url, by default the general setting 'server.url' will be used
        transaction - entry to log the event (set the user)
        Returns:
        The created ticket with the url property filled
        Throws:
        Exception - raised if the download ticket cannot be created
      • setTicketDAO

        public void setTicketDAO​(TicketDAO ticketDAO)
      • unprotect

        public boolean unprotect​(String sid,
                                 long docId,
                                 String password)
        Description copied from interface: DocumentManager
        Tries to unprotect a document, If the password is correct, the document stays unprotected for all the duration of the session.
        Specified by:
        unprotect in interface DocumentManager
        Parameters:
        sid - Session identifier
        docId - The document id
        password - The password to try
        Returns:
        True if the file gets unprotected
      • promoteVersion

        public void promoteVersion​(long docId,
                                   String version,
                                   DocumentHistory transaction)
                            throws Exception
        Description copied from interface: DocumentManager
        Promotes an old version to the current default one. If you promote a prior version, what it does is make it the default version again. (regardless of there being many versions).
        Specified by:
        promoteVersion in interface DocumentManager
        Parameters:
        docId - the document to be updated
        version - the version
        transaction - entry to log the event (set the user)
        Throws:
        Exception - if an error occurs, this exception is thrown