Interface AttachmentDao

    • Method Detail

      • getLatestVersionsOfAttachmentsForMultipleCeos

        List<Attachment> getLatestVersionsOfAttachmentsForMultipleCeos​(Iterable<? extends ContentEntityObject> contentEntityObjects)
        Retrieves the latest versions of all attachments for all CEOs provided
        Parameters:
        contentEntityObjects - CEOs to retrieve attachements for
        Returns:
        a List of Attachment objects
        Since:
        5.9.2
      • countLatestVersionsOfAttachmentsWithAnyStatus

        int countLatestVersionsOfAttachmentsWithAnyStatus​(ContentEntityObject content)
        Parameters:
        content - the content object
        Returns:
        the number of current attachments on a content object (including trashed)
      • getAttachmentStatistics

        Optional<AttachmentStatisticsDTO> getAttachmentStatistics()
        Fetches statistics about attachments
        Returns:
        an AttachmentStatisticsDTO with statistics about attachments such as total and current count
        Since:
        6.11.0
      • findAll

        List<Attachment> findAll()
        Retrieves the latest versions of all Attachments

        Use of this method is discouraged when there are a large amount of Attachments.

        Returns:
        A List of Attachment objects
        See Also:
        findLatestVersionsIterator()
      • findLatestVersionsIterator

        Iterator<Attachment> findLatestVersionsIterator()
        Retrieves the latest versions of all Attachments and returns an Iterator to the results.
        Returns:
        Iterator to the results
      • saveNewAttachment

        void saveNewAttachment​(Attachment attachment,
                               InputStream attachmentData)
        Saves a new attachment
        Parameters:
        attachment - the Attachment to be saved
        attachmentData - the attachment data to be saved
      • saveNewAttachmentVersion

        void saveNewAttachmentVersion​(Attachment attachment,
                                      Attachment previousVersion,
                                      InputStream attachmentData)
        Saves a new version of attachment
        Parameters:
        attachment - the Attachment to be saved
        previousVersion - the previous version of the Attachment
        attachmentData - the attachment data to be saved
      • isAttachmentPresent

        boolean isAttachmentPresent​(Attachment attachment)
        Check that an attachment exists
        Parameters:
        attachment - the Attachment to be checked
      • moveAttachment

        void moveAttachment​(Attachment attachment,
                            Attachment oldAttachment,
                            ContentEntityObject newContent)
        Moves an Attachment to a new file name or content object

        This method assumes that the filename and/or content of the attachment (and its previous versions) have already been updated.

        Parameters:
        attachment - the Attachment to be moved
        oldAttachment - the Attachment before it has been updated
        newContent - the new content attachment belongs to
        Throws:
        IllegalArgumentException - if attachment is not the latest version
      • removeAttachmentFromServer

        void removeAttachmentFromServer​(Attachment attachment)
        Removes attachment (and all of its versions)
        Parameters:
        attachment - the Attachment to be removed
      • removeAttachmentVersionFromServer

        void removeAttachmentVersionFromServer​(Attachment attachment)
        Removes an attachment version
        Parameters:
        attachment - the Attachment version to be removed
        Since:
        4.2
      • replaceAttachmentData

        void replaceAttachmentData​(Attachment attachment,
                                   InputStream attachmentData)
        Sets the attachment data for attachment

        This method will overwrite any existing data for the attachment version.

        Parameters:
        attachment - Attachment the data belongs to
        attachmentData - the data to save
      • getMigrator

        AttachmentDao.AttachmentMigrator getMigrator​(AttachmentDao destinationDao)
        Get a migrator object to migrate attachments between attachment datastores.

        To be used when switching datastore implementations

        Parameters:
        destinationDao - dao to move attachments to
        Returns:
        A migrator
      • getCopier

        AttachmentDao.AttachmentCopier getCopier​(AttachmentDao destinationDao)
        Get a copier object to copy attachments between data stores

        The source data store will remain untouched

        Parameters:
        destinationDao - dao to copy attachments to
        Returns:
        A copier
      • prepareForMigrationTo

        void prepareForMigrationTo()
        Prepare the data store for a migration from another type of data store.

        Classes implementing this method will perform any tasks necessary to allow the data store to be used. These tasks may assume that users are locked out of the system.

        Throws:
        RuntimeException - if there was a problem
      • afterMigrationFrom

        void afterMigrationFrom()
        Perform any tasks necessary after Attachment data has been moved from this data store to another. These tasks may assume that users are locked out of the system.
        Throws:
        RuntimeException - if there was a problem
      • getById

        Attachment getById​(long id)
        Returns the attachment with the given persistent ID. Returns null if no such attachment exists.
        Parameters:
        id - the persistent ID of the attachment to retrieve
        Returns:
        the attachment with the given ID, or null if no attachment exists with the provided ID.
        Since:
        3.0
      • getByIds

        List<Attachment> getByIds​(List<Long> ids)
        Returns a list of attachments matching the given list of IDs. Returns an empty list if no such attachments exist. In the case where some IDs exist and some don't, only the existing Attachments will be returned.
        Parameters:
        ids - list of IDs to retrieve
        Returns:
        the attachments with the given IDs, or an empty list if no attachments exist with the provided IDs.
        Since:
        5.7
      • getLatestAttachment

        Attachment getLatestAttachment​(ContentEntityObject content,
                                       String fileName)
                                throws IllegalArgumentException
        Return the latest version of the attachment on the specified content with the given filename. Returns null if no attachment with that name on the content exists.
        Parameters:
        content - the content to find the attachment on
        fileName - the file name of the attachment
        Returns:
        the latest version of attachment with the given name attached to that content, or null if the attachment does not exist.
        Throws:
        IllegalArgumentException - if the content or fileName is null
        Since:
        3.0
      • getLastAddedVersionsOf

        List<Attachment> getLastAddedVersionsOf​(Attachment attachment)
        Retrieves all the last added versions for each user who has added a version of the attachment That is, if a user has added multiple versions, only the latest added version will be added to the list returned. Result will be sorted with the earliest version coming first.
        Parameters:
        attachment - attachment (must be the latest version)
        Returns:
        the last added versions for each user who has added a version of the attachment
        Throws:
        IllegalArgumentException - if the attachment is not the latest version or null
      • updateAttachment

        void updateAttachment​(Attachment attachment)
        Update an existing attachment without creating a new version
        Parameters:
        attachment -
        Since:
        5.7
      • getRemappedAttachmentIds

        Map<Long,​Long> getRemappedAttachmentIds()
        Gets a list of remapped attachment IDs. The key is the old ID and the value is the new ID.
        Returns:
        A map where the key is the original ID and the value is the new ID.
        Since:
        5.7.1