Class DelegatorAttachmentManager
- All Implemented Interfaces:
AttachmentManagerInternal,AttachmentManager,DelegatingAttachmentManager
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcopyAttachment(Attachment attachment, ContentEntityObject destinationContent) Copy specified attachment to specified destination content.voidcopyAttachments(ContentEntityObject sourceContent, ContentEntityObject destinationContent) Copy the latest version of all the attachments on the sourceContent to the destinationContent.voidcopyAttachments(ContentEntityObject sourceContent, ContentEntityObject destinationContent, SaveContext saveContext) Copy the latest version of all the attachments on the sourceContent to the destinationContent.longcountAttachmentsBySpaceAndStatuses(Space space, List<ContentStatus> statuses) This method only count the latest versions of attachments by statuses in a spacelongcountAttachmentsByStatuses(List<ContentStatus> statuses) This method only count the latest versions of attachments by statusesintReturns a count of the number of latest versions of attachmentsintcountLatestVersionsOfAttachmentsOnPageSince(ContentEntityObject content, Date since) Fetches number of attachments changed on a page since a specific timestampintReturns a count of the number of latest versions of attachments (including trashed)voiddeepAttachmentDelete(AttachmentDeleteOptions attachmentDeleteOptions) Support delete multiple attachments in batchfindAttachmentForDownloadPath(String downloadPath) Find anAttachmentfor the givendownloadPath.getAllVersions(Attachment attachment) Get all versions of an attachment, starting with the current versionReturns a list of all attachments, old and new.getAttachment(long id) getAttachment(ContentEntityObject content, String attachmentFileName) Get the most recent version of an attachment with a given name for a particular pagegetAttachment(ContentEntityObject content, String attachmentFileName, int version) Retrieve a named attachment from a pageProvides a back door to the underlyingAttachmentDao.getAttachmentData(Attachment attachment) Retrieve the data for attachmentgetAttachmentData(Attachment attachment, Optional<RangeRequest> range) Retrieve the specified range of data for attachmentgetAttachmentDownloadPath(ContentEntityObject content, String attachmentFileName) Get the download path for the most recent version of an attachment with the given name for some contentReturn the AttachmentManager implementation that the delegator wrapsgetAttachments(List<Long> ids) Returns a list of attachments matching the given list of IDs.Fetches statistics about attachmentsReturns the currently active storage type.getCopier(AttachmentManagerInternal destination) Retrieves a AttachmentDao.AttachmentCopier that will allow the attachments from one data store to be copied across to another.getFilteredAttachments(ContentEntityObject content, LimitedRequest pageRequest, Predicate<? super Attachment> filterPredicate) Returns the current attachments under the CEO.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.Returns a list of only latest versions of attachments.getLatestVersionsOfAttachmentsForMultipleCeos(Iterable<? extends ContentEntityObject> contentEntityObjects) Returns a list of all the latest versions of attachments for all the CEOs providedReturns a list of only latest versions of attachments (including trashed).getLatestVersionsOfAttachmentsWithAnyStatusForContainers(Iterable<? extends ContentEntityObject> contentEntityObjects) Returns a list of all the latest versions of attachments for all the CEOs provided (including trashed)getPreviousVersions(Attachment attachment) Get all non-current versions of an attachment, not including the current version.Gets a list of remapped attachment IDs.voidmoveAttachment(Attachment attachment, ContentEntityObject newContainer) Moves an attachment to a differentContentEntityObjectcontainer.voidmoveAttachment(Attachment attachment, String newFileName, ContentEntityObject newName) voidremoveAttachmentFromServer(Attachment attachment) Removes an Attachment and its data from the server and data store.voidremoveAttachments(List<? extends Attachment> attachments) Removes the contents of attachments from the servervoidremoveAttachmentVersionFromServer(Attachment attachment) Removes the given version of the Attachment and its data from the server and data store.voidRemoves the given version of the Attachment and its data from the server and data store while suppressing notifications.voidremoveAttachmentWithoutNotifications(Attachment attachment) Removes an Attachment and its data from the server while suppressing notifications.voidrestore(Attachment attachment) Restores an attachment from trash.voidsaveAttachment(Attachment attachment, Attachment previousVersion, InputStream attachmentData) Saves an Attachment and its datavoidsaveAttachment(Attachment attachment, Attachment previousVersion, InputStream attachmentData, SaveContext saveContext) Saves an Attachment and its data, taking aSaveContextto allow more useful event handling.voidsaveAttachments(List<SavableAttachment> savableAttachments) Saves multiple attachment and their datavoidsaveAttachments(List<SavableAttachment> savableAttachments, SaveContext saveContext) Saves multiple attachment and their data@NonNull PageResponse<Attachment>scanFilteredAttachments(Space space, List<ContentStatus> statuses, LimitedRequest pageRequest, Predicate<? super Attachment>... filter) Retrieves all the existing attachments associated with the instance of Confluence, while applying the specified pagination parameters to limit the number of results returned in each request.@NonNull PageResponse<Attachment>scanFilteredAttachments(List<ContentStatus> statuses, LimitedRequest pageRequest, Predicate<? super Attachment>... filter) Retrieves all the current attachments within the specified space, with the results limited according to the provided pagination parameters.voidsetAttachmentData(Attachment attachment, InputStream attachmentData) Set the data belonging to attachmentvoidsetDatabaseAttachmentManager(AttachmentManagerInternal databaseAttachmentManager) voidsetDefaultAttachmentManager(AttachmentManagerInternal defaultAttachmentManager) voidsetSettingsManager(SettingsManager settingsManager) voidtrash(Attachment attachment) Moves an attachment to the trash.
-
Constructor Details
-
DelegatorAttachmentManager
public DelegatorAttachmentManager()
-
-
Method Details
-
getAttachmentManager
Description copied from interface:DelegatingAttachmentManagerReturn the AttachmentManager implementation that the delegator wraps- Specified by:
getAttachmentManagerin interfaceDelegatingAttachmentManager- Returns:
- an AttachmentManager instance
-
deepAttachmentDelete
Description copied from interface:AttachmentManagerSupport delete multiple attachments in batch- Specified by:
deepAttachmentDeletein interfaceAttachmentManager
-
getAttachment
- Specified by:
getAttachmentin interfaceAttachmentManager- Returns:
- attachment with id
-
getAttachments
Description copied from interface:AttachmentManagerReturns 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.- Specified by:
getAttachmentsin interfaceAttachmentManager- Parameters:
ids- list of IDs to retrieve.- Returns:
- attachments matching ids in the list
-
getAllVersionsOfAttachments
Description copied from interface:AttachmentManagerReturns a list of all attachments, old and new.- Specified by:
getAllVersionsOfAttachmentsin interfaceAttachmentManager
-
getLatestVersionsOfAttachments
Description copied from interface:AttachmentManagerReturns a list of only latest versions of attachments.- Specified by:
getLatestVersionsOfAttachmentsin interfaceAttachmentManager
-
getLatestVersionsOfAttachmentsForMultipleCeos
public List<Attachment> getLatestVersionsOfAttachmentsForMultipleCeos(Iterable<? extends ContentEntityObject> contentEntityObjects) Description copied from interface:AttachmentManagerReturns a list of all the latest versions of attachments for all the CEOs provided- Specified by:
getLatestVersionsOfAttachmentsForMultipleCeosin interfaceAttachmentManager
-
getLatestVersionsOfAttachmentsWithAnyStatus
Description copied from interface:AttachmentManagerReturns a list of only latest versions of attachments (including trashed).- Specified by:
getLatestVersionsOfAttachmentsWithAnyStatusin interfaceAttachmentManager
-
getLatestVersionsOfAttachmentsWithAnyStatusForContainers
public List<Attachment> getLatestVersionsOfAttachmentsWithAnyStatusForContainers(Iterable<? extends ContentEntityObject> contentEntityObjects) Description copied from interface:AttachmentManagerInternalReturns a list of all the latest versions of attachments for all the CEOs provided (including trashed)- Specified by:
getLatestVersionsOfAttachmentsWithAnyStatusForContainersin interfaceAttachmentManagerInternal
-
getFilteredAttachments
public PageResponse<Attachment> getFilteredAttachments(ContentEntityObject content, LimitedRequest pageRequest, Predicate<? super Attachment> filterPredicate) Returns the current attachments under the CEO.- Specified by:
getFilteredAttachmentsin interfaceAttachmentManagerInternal- Parameters:
content- the content to return attachments forpageRequest- the pagination requestedfilterPredicate- the predicate for filtering found attachments- Returns:
- the paginated response of Page entities
-
countLatestVersionsOfAttachments
Description copied from interface:AttachmentManagerReturns a count of the number of latest versions of attachments- Specified by:
countLatestVersionsOfAttachmentsin interfaceAttachmentManager
-
countLatestVersionsOfAttachmentsWithAnyStatus
Description copied from interface:AttachmentManagerReturns a count of the number of latest versions of attachments (including trashed)- Specified by:
countLatestVersionsOfAttachmentsWithAnyStatusin interfaceAttachmentManager
-
countLatestVersionsOfAttachmentsOnPageSince
Description copied from interface:AttachmentManagerFetches number of attachments changed on a page since a specific timestamp- Specified by:
countLatestVersionsOfAttachmentsOnPageSincein interfaceAttachmentManager- Parameters:
content- the content objectsince- the date of earliest change- Returns:
- the number of attachments on a content object (including trashed) changed since
-
getAttachmentStatistics
Description copied from interface:AttachmentManagerFetches statistics about attachments- Specified by:
getAttachmentStatisticsin interfaceAttachmentManager- Returns:
- an AttachmentStatisticsDTO object with statistics about attachments such as total and current count
-
getAttachment
public Attachment getAttachment(ContentEntityObject content, String attachmentFileName, int version) Description copied from interface:AttachmentManagerRetrieve a named attachment from a page- Specified by:
getAttachmentin interfaceAttachmentManager- Parameters:
content- the page the attachment is attached toattachmentFileName- the filename of the attachment to retrieveversion- the version of the attachment to retrieve. If you provide a version of 0 or less, you'll get the most recent version, but you should probably use #getAttachment(AbstractPage, String) instead for that purpose instead- Returns:
- the requested attachment, or null if the requested attachment does not exist.
-
getAttachment
Description copied from interface:AttachmentManagerGet the most recent version of an attachment with a given name for a particular page- Specified by:
getAttachmentin interfaceAttachmentManager- Parameters:
content- the page the attachment is attached toattachmentFileName- the filename of the attachment to be retrieved- Returns:
- the appropriate attachment, or null if no such attachment exists
-
getAttachmentDownloadPath
Description copied from interface:AttachmentManagerGet the download path for the most recent version of an attachment with the given name for some content- Specified by:
getAttachmentDownloadPathin interfaceAttachmentManager- Parameters:
content- the content the attachment is attached toattachmentFileName- the filename of the attachment to be retrieved- Returns:
- the appropriate attachment download path, or null if no such attachment exists
-
getAttachmentData
Description copied from interface:AttachmentManagerRetrieve the data for attachment- Specified by:
getAttachmentDatain interfaceAttachmentManager- Parameters:
attachment- the Attachment the data belongs to- Returns:
- InputStream representing the data
-
getAttachmentData
Description copied from interface:AttachmentManagerRetrieve the specified range of data for attachment- Specified by:
getAttachmentDatain interfaceAttachmentManager- Parameters:
attachment- the Attachment the data belongs torange- the range of data to retrieve. Seecom.atlassian.filestore.client.api.entity.ByteRanges- Returns:
- InputStream representing the data
-
removeAttachmentWithoutNotifications
Description copied from interface:AttachmentManagerRemoves an Attachment and its data from the server while suppressing notifications. This is useful when you don't want to send notifications when removing the file.- Specified by:
removeAttachmentWithoutNotificationsin interfaceAttachmentManager
-
removeAttachmentFromServer
Description copied from interface:AttachmentManagerRemoves an Attachment and its data from the server and data store.- Specified by:
removeAttachmentFromServerin interfaceAttachmentManager- Parameters:
attachment- the Attachment to remove
-
removeAttachmentVersionFromServer
Description copied from interface:AttachmentManagerRemoves the given version of the Attachment and its data from the server and data store.In case of the given attachment being the latest version, the previous version (if any) gets removed and the given object impersonates the previous version as the latest version.
- Specified by:
removeAttachmentVersionFromServerin interfaceAttachmentManager- Parameters:
attachment- the Attachment to remove
-
removeAttachmentVersionFromServerWithoutNotifications
Description copied from interface:AttachmentManagerRemoves the given version of the Attachment and its data from the server and data store while suppressing notifications. This is useful when you don't want to send notifications when removing the file.In case of the given attachment being the latest version, the previous version (if any) gets removed and the given object impersonates the previous version as the latest version.
- Specified by:
removeAttachmentVersionFromServerWithoutNotificationsin interfaceAttachmentManager- Parameters:
attachment- the Attachment to remove
-
saveAttachment
public void saveAttachment(Attachment attachment, Attachment previousVersion, InputStream attachmentData, SaveContext saveContext) throws IOException Description copied from interface:AttachmentManagerSaves an Attachment and its data, taking aSaveContextto allow more useful event handling.- Specified by:
saveAttachmentin interfaceAttachmentManager- Parameters:
attachment- the modified version of the AttachmentpreviousVersion- the original version of the Attachment (null if new)attachmentData- an InputStream representing the data of the AttachmentsaveContext- provides more information about the circumstances of the save- Throws:
IOException
-
saveAttachment
public void saveAttachment(Attachment attachment, Attachment previousVersion, InputStream attachmentData) throws IOException Description copied from interface:AttachmentManagerSaves an Attachment and its data- Specified by:
saveAttachmentin interfaceAttachmentManager- Parameters:
attachment- the modified version of the AttachmentpreviousVersion- the original version of the Attachment (null if new)attachmentData- an InputStream representing the data of the Attachment- Throws:
IOException
-
saveAttachments
public void saveAttachments(List<SavableAttachment> savableAttachments, SaveContext saveContext) throws IOException Description copied from interface:AttachmentManagerSaves multiple attachment and their data- Specified by:
saveAttachmentsin interfaceAttachmentManager- Parameters:
savableAttachments- the modified version of the AttachmentsaveContext- provides more details about saving. If in doubt passDefaultSaveContext.DEFAULT.- Throws:
IOException
-
saveAttachments
Description copied from interface:AttachmentManagerSaves multiple attachment and their data- Specified by:
saveAttachmentsin interfaceAttachmentManager- Parameters:
savableAttachments- the modified version of the Attachment- Throws:
IOException
-
setAttachmentData
public void setAttachmentData(Attachment attachment, InputStream attachmentData) throws AttachmentDataExistsException Description copied from interface:AttachmentManagerSet the data belonging to attachmentThis method can be used when there is missing data for an Attachment (e.g. during imports) and the data needs to be set manually.
- Specified by:
setAttachmentDatain interfaceAttachmentManager- Parameters:
attachment- Attachment the data belongs toattachmentData- the data to be saved- Throws:
AttachmentDataExistsException- if data for attachment already exists
-
moveAttachment
- Specified by:
moveAttachmentin interfaceAttachmentManager- Parameters:
attachment- The attachment to be movednewFileName- New name of the filenewName- The new contentEntiityObject which will be parent to the attachment
-
moveAttachment
Description copied from interface:AttachmentManagerInternalMoves an attachment to a differentContentEntityObjectcontainer.- Specified by:
moveAttachmentin interfaceAttachmentManagerInternal- Parameters:
attachment- The attachment to be movednewContainer- The new ContentEntiityObject which will be parent to the attachment
-
copyAttachments
public void copyAttachments(ContentEntityObject sourceContent, ContentEntityObject destinationContent, SaveContext saveContext) throws IOException Description copied from interface:AttachmentManagerCopy the latest version of all the attachments on the sourceContent to the destinationContent.- Specified by:
copyAttachmentsin interfaceAttachmentManager- Parameters:
sourceContent- the content with attachments to be copied.destinationContent- the content to copy the attachments to.saveContext- details the circumstances under which the attachments are being copied.- Throws:
IOException- if there are problems reading or writing attachment data during the copy.
-
copyAttachments
public void copyAttachments(ContentEntityObject sourceContent, ContentEntityObject destinationContent) throws IOException Description copied from interface:AttachmentManagerCopy the latest version of all the attachments on the sourceContent to the destinationContent.- Specified by:
copyAttachmentsin interfaceAttachmentManager- Parameters:
sourceContent- the content with attachments to be copied.destinationContent- the content to copy the attachments to.- Throws:
IOException- if there are problems reading or writing attachment data during the copy.
-
copyAttachment
public void copyAttachment(Attachment attachment, ContentEntityObject destinationContent) throws IOException Description copied from interface:AttachmentManagerCopy specified attachment to specified destination content.- Specified by:
copyAttachmentin interfaceAttachmentManager- Parameters:
attachment- the attachmentdestinationContent- the destination- Throws:
IOException
-
getAllVersions
Description copied from interface:AttachmentManagerGet all versions of an attachment, starting with the current version- Specified by:
getAllVersionsin interfaceAttachmentManager
-
getPreviousVersions
Description copied from interface:AttachmentManagerGet all non-current versions of an attachment, not including the current version. (ordered from most recent)- Specified by:
getPreviousVersionsin interfaceAttachmentManager- Parameters:
attachment- the attachment to get all non-current versions for.
-
getLastAddedVersionsOf
Description copied from interface:AttachmentManagerRetrieves 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.- Specified by:
getLastAddedVersionsOfin interfaceAttachmentManager- Parameters:
attachment- attachment (must be the latest version)- Returns:
- the last added versions for each user who has added a version of the attachment
-
removeAttachments
Description copied from interface:AttachmentManagerRemoves the contents of attachments from the server- Specified by:
removeAttachmentsin interfaceAttachmentManager- Parameters:
attachments- a List of Attachments- See Also:
-
getCopier
Description copied from interface:AttachmentManagerInternalRetrieves a AttachmentDao.AttachmentCopier that will allow the attachments from one data store to be copied across to another.- Specified by:
getCopierin interfaceAttachmentManagerInternal- Parameters:
destination- the AttachmentManager the data is being copied to- Returns:
- an AttachmentCopier object
-
countAttachmentsByStatuses
Description copied from interface:AttachmentManagerInternalThis method only count the latest versions of attachments by statuses- Specified by:
countAttachmentsByStatusesin interfaceAttachmentManagerInternal- Parameters:
statuses- list ofContentStatus- Returns:
- since 9.2.5
-
countAttachmentsBySpaceAndStatuses
Description copied from interface:AttachmentManagerInternalThis method only count the latest versions of attachments by statuses in a space- Specified by:
countAttachmentsBySpaceAndStatusesin interfaceAttachmentManagerInternal- Parameters:
space- the space which the attachments belong tostatuses- list ofContentStatus- Returns:
- since 9.2.5
-
scanFilteredAttachments
public @NonNull PageResponse<Attachment> scanFilteredAttachments(Space space, List<ContentStatus> statuses, LimitedRequest pageRequest, Predicate<? super Attachment>... filter) Description copied from interface:AttachmentManagerInternalRetrieves all the existing attachments associated with the instance of Confluence, while applying the specified pagination parameters to limit the number of results returned in each request.- Specified by:
scanFilteredAttachmentsin interfaceAttachmentManagerInternal- Parameters:
space- the space to locate attachments instatuses- list of content status which we are interested to fetchpageRequest- the pagination requestedfilter- a Predicate to apply to the results before returning- Returns:
- the paginated response of Attachment entities in the given space
-
scanFilteredAttachments
public @NonNull PageResponse<Attachment> scanFilteredAttachments(List<ContentStatus> statuses, LimitedRequest pageRequest, Predicate<? super Attachment>... filter) Description copied from interface:AttachmentManagerInternalRetrieves all the current attachments within the specified space, with the results limited according to the provided pagination parameters.- Specified by:
scanFilteredAttachmentsin interfaceAttachmentManagerInternal- Parameters:
statuses- list of content status which we are interested to fetchpageRequest- the pagination requestedfilter- a Predicate to apply to the results before returning- Returns:
- the paginated response of Attachment entities in any space
-
getAttachmentDao
Description copied from interface:AttachmentManagerInternalProvides a back door to the underlyingAttachmentDao. Obviously it's better access the DAO directly, so this is deprecated.- Specified by:
getAttachmentDaoin interfaceAttachmentManagerInternal
-
setSettingsManager
-
setDefaultAttachmentManager
-
setDatabaseAttachmentManager
-
getBackingStorageType
Description copied from interface:AttachmentManagerReturns the currently active storage type.- Specified by:
getBackingStorageTypein interfaceAttachmentManager- See Also:
-
findAttachmentForDownloadPath
Description copied from interface:AttachmentManagerFind anAttachmentfor the givendownloadPath.The path must at least contain the segment produced by
Attachment.getDownloadPath(), that is /download/attachments/<contentId>/<fileName> where <contentId> identifies a validContentEntityObjectand <fileName> identifies a validAttachmentattached to thatContentEntityObject.- Specified by:
findAttachmentForDownloadPathin interfaceAttachmentManager- Parameters:
downloadPath- the download path identifying anAttachment.This value is expected to be url encoded, with spaces converted to %20 instead of a '+'- Returns:
- maybe the attachment if the given download path matches the criteria as described above and the referenced objects are known to the system
- See Also:
-
getRemappedAttachmentIds
Description copied from interface:AttachmentManagerGets a list of remapped attachment IDs. The key is the old ID and the value is the new ID.- Specified by:
getRemappedAttachmentIdsin interfaceAttachmentManager- Returns:
- A map where the key is the original ID and the value is the new ID.
-
trash
Description copied from interface:AttachmentManagerMoves an attachment to the trash.- Specified by:
trashin interfaceAttachmentManager- Parameters:
attachment- the attachment to be trashed
-
restore
Description copied from interface:AttachmentManagerRestores an attachment from trash.- Specified by:
restorein interfaceAttachmentManager- Parameters:
attachment- the attachment to restore
-