Interface DocumentManager

  • All Known Implementing Classes:
    DocumentManagerImpl

    public interface DocumentManager
    A general manager for documents handling issues
    Since:
    3.5
    Author:
    Marco Meschieri - LogicalDOC
    • Method Detail

      • checkin

        void checkin​(long docId,
                     InputStream fileInputStream,
                     String filename,
                     boolean release,
                     AbstractDocument docVO,
                     DocumentHistory transaction)
              throws IOException,
                     PersistenceException
        Checks in the given document
        Parameters:
        docId - the document to be checked in
        fileInputStream - 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:
        IOException - I/O error
        PersistenceException - error at data layer
      • checkin

        void checkin​(long docId,
                     File file,
                     String filename,
                     boolean release,
                     AbstractDocument docVO,
                     DocumentHistory transaction)
              throws PersistenceException
        Checks in the given document
        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:
        PersistenceException - error at data layer
      • checkout

        void checkout​(long docId,
                      DocumentHistory transaction)
               throws PersistenceException
        Checks out the given document
        Parameters:
        docId - the document to be checked out
        transaction - entry to log the event (set the user)
        Throws:
        PersistenceException - error at data layer
      • promoteVersion

        void promoteVersion​(long docId,
                            String version,
                            DocumentHistory transaction)
                     throws PersistenceException,
                            IOException
        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).
        Parameters:
        docId - the document to be updated
        version - the version
        transaction - entry to log the event (set the user)
        Throws:
        PersistenceException - error at data layer
        IOException - I/O error
      • lock

        void lock​(long docId,
                  int status,
                  DocumentHistory transaction)
           throws PersistenceException
        Locks the given document
        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:
        PersistenceException - if an error occurs, this exception is thrown
      • unlock

        void unlock​(long docId,
                    DocumentHistory transaction)
             throws PersistenceException
        UNChecks out the given document
        Parameters:
        docId - the document to be unchecked out
        transaction - entry to log the event
        Throws:
        PersistenceException - if an error occurs, this exception is thrown
      • create

        Document create​(File file,
                        Document docVO,
                        DocumentHistory transaction)
                 throws PersistenceException
        Creates a new Document. Saves the information provided. That also includes updating the search index for example.
        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:
        PersistenceException - raised if the document cannot be created
      • create

        Document create​(InputStream content,
                        Document docVO,
                        DocumentHistory transaction)
                 throws PersistenceException
        Creates a new Document. Saves the information provided. That also includes updating the search index for example.
        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:
        PersistenceException - raised if the document cannot be created
      • reindex

        long reindex​(long docId,
                     String content,
                     DocumentHistory transaction)
              throws PersistenceException,
                     ParseException
        Re-indexes an existing document in the full-text index.
        Parameters:
        docId - The document to be indexed
        content - The content to use as document's body (can be null to parse the file)
        transaction - entry to log the event (set the user)
        Returns:
        the number of milliseconds required to parse the document
        Throws:
        PersistenceException - error at data layer
        ParseException - error during parsing
      • rename

        void rename​(long docId,
                    String newName,
                    DocumentHistory transaction)
             throws PersistenceException
        Rename an existing document filename.
        Parameters:
        docId - The document to be renamed
        newName - The new filename of the document
        transaction - entry to log the event (set the user)
        Throws:
        PersistenceException - if an error occurs, this exception is thrown
      • update

        void update​(Document doc,
                    Document docVO,
                    DocumentHistory transaction)
             throws PersistenceException
        Updates an existing document and marks it to be re-indexed
        Parameters:
        doc - The document to be updated
        docVO - value object containing the new metadata
        transaction - entry to log the event (set the user)
        Throws:
        PersistenceException - if an error occurs, this exception is thrown
      • deleteFromIndex

        void deleteFromIndex​(Document doc)
        Utility method for document removal from index and database update(flag indexed)
        Parameters:
        doc - the document to remove from the index
      • makeImmutable

        void makeImmutable​(long docId,
                           DocumentHistory transaction)
                    throws PersistenceException
        Marks the document, with the given docId, as immutable and save the given document history
        Parameters:
        docId - identifier of the document
        transaction - entry to log the event (set the user)
        Throws:
        PersistenceException - raised if the document cannot be marked immutable
      • moveToFolder

        void moveToFolder​(Document doc,
                          Folder folder,
                          DocumentHistory transaction)
                   throws PersistenceException
        Moves a document to the specified folder. All stores(db, file system, index) will be consequently altered.
        Parameters:
        doc - The document to move
        folder - The target folder
        transaction - entry to log the event (set the user)
        Throws:
        PersistenceException - raised if the document cannot be moved
      • createAlias

        Document createAlias​(Document doc,
                             Folder folder,
                             String type,
                             DocumentHistory transaction)
                      throws PersistenceException
        Create an alias(shortcut) associated to the given doc to the specified folder.
        Parameters:
        doc - The document for which will be created the shortcut
        folder - The target folder
        type - 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:
        PersistenceException - error at data layer
      • replaceAlias

        Document replaceAlias​(long aliasId,
                              DocumentHistory transaction)
                       throws PersistenceException
        Replaces an alias with a copy of the original file
        Parameters:
        aliasId - ID of the alias to replace
        transaction - entry to log the event (set the user)
        Returns:
        The created document
        Throws:
        PersistenceException - raised if the alias cannot be replaced
      • deleteVersion

        Version deleteVersion​(long versionId,
                              DocumentHistory transaction)
                       throws PersistenceException
        Deletes a specific version.
        Parameters:
        versionId - The version to delete
        transaction - entry to log the event (set the user)
        Returns:
        the latest version
        Throws:
        PersistenceException - If the version cannot be deleted
      • parseDocument

        String parseDocument​(Document doc,
                             String fileVersion)
                      throws ParseException
        Retrieves the document's content as a string
        Parameters:
        doc - the document representation
        fileVersion - version of the file
        Returns:
        The document's content
        Throws:
        ParseException - error in the parsing
      • archiveFolder

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

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

        Ticket createDownloadTicket​(long docId,
                                    String suffix,
                                    Integer expireHours,
                                    Date expireDate,
                                    Integer maxDownloads,
                                    String urlPrefix,
                                    DocumentHistory transaction)
                             throws PersistenceException,
                                    PermissionException
        Creates a new download ticket.
        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:
        PersistenceException - raised if the download ticket cannot be created
        PermissionException - raised if the user does not have the download permission
      • unprotect

        boolean unprotect​(String sid,
                          long docId,
                          String password)
        Tries to unprotect a document, If the password is correct, the document stays unprotected for all the duration of the session.
        Parameters:
        sid - Session identifier
        docId - The document id
        password - The password to try
        Returns:
        True if the file gets unprotected
      • enforceFilesIntoFolderStorage

        int enforceFilesIntoFolderStorage​(long rootFolderId,
                                          DocumentHistory transaction)
                                   throws PersistenceException,
                                          IOException
        Moves all the files of the documents in the given tree from it's original location to the storage defined in the owning folder
        Parameters:
        rootFolderId - identifier of the root of the tree to process
        transaction - informations about the transaction, optional
        Returns:
        number of moved files
        Throws:
        PersistenceException - error at data layer
        IOException - I/O error
      • merge

        Document merge​(Collection<Document> documents,
                       long targetFolderId,
                       String fileName,
                       DocumentHistory transaction)
                throws IOException,
                       PersistenceException
        Merges a set of documents into a single PDF file
        Parameters:
        documents - the list of documents to merge(the order counts)
        targetFolderId - identifier of the target folder
        fileName - name of the output file(must ends with .pdf)
        transaction - informations about the transaction, optional
        Returns:
        the generated merged document
        Throws:
        IOException - I/O error
        PersistenceException - error at data layer
      • countPages

        int countPages​(Document doc)
        Counts the number of pages of a document
        Parameters:
        doc - the document
        Returns:
        the number of pages