Interface AttachmentDataDao
-
- All Known Subinterfaces:
NonTransactionalAttachmentDataDao
,TransactionalAttachmentDataDao
- All Known Implementing Classes:
FileSystemAttachmentDataDao
,FileSystemAttachmentDataDao
,HibernateAttachmentDataDao
public interface AttachmentDataDao
This interface defines the methods for classes acting as a DAO at the level of data storage for Attachments.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description void
afterMigrationFrom()
Perform any tasks necessary after Attachment data has been moved from this data store to another.InputStream
getDataForAttachment(Attachment attachment)
Deprecated.AttachmentDataStream
getDataForAttachment(Attachment attachment, AttachmentDataStreamType dataStreamType)
Grabs the AttachmentData object for an AttachmentAttachmentDataStream
getDataForAttachment(Attachment attachment, AttachmentDataStreamType dataStreamType, Optional<RangeRequest> range)
Grabs the AttachmentData object for an AttachmentAttachmentDataStorageType
getStorageType()
Returns the storage type.boolean
isAttachmentPresent(Attachment attachment)
Check that an attachment existsvoid
moveAttachment(Attachment attachment, Attachment oldAttachment, ContentEntityObject newContent)
Moves an attachment to a new file name or content objectvoid
moveDataForAttachmentVersion(Attachment sourceAttachmentVersion, Attachment targetAttachmentVersion)
Moves the attachment data from oneAbstractVersionedEntityObject.getVersion()
to the other.void
prepareForMigrationTo()
Prepare the data store for a migration from another type of data store.void
removeDataForAttachment(Attachment attachment, ContentEntityObject originalContent)
Removes all attachment data for the given attachment.void
removeDataForAttachmentVersion(Attachment attachmentVersion, ContentEntityObject originalContent)
Removes the attachment data for the given attachment version.void
removeDataForAttachmentVersion(Attachment attachmentVersion, ContentEntityObject originalContent, AttachmentDataStreamType dataStreamType)
Removes the attachment data of the specific stream type for the given attachment version.void
replaceDataForAttachment(Attachment attachment, AttachmentDataStream dataStream)
Sets the data for attachmentvoid
replaceDataForAttachment(Attachment attachment, InputStream data)
Deprecated.void
saveDataForAttachment(Attachment attachment, AttachmentDataStream dataStream)
Saves data to the attachment data storevoid
saveDataForAttachment(Attachment attachment, InputStream data)
Deprecated.void
saveDataForAttachmentVersion(Attachment attachment, Attachment previousVersion, AttachmentDataStream dataStream)
Saves data to the attachment data store, for an attachment that has been updated.void
saveDataForAttachmentVersion(Attachment attachment, Attachment previousVersion, InputStream data)
-
-
-
Method Detail
-
getDataForAttachment
@Deprecated InputStream getDataForAttachment(Attachment attachment) throws AttachmentDataNotFoundException
Deprecated.Grabs the AttachmentData object for an Attachment- Parameters:
attachment
- the Attachment representing the data- Returns:
- an AttachmentData object
- Throws:
IllegalArgumentException
- if attachment is nullAttachmentDataNotFoundException
- if no data was found
-
getDataForAttachment
AttachmentDataStream getDataForAttachment(Attachment attachment, AttachmentDataStreamType dataStreamType) throws AttachmentDataNotFoundException
Grabs the AttachmentData object for an Attachment- Parameters:
attachment
- the Attachment representing the data- Returns:
- an AttachmentData object
- Throws:
IllegalArgumentException
- if attachment is nullAttachmentDataNotFoundException
- if no data was found
-
getDataForAttachment
AttachmentDataStream getDataForAttachment(Attachment attachment, AttachmentDataStreamType dataStreamType, Optional<RangeRequest> range) throws AttachmentDataNotFoundException
Grabs the AttachmentData object for an Attachment- Parameters:
attachment
- the Attachment representing the datadataStreamType
- the stream type of attachmentrange
- the range of attachment data- Returns:
- an AttachmentData object
- Throws:
IllegalArgumentException
- if attachment is nullAttachmentDataNotFoundException
- if no data was found
-
removeDataForAttachment
void removeDataForAttachment(Attachment attachment, ContentEntityObject originalContent)
Removes all attachment data for the given attachment. Since Confluence 4.2 the contract of this method has been clarified. It now removes all versions of the given attachment.- Parameters:
attachment
- the latest version of the attachment for which the data should be removedoriginalContent
- the content the attachment belongs to- Throws:
IllegalArgumentException
- if attachment is null
-
removeDataForAttachmentVersion
void removeDataForAttachmentVersion(Attachment attachmentVersion, ContentEntityObject originalContent)
Removes the attachment data for the given attachment version.- Parameters:
attachmentVersion
- the version of the attachment for which the data should be removedoriginalContent
- the content the attachment belongs to- Throws:
IllegalArgumentException
- if attachment is null- Since:
- 4.3
-
removeDataForAttachmentVersion
void removeDataForAttachmentVersion(Attachment attachmentVersion, ContentEntityObject originalContent, AttachmentDataStreamType dataStreamType)
Removes the attachment data of the specific stream type for the given attachment version.- Parameters:
attachmentVersion
- the version of the attachment for which the data should be removedoriginalContent
- the content the attachment belongs todataStreamType
- the data stream type- Throws:
IllegalArgumentException
- if attachment is null- Since:
- 6.5
-
moveDataForAttachmentVersion
void moveDataForAttachmentVersion(Attachment sourceAttachmentVersion, Attachment targetAttachmentVersion)
Moves the attachment data from oneAbstractVersionedEntityObject.getVersion()
to the other.This method will overwrite any existing data for the target attachment version.
- Parameters:
sourceAttachmentVersion
- the attachmenttargetAttachmentVersion
-- Throws:
IllegalArgumentException
- if theAttachment.getContainer()
differs- Since:
- 4.3
- See Also:
moveAttachment(Attachment, Attachment, ContentEntityObject)
-
saveDataForAttachment
@Deprecated void saveDataForAttachment(Attachment attachment, InputStream data)
Deprecated.Saves data to the attachment data store- Parameters:
attachment
- the Attachment the data belongs todata
- the InputStream to be written- Throws:
IllegalArgumentException
- if attachment is nullIllegalArgumentException
- if data is nullAttachmentDataStreamSizeMismatchException
- if bytes read from the data stream does not matchAttachment.getFileSize()
.
-
saveDataForAttachment
void saveDataForAttachment(Attachment attachment, AttachmentDataStream dataStream)
Saves data to the attachment data store- Parameters:
attachment
- the Attachment the data belongs todataStream
- the data stream to be written- Throws:
IllegalArgumentException
- if attachment is nullIllegalArgumentException
- if data is nullAttachmentDataStreamSizeMismatchException
- if bytes read from the data stream does not matchAttachment.getFileSize()
.- Since:
- 5.5
-
saveDataForAttachmentVersion
@Deprecated void saveDataForAttachmentVersion(Attachment attachment, Attachment previousVersion, InputStream data)
Deprecated.Saves data to the attachment data store, for an attachment that has been updated.This method assumes that the attachment has already been saved.
- Parameters:
attachment
- the new version of the attachmentpreviousVersion
- the previous version of the attachmentdata
- the InputStream representing the data- Throws:
AttachmentDataStreamSizeMismatchException
- if bytes read from the data stream does not matchAttachment.getFileSize()
.
-
saveDataForAttachmentVersion
void saveDataForAttachmentVersion(Attachment attachment, Attachment previousVersion, AttachmentDataStream dataStream)
Saves data to the attachment data store, for an attachment that has been updated.This method assumes that the attachment has already been saved.
- Parameters:
attachment
- the new version of the attachmentpreviousVersion
- the previous version of the attachmentdataStream
- the InputStream representing the data- Throws:
AttachmentDataStreamSizeMismatchException
- if bytes read from the data stream does not matchAttachment.getFileSize()
.- Since:
- 5.5
-
replaceDataForAttachment
@Deprecated void replaceDataForAttachment(Attachment attachment, InputStream data)
Deprecated.Sets the data for attachmentThis method will overwrite any existing data for the attachment.
- Parameters:
attachment
- Attachment the data belongs todata
- the data to be saved- Throws:
AttachmentDataStreamSizeMismatchException
- if bytes read from the data stream does not matchAttachment.getFileSize()
.
-
replaceDataForAttachment
void replaceDataForAttachment(Attachment attachment, AttachmentDataStream dataStream)
Sets the data for attachmentThis method will overwrite any existing data for the attachment.
- Parameters:
attachment
- Attachment the data belongs todataStream
- the data to be saved- Throws:
AttachmentDataStreamSizeMismatchException
- if bytes read from the data stream does not matchAttachment.getFileSize()
.- Since:
- 5.5
-
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- Parameters:
attachment
- the Attachment to be movedoldAttachment
- the original version of the attachmentnewContent
- the new content the Attachment belongs to- Throws:
IllegalArgumentException
- if attachment is nullIllegalArgumentException
- if newFileName is nullIllegalArgumentException
- if newContent is null
-
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.
Implementations may circumvent hibernate, so should only be called when nobody else can see the attachment data.
- 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.Implementations may circumvent hibernate, so should only be called when nobody else can see the attachment data.
- Throws:
RuntimeException
- if there was a problem
-
getStorageType
AttachmentDataStorageType getStorageType()
Returns the storage type.The client code should be storage agnostic in general. Thus this method should only be used in rare cases in order to hide operations which are known to be not implemented for the specific type.
- Returns:
- the storage type
- Since:
- 4.3
-
-