Package com.logicaldoc.core.document
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 Summary
Modifier and TypeMethodDescriptionvoid
archiveDocuments
(Set<Long> docIds, DocumentHistory transaction) Archives all the documents in a folder's treelong
archiveFolder
(long folderId, DocumentHistory transaction) Archives all the documents in a folder's treevoid
changeIndexingStatus
(Document doc, int status) Utility method used to declare that: the document must be taken into consideration by the indexer (status =AbstractDocument.INDEX_TO_INDEX
. the document must be taken into consideration by the indexer for the metadata only(status =AbstractDocument.INDEX_TO_INDEX_METADATA
. the document must not be taken into consideration by the indexer (status =AbstractDocument.INDEX_SKIP
).void
checkin
(long docId, File file, String filename, boolean release, AbstractDocument docVO, DocumentHistory transaction) Checks in the given documentvoid
checkin
(long docId, InputStream fileInputStream, String filename, boolean release, AbstractDocument docVO, DocumentHistory transaction) Checks in the given documentvoid
checkout
(long docId, DocumentHistory transaction) Checks out the given documentcopyToFolder
(Document doc, Folder folder, DocumentHistory transaction, boolean links, boolean notes, boolean security) Copy a document to the specified folder.int
countPages
(Document doc) Counts the number of pages of a documentcreate
(File file, Document docVO, DocumentHistory transaction) Creates a new Document.create
(InputStream content, Document docVO, DocumentHistory transaction) Creates a new Document.createAlias
(Document doc, Folder folder, String type, DocumentHistory transaction) Create an alias(shortcut) associated to the given doc to the specified folder.createTicket
(Ticket ticket, DocumentHistory transaction) Creates a new ticket.void
deleteFromIndex
(Document doc) Utility method for document removal from index and database update(flag indexed)deleteVersion
(long versionId, DocumentHistory transaction) Deletes a specific version.void
destroyDocument
(long docId, FolderHistory transaction) Permanently deletes a document from the system, the document and all the dependent resources will not be recoverable in the future.int
enforceFilesIntoFolderStore
(long rootFolderId, DocumentHistory transaction) Moves all the files of the documents in the given tree from it's original location to the store defined in the owning folderlong
index
(long docId, String content, DocumentHistory transaction) Re-indexes an existing document in the full-text index.void
lock
(long docId, int status, DocumentHistory transaction) Locks the given documentvoid
makeImmutable
(long docId, DocumentHistory transaction) Marks the document, with the given docId, as immutable and save the given document historymerge
(Collection<Document> documents, long targetFolderId, String fileName, DocumentHistory transaction) Merges a set of documents into a single PDF filevoid
moveToFolder
(Document doc, Folder folder, DocumentHistory transaction) Moves a document to the specified folder.parseDocument
(Document doc, String fileVersion) Retrieves the document's content as a stringvoid
promoteVersion
(long docId, String version, DocumentHistory transaction) Promotes an old version to the current default one.void
rename
(long docId, String newName, DocumentHistory transaction) Rename an existing document filename.replaceAlias
(long aliasId, DocumentHistory transaction) Replaces an alias with a copy of the original filevoid
replaceFile
(long docId, String fileVersion, File newFile, DocumentHistory transaction) Replaces the file of a given versionvoid
replaceFile
(long docId, String fileVersion, InputStream newFile, DocumentHistory transaction) Replaces the file of a given versionvoid
unlock
(long docId, DocumentHistory transaction) UNChecks out the given documentboolean
Tries to unprotect a document, If the password is correct, the document stays unprotected for all the duration of the session.void
update
(Document doc, Document docVO, DocumentHistory transaction) Updates an existing document and marks it to be re-indexed
-
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 infileInputStream
- input stream pointing to the new document versionfilename
- 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 errorPersistenceException
- 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 infile
- of the new document versionfilename
- 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
Checks out the given document- Parameters:
docId
- the document to be checked outtransaction
- 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 updatedfileVersion
- the file versionnewFile
- the file to usetransaction
- entry to log the event (set the user)- Throws:
IOException
- I/O errorPersistenceException
- 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 updatedfileVersion
- the file versionnewFile
- the file to usetransaction
- entry to log the event (set the user)- Throws:
PersistenceException
- error at data layerIOException
- 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 updatedversion
- the versiontransaction
- entry to log the event (set the user)- Throws:
PersistenceException
- error at data layerIOException
- I/O error
-
lock
Locks the given document- Parameters:
docId
- the document to be lockedstatus
- 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
UNChecks out the given document- Parameters:
docId
- the document to be unchecked outtransaction
- entry to log the event- Throws:
PersistenceException
- if an error occurs, this exception is thrown
-
create
Creates a new Document. Saves the information provided. That also includes updating the search index for example.- Parameters:
file
- The document's filedocVO
- The value object containing the document's metadatatransaction
- 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 contentdocVO
- The value object containing the document's metadatatransaction
- 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 indexedcontent
- 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 layerParsingException
- error during parsing
-
rename
Rename an existing document filename.- Parameters:
docId
- The document to be renamednewName
- The new filename of the documenttransaction
- entry to log the event (set the user)- Throws:
PersistenceException
- if an error occurs, this exception is thrown
-
update
Updates an existing document and marks it to be re-indexed- Parameters:
doc
- The document to be updateddocVO
- value object containing the new metadatatransaction
- entry to log the event (set the user)- Throws:
PersistenceException
- if an error occurs, this exception is thrown
-
deleteFromIndex
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 destroytransaction
- the current session- Throws:
PersistenceException
- error at data layerPermissionException
- The user cannot destroy the document
-
changeIndexingStatus
Utility method used to declare that:- the document must be taken into consideration by the indexer (status
=
AbstractDocument.INDEX_TO_INDEX
. - the document must be taken into consideration by the indexer for the
metadata only(status =
AbstractDocument.INDEX_TO_INDEX_METADATA
. - 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.
- Parameters:
doc
- The document for which will be changed the indexer status.status
- The new document indexer status.
- the document must be taken into consideration by the indexer (status
=
-
makeImmutable
Marks the document, with the given docId, as immutable and save the given document history- Parameters:
docId
- identifier of the documenttransaction
- 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 movefolder
- The target foldertransaction
- 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 movefolder
- The target foldertransaction
- entry to log the event (set the user)links
- if links must be copied toonotes
- if notes and annotations must be copied toonotes
- if security settings must be copied too- Returns:
- The created document
- Throws:
PersistenceException
- error at data layerIOException
- 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 shortcutfolder
- The target foldertype
- 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
Replaces an alias with a copy of the original file- Parameters:
aliasId
- ID of the alias to replacetransaction
- entry to log the event (set the user)- Returns:
- The created document
- Throws:
PersistenceException
- raised if the alias cannot be replaced
-
deleteVersion
Deletes a specific version.- Parameters:
versionId
- The version to deletetransaction
- entry to log the event (set the user)- Returns:
- the latest version
- Throws:
PersistenceException
- If the version cannot be deleted
-
parseDocument
Retrieves the document's content as a string- Parameters:
doc
- the document representationfileVersion
- version of the file- Returns:
- The document's content
- Throws:
ParsingException
- error in the parsing
-
archiveFolder
Archives all the documents in a folder's tree- Parameters:
folderId
- The root foldertransaction
- 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
Archives all the documents in a folder's tree- Parameters:
docIds
- Documents to be archivedtransaction
- 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 createtransaction
- 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 createdPermissionException
- raised if the user does not have the download permission
-
unprotect
Tries to unprotect a document, If the password is correct, the document stays unprotected for all the duration of the session.- Parameters:
sid
- Session identifierdocId
- The document idpassword
- 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 processtransaction
- informations about the transaction, optional- Returns:
- number of moved files
- Throws:
PersistenceException
- error at data layerIOException
- 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 folderfileName
- name of the output file(must ends with .pdf)transaction
- informations about the transaction, optional- Returns:
- the generated merged document
- Throws:
IOException
- I/O errorPersistenceException
- error at data layer
-
countPages
Counts the number of pages of a document- Parameters:
doc
- the document- Returns:
- the number of pages
-