Interface AttachmentService

    • Method Detail

      • deleteAllAttachments

        void deleteAllAttachments​(String componentInstanceId)
                           throws AttachmentException
        Deletes all the documents related to the component instance identified by the specified identifier.
        Parameters:
        componentInstanceId - the component instance identifier.
        Throws:
        AttachmentException - if the deletion failed.
      • getBinaryContent

        void getBinaryContent​(File file,
                              SimpleDocumentPK pk,
                              String lang)
        Writes the binary content into the specified File.
        Parameters:
        file - the file where the content is to be written.
        pk - the id of the document.
        lang - the language of the content.
      • getBinaryContent

        void getBinaryContent​(OutputStream output,
                              SimpleDocumentPK pk,
                              String lang)
        Writes the binary content into the specified OutputStream.
        Parameters:
        output - the stream where the content is to be written.
        pk - the id of the document.
        lang - the language of the content.
      • getBinaryContent

        void getBinaryContent​(OutputStream output,
                              SimpleDocumentPK pk,
                              String lang,
                              long contentOffset,
                              long contentLength)
        Writes the binary content contained between begin and end indexes into the specified OutputStream.
        Parameters:
        output - the stream where the content is to be written.
        pk - the id of the document.
        lang - the language of the content.
        contentOffset - number of bytes to skip from input content before copying into output.
        contentLength - number of bytes to copy.
      • cloneDocument

        SimpleDocumentPK cloneDocument​(SimpleDocument original,
                                       String foreignCloneId)
        Clones the given document and attached it to the specified resource. The document is attached to a resource that has been cloned; hence this method is to clone the document in order to attach it to the cloned resource. The difference between a clone and a copy is the clone maintains a link with its original counterpart: any changes performed in one is synchronized with the other.
        Parameters:
        original - the document to clone.
        foreignCloneId - the identifier of the resource to which the document is attached.
        Returns:
        the identifier of the cloned document.
      • mergeDocuments

        Map<String,​String> mergeDocuments​(ResourceReference originalResource,
                                                ResourceReference clonedResource,
                                                DocumentType type)
        Merges the documents of the cloned resource with their original counterparts.
        Parameters:
        originalResource - the original resource.
        clonedResource - the cloned resource.
        type - the type of the documents to merge.
        Returns:
        a map with the cloned document identifier as key and the original document identifier as value.
      • copyDocument

        SimpleDocumentPK copyDocument​(SimpleDocument original,
                                      ResourceReference targetResource)
        Copies the specified document to another existing resource. The difference between a copy with a clone is the copy is detached to the original document from which it has been copied. So any changes in one isn't reported to the other one.
        Parameters:
        original - the document to copy.
        targetResource - the resource to which the copy of the document has to be attached.
        Returns:
        the identifier of the copy.
      • copyAllDocuments

        List<org.silverpeas.kernel.util.Pair<SimpleDocumentPK,​SimpleDocumentPK>> copyAllDocuments​(ResourceReference sourceResource,
                                                                                                        ResourceReference destinationResource)
        Copies all the attachments linked to the given source resource to the specified destination one.
        Parameters:
        sourceResource - the reference of the resource (identifier and component instance) from which the attachments must be copied.
        destinationResource - the reference of the resource (identifier and component instance) to which attachments will be copied.
        Returns:
        le list of copied attachments, empty if nothing is copied.
      • moveDocument

        SimpleDocumentPK moveDocument​(SimpleDocument document,
                                      ResourceReference destination)
        Moves the specified document to the given resource.
        Parameters:
        document - the document to be moved.
        destination - the resource to which the document has to be attached.
        Returns:
        the new document identifier once moved.
      • moveAllDocuments

        List<SimpleDocumentPK> moveAllDocuments​(ResourceReference sourceResource,
                                                ResourceReference destinationResource)
        Moves all the attachments linked to the specified resource to the another one.
        Parameters:
        sourceResource - the reference of the resource (identifier and component instance) from which linked attachments must be moved.
        destinationResource - the reference of the resource (identifier and component instance) that will get the moved attachments.
        Returns:
        le list of moved attachments, empty if nothing is moved.
      • createAttachment

        SimpleDocument createAttachment​(SimpleDocument document,
                                        InputStream content)
                                 throws AttachmentException
        Creates the attachment and saves the content of the specified document. The created document is indexed and a notification about the creation is sent.

        The filename returned by SimpleDocument.getFilename() is normalized in order to get only single character encoding and no more combined characters. The normalized filename is set to the given document.

        Parameters:
        document - the document to be created.
        content - the binary content of the document.
        Returns:
        the stored document.
        Throws:
        AttachmentException - if the creation of the specified document fails.
      • createAttachment

        SimpleDocument createAttachment​(SimpleDocument document,
                                        InputStream content,
                                        boolean indexIt)
        Creates the attachment, saves the content of the specified document and indexes it if asked. Once the attachment created, a notification about this creation is then sent.

        The filename returned by SimpleDocument.getFilename() is normalized in order to get only single character encoding and no more combined characters. The normalized filename is set to the given document.

        Parameters:
        document - the document to be created.
        content - the binary content of the document.
        indexIt - true if the document has to be indexed, false otherwise.
        Returns:
        the stored document.
      • createAttachment

        SimpleDocument createAttachment​(SimpleDocument document,
                                        InputStream content,
                                        boolean indexIt,
                                        boolean notify)
        Creates the attachment, saves the content of the specified document, indexes it if asked, and notifies about the creation.

        The filename returned by SimpleDocument.getFilename() is normalized in order to get only single character encoding and no more combined characters. The normalized filename is set to the given document.

        Parameters:
        document - the document to be created.
        content - the binary content of the document.
        indexIt - true if the document has to be indexed, false otherwise.
        notify - true if a notification about the creation has to be sent, false otherwise.
        Returns:
        the stored document.
      • createAttachment

        SimpleDocument createAttachment​(SimpleDocument document,
                                        File content)
                                 throws AttachmentException
        Creates the attachment and saves the content of the specified document. The created document is indexed and a notification about the creation is sent.

        The filename returned by SimpleDocument.getFilename() is normalized in order to get only single character encoding and no more combined characters. The normalized filename is set to the given document.

        Parameters:
        document - the document to be created.
        content - the binary content of the document.
        Returns:
        the stored document.
        Throws:
        AttachmentException - if an error occurs while creating the attachment and saving the content.
      • createAttachment

        SimpleDocument createAttachment​(SimpleDocument document,
                                        File content,
                                        boolean indexIt)
        Creates the attachment, saves the content of the specified document and indexes it if asked. Once the attachment created, a notification about this creation is then sent.

        The filename returned by SimpleDocument.getFilename() is normalized in order to get only single character encoding and no more combined characters. The normalized filename is set to the given document.

        Parameters:
        document - the document to be created.
        content - the binary content of the document.
        indexIt - true if the document has to be indexed, false otherwise.
        Returns:
        the stored document.
      • createAttachment

        SimpleDocument createAttachment​(SimpleDocument document,
                                        File content,
                                        boolean indexIt,
                                        boolean notify)
        Creates the attachment, saves the content of the specified document, indexes it if asked, and notifies about the creation.

        The filename returned by SimpleDocument.getFilename() is normalized in order to get only single character encoding and no more combined characters. The normalized filename is set to the given document.

        Parameters:
        document - the document to be created.
        content - the binary content of the document.
        indexIt - true if the document has to be indexed, false otherwise.
        notify - true if a notification about the creation has to be sent, false otherwise.
        Returns:
        the stored document.
      • createIndex

        void createIndex​(SimpleDocument document)
        Indexes the specified document.
        Parameters:
        document - the document
      • deleteIndex

        void deleteIndex​(SimpleDocument document)
        Deletes any index on the specified document.
        Parameters:
        document - the document.
      • createIndex

        void createIndex​(SimpleDocument document,
                         Date startOfVisibilityPeriod,
                         Date endOfVisibilityPeriod)
        Creates an index on the specified document with a period of time of visibility.
        Parameters:
        document - the document to index.
        startOfVisibilityPeriod - the date at which the document should be visible.
        endOfVisibilityPeriod - the date at which the document shouldn't be anymore visible.
      • deleteAllAttachments

        void deleteAllAttachments​(String resourceId,
                                  String componentInstanceId)
        Deletes all the documents attached to a resource.
        Parameters:
        resourceId - the identifier of the resource.
        componentInstanceId - the identifier of the component instance into which the resource is located.
      • deleteAttachment

        void deleteAttachment​(SimpleDocument document)
        Deletes the given document and notifies about this deletion.
        Parameters:
        document - the document to delete.
      • deleteAttachment

        void deleteAttachment​(SimpleDocument document,
                              boolean notify)
        Deletes the given document and notifies about this deletion is asked.
        Parameters:
        document - the document to delete.
        notify - true if a notification about the deletion has to be sent. False otherwise.
        Throws:
        AttachmentException - if the document cannot be deleted.
      • removeContent

        void removeContent​(SimpleDocument document,
                           String lang,
                           boolean notify)
        Removes the content of the specified document in the given language.
        Parameters:
        document - the document.
        lang - the ISO-631 code of a language.
        notify - true if a notification about the content deletion has to be sent. False otherwise. If the document has again content (in others languages), an document update event is sent. Otherwise a deletion event is sent.
      • reorderAttachments

        void reorderAttachments​(List<SimpleDocumentPK> pks)
                         throws AttachmentException
        Reorders the documents referenced in the given list according their order in the list.
        Parameters:
        pks - a list of document identifiers.
        Throws:
        AttachmentException - if an error occurs while reordering the documents.
      • reorderDocuments

        void reorderDocuments​(List<SimpleDocument> documents)
                       throws AttachmentException
        Reorders the documents in the given list according their order in the list.
        Parameters:
        documents - the documents to reorder.
        Throws:
        AttachmentException - if an error occurs while reordering the documents.
      • searchDocumentById

        SimpleDocument searchDocumentById​(SimpleDocumentPK docPk,
                                          String lang)
        Search the document with the given identifier and in the specified language.
        Parameters:
        docPk - the identifier of the document to search.
        lang - the ISO-631 code of a language.
        Returns:
        the document or null if no such document exists.
        Throws:
        AttachmentException - if an error occurs while searching the document.
      • listDocumentsByForeignKey

        SimpleDocumentList<SimpleDocument> listDocumentsByForeignKey​(ResourceReference foreignKey,
                                                                     String lang)
        Search all the documents of type files attached to the specified resource and in the given language.
        Parameters:
        foreignKey - a reference to the resource.
        lang - the ISO-631 code of a language.
        Returns:
        the list of documents of type files attached to the specified resource.
        Throws:
        AttachmentException - if an error occurs while searching the documents.
      • listAllDocumentsByForeignKey

        SimpleDocumentList<SimpleDocument> listAllDocumentsByForeignKey​(ResourceReference foreignKey,
                                                                        String lang)
        Search all the documents (whatever their type: files, xmlform content, wysiwyg, ...) attached to the specified resource and in the given language.
        Parameters:
        foreignKey - a reference to the resource.
        lang - the ISO-631 code of a language.
        Returns:
        the list of documents attached to the specified resource.
        Throws:
        AttachmentException - if an error occurs while searching the documents.
      • listDocumentsByForeignKeyAndType

        SimpleDocumentList<SimpleDocument> listDocumentsByForeignKeyAndType​(ResourceReference foreignKey,
                                                                            DocumentType type,
                                                                            String lang)
        Search all the documents attached to the specified resource, for a given type of document, and in the specified language.
        Parameters:
        foreignKey - a reference to the resource.
        type - the type of the documents to search.
        lang - the ISO-621 code of a language.
        Returns:
        the list of documents attached to the specified resource.
        Throws:
        AttachmentException - if an error occurs while searching the documents.
      • unindexAttachmentsOfExternalObject

        void unindexAttachmentsOfExternalObject​(ResourceReference externalResource)
        Remove indexes on all the attachments of the specified resource.
        Parameters:
        externalResource - a reference to the resource.
      • updateAttachment

        void updateAttachment​(SimpleDocument document,
                              boolean indexIt,
                              boolean notify)
        Updates the specified whole document: status, metadata but not its content.

        The filename returned by SimpleDocument.getFilename() is normalized in order to get only single character encoding and no more combined characters. The normalized filename is set to given document.

        Parameters:
        document - the document to update.
        indexIt - true if the document change has to be indexed. False otherwise.
        notify - true if a notification about the update has to be sent. False otherwise.
      • updateAttachment

        void updateAttachment​(SimpleDocument document,
                              File content,
                              boolean indexIt,
                              boolean notify)
        Updates the specified whole document with its content either by updating the given content or by adding it among its others contents.

        The filename returned by SimpleDocument.getFilename() is normalized in order to get only single character encoding and no more combined characters. The normalized filename is set to given document.

        Parameters:
        document - the document to update.
        content - the content to update or to add (in the case of multi-languages support).
        indexIt - true if the change has to be indexed. False otherwise.
        notify - true if a notification about the update has to be sent. False otherwise.
      • updateAttachment

        void updateAttachment​(SimpleDocument document,
                              InputStream content,
                              boolean indexIt,
                              boolean notify)
        Updates the specified whole document with its content either by updating the given content or by adding it among its others contents.

        The filename returned by SimpleDocument.getFilename() is normalized in order to get only single character encoding and no more combined characters. The normalized filename is set to given document.

        Parameters:
        document - the document to update.
        content - the content to update or to add (in the case of multi-languages support).
        indexIt - true if the change has to be indexed. False otherwise.
        notify - true if a notification about the update has to be sent. False otherwise.
      • listDocumentsRequiringWarning

        List<SimpleDocument> listDocumentsRequiringWarning​(Date alertDate,
                                                           String language)
        Search all the documents in an instance which are locked at the alert date.
        Parameters:
        alertDate - the date when a warning is required.
        language - the language in which the documents are required.
        Returns:
        an ordered list of the documents.
      • listExpiringDocuments

        List<SimpleDocument> listExpiringDocuments​(Date alertDate,
                                                   String language)
        Search all the documents in an instance which require an alert at the specified date.
        Parameters:
        alertDate - the date when the document reservation should alter.
        language - the language in which the documents are required.
        Returns:
        an ordered list of the documents.
      • listDocumentsToUnlock

        List<SimpleDocument> listDocumentsToUnlock​(Date expiryDate,
                                                   String language)
        Search all the documents in an instance requiring to be unlocked at the specified date.
        Parameters:
        expiryDate - the date when the document reservation should expire.
        language - the language in which the documents are required.
        Returns:
        an ordered list of the documents.
      • lock

        boolean lock​(String attachmentId,
                     String userId,
                     String language)
        Checkout a file to be updated by user.
        Parameters:
        attachmentId - the id of the attachment to be locked.
        userId - : the user locking and modifying the attachment.
        language - the language of the attachment.
        Returns:
        false if the attachment is already checkout - true if the attachment was successfully checked out.
      • unlock

        boolean unlock​(UnlockContext context)
        Release a locked file.
        Parameters:
        context - : the unlock parameters.
        Returns:
        false if the file is locked - true if the unlock succeeded.
        Throws:
        AttachmentException - if the unlocking fails.
      • changeVersionState

        SimpleDocumentPK changeVersionState​(SimpleDocumentPK pk,
                                            String comment)
        Change the management of versions of the document. If the document is currently with version management, then all history is removed and the document becomes a simple document with no more version management. If the document has no version management then a new public version is created and the document becomes a document with a version history management. F
        Parameters:
        pk - the id of the document.
        comment - the comment of the versioned document if we are switching from simple to versioned.
        Returns:
        the pk to the document after is state change.
      • findExistingDocument

        SimpleDocument findExistingDocument​(SimpleDocumentPK pk,
                                            String fileName,
                                            ResourceReference foreign,
                                            String lang)
        Find documents with the same name attached to the specified foreign id.
        Parameters:
        fileName - the name of the file.
        pk - the id of the document.
        lang - the language of the document.
        foreign - the id of the container of the document.
        Returns:
        a document with the same filename - null if none is found.
      • listDocumentsLockedByUser

        List<SimpleDocument> listDocumentsLockedByUser​(String usedId,
                                                       String language)
        Search all the documents locked by a specific user.
        Parameters:
        usedId - the id of the user.
        language - the language in which the documents are required.
        Returns:
        an ordered list of the documents.
      • indexAllDocuments

        void indexAllDocuments​(ResourceReference resource,
                               Date startOfVisibilityPeriod,
                               Date endOfVisibilityPeriod)
        Indexes all the documents (whatever their type) of the given resource.
        Parameters:
        resource - the resource.
        startOfVisibilityPeriod - the start date of the document visibility. It can be null.
        endOfVisibilityPeriod - the end date of the document visibility. It can be null.
      • switchComponentBehaviour

        void switchComponentBehaviour​(String componentId,
                                      boolean versioned)
        Change the management of versions of the documents of a whole component (only attachments are taken into account). If the document is currently with version management, then all history is removed and the document becomes a simple document with no more version management. If the document has no version management then a new public version is created and the document becomes a document with a version history management.
        Parameters:
        componentId - the id of the component switching its behaviour.
        versioned - if set to true all simple attachments become versioned, if false all versioned attachments become simple attachments.
      • switchAllowingDownloadForReaders

        void switchAllowingDownloadForReaders​(SimpleDocumentPK pk,
                                              boolean allowing)
        Allows or forbids the download for readers.
        Parameters:
        pk - the id of the document.
        allowing - : allowing the download for readers if true versioned attachments become simple attachments.
      • switchEnableDisplayAsContent

        void switchEnableDisplayAsContent​(SimpleDocumentPK pk,
                                          boolean enable)
        Enables or not the display of the content of an attachment.
        Parameters:
        pk - the id of the document.
        enable - enable the display if true
      • switchEnableEditSimultaneously

        void switchEnableEditSimultaneously​(SimpleDocumentPK pk,
                                            boolean enable)
        Enables or not the simultaneous edition of the content of an attachment.
        Parameters:
        pk - the id of the document.
        enable - enable edition simultaneously if true