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 Details

    • 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
    • replaceFile

      void replaceFile(long docId, String fileVersion, File newFile, DocumentHistory transaction) throws PersistenceException, IOException
      Replaces the file of a given version
      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:
      IOException - I/O error
      PersistenceException - error at data layer
    • replaceFile

      void replaceFile(long docId, String fileVersion, InputStream newFile, DocumentHistory transaction) throws IOException, PersistenceException
      Replaces the file of a given version
      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:
      PersistenceException - error at data layer
      IOException - I/O error
    • 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
    • index

      long index(long docId, String content, DocumentHistory transaction) throws PersistenceException, ParsingException
      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
      ParsingException - 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
    • destroyDocument

      void destroyDocument(long docId, FolderHistory transaction) throws PersistenceException, PermissionException
      Permanently deletes a document from the system, the document and all the dependent resources will not be recoverable in the future.
      Parameters:
      docId - the document to destroy
      transaction - the current session
      Throws:
      PersistenceException - error at data layer
      PermissionException - The user cannot destroy the document
    • changeIndexingStatus

      void changeIndexingStatus(Document doc, int status)
      Utility method used to declare that:
      1. the document must be taken into consideration by the indexer (status = AbstractDocument.INDEX_TO_INDEX.
      2. the document must be taken into consideration by the indexer for the metadata only(status = AbstractDocument.INDEX_TO_INDEX_METADATA.
      3. the 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_TO_INDEX_METADATA
      3. AbstractDocument.INDEX_SKIP
      Parameters:
      doc - The document for which will be changed the indexer status.
      status - The new document indexer status.
    • 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
    • copyToFolder

      Document copyToFolder(Document doc, Folder folder, DocumentHistory transaction, boolean links, boolean notes, boolean security) throws PersistenceException, IOException
      Copy a document to the specified folder.
      Parameters:
      doc - The document to move
      folder - The target folder
      transaction - entry to log the event (set the user)
      links - if links must be copied too
      notes - if notes and annotations must be copied too
      notes - if security settings must be copied too
      Returns:
      The created document
      Throws:
      PersistenceException - error at data layer
      IOException - I/O error
    • 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 ParsingException
      Retrieves the document's content as a string
      Parameters:
      doc - the document representation
      fileVersion - version of the file
      Returns:
      The document's content
      Throws:
      ParsingException - 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(Set<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
    • createTicket

      Ticket createTicket(Ticket ticket, DocumentHistory transaction) throws PersistenceException, PermissionException
      Creates a new ticket.
      Parameters:
      ticket - Value object carrying the metadata for the ticket to create
      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
    • enforceFilesIntoFolderStore

      int enforceFilesIntoFolderStore(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 store 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