@PublicApi
public interface AttachmentManager
Modifier and Type | Field and Description |
---|---|
static String |
THUMBS_SUBDIR
The name of the issue-specific sub-directory in which its attachment thumbnails are stored.
|
Modifier and Type | Method and Description |
---|---|
boolean |
attachmentsEnabled()
Determine if attachments have been enabled in JIRA and if the attachments directory exists.
|
io.atlassian.fugue.Either<AttachmentError,ChangeItemBean> |
convertTemporaryAttachment(ConvertTemporaryAttachmentParams params)
Converts temporary attachment into real attachment.
|
List<ChangeItemBean> |
convertTemporaryAttachments(ApplicationUser user,
Issue issue,
List<Long> selectedAttachments,
TemporaryAttachmentsMonitor temporaryAttachmentsMonitor)
|
io.atlassian.fugue.Either<AttachmentError,Attachment> |
copyAttachment(Attachment attachment,
ApplicationUser author,
String newIssueKey)
Copy an attachment to another issue.
|
Map<Long,io.atlassian.fugue.Either<AttachmentError,Attachment>> |
copyAttachments(Context context,
Issue issue,
ApplicationUser author,
String newIssueKey)
Copy Issue attachments to another issue.
|
Map<Long,io.atlassian.fugue.Either<AttachmentError,Attachment>> |
copyAttachments(Issue issue,
ApplicationUser author,
String newIssueKey)
Copy Issue attachments to another issue.
|
ChangeItemBean |
createAttachment(CreateAttachmentParamsBean createAttachmentParamsBean)
Create an attachment both on disk, and in the database.
|
ChangeItemBean |
createAttachment(File file,
String filename,
String contentType,
ApplicationUser author,
org.ofbiz.core.entity.GenericValue issue)
Deprecated.
Use
#createAttachment(File, String, String, User, Issue) instead. Since v5.0. |
ChangeItemBean |
createAttachment(File file,
String filename,
String contentType,
ApplicationUser author,
org.ofbiz.core.entity.GenericValue issue,
Boolean zip,
Boolean thumbnailable,
Map<String,Object> attachmentProperties,
Date createdTime)
Deprecated.
Use
#createAttachment(File, String, String, User, Issue, Map, Date) instead. Since v5.0. |
ChangeItemBean |
createAttachment(File file,
String filename,
String contentType,
ApplicationUser author,
org.ofbiz.core.entity.GenericValue issue,
Map<String,Object> attachmentProperties,
Date createdTime)
Deprecated.
Use
#createAttachment(File, String, String, User, Issue, Map, Date) instead. Since v5.0. |
ChangeItemBean |
createAttachment(File file,
String filename,
String contentType,
ApplicationUser author,
Issue issue)
Deprecated.
Use
createAttachment(com.atlassian.jira.issue.attachment.CreateAttachmentParamsBean) instead. Since v6.0. |
ChangeItemBean |
createAttachment(File file,
String filename,
String contentType,
ApplicationUser author,
Issue issue,
Boolean zip,
Boolean thumbnailable,
Map<String,Object> attachmentProperties,
Date createdTime)
Deprecated.
Use
createAttachment(com.atlassian.jira.issue.attachment.CreateAttachmentParamsBean) instead. Since v6.0. |
ChangeItemBean |
createAttachment(File file,
String filename,
String contentType,
ApplicationUser author,
Issue issue,
Map<String,Object> attachmentProperties,
Date createdTime)
Deprecated.
Use
createAttachment(com.atlassian.jira.issue.attachment.CreateAttachmentParamsBean) instead. Since v6.0. |
Attachment |
createAttachment(org.ofbiz.core.entity.GenericValue issue,
ApplicationUser author,
String mimetype,
String filename,
Long filesize,
Map<String,Object> attachmentProperties,
Date createdTime)
Deprecated.
Use
#createAttachment(File, String, String, User, Issue, Map, Date) instead. Since v5.0. |
Attachment |
createAttachmentCopySourceFile(File file,
String filename,
String contentType,
String attachmentAuthor,
Issue issue,
Map<String,Object> attachmentProperties,
Date createdTime)
Deprecated.
Use
createAttachment(com.atlassian.jira.issue.attachment.CreateAttachmentParamsBean) instead. Since v6.0. |
TemporaryAttachmentId |
createTemporaryAttachment(InputStream stream,
long size)
Creates new temporary attachment which may be later converted into real attachment.
|
void |
deleteAttachment(Attachment attachment)
Delete an attachment from the database and from the attachment store.
|
void |
deleteAttachmentDirectory(Issue issue)
Deprecated.
This will no longer be exposed by AttachmentManager.
|
void |
deleteTemporaryAttachment(TemporaryAttachmentId temporaryAttachmentId)
Removes temporary attachment with given id
|
Attachment |
getAttachment(Long id)
Get a single attachment by its ID.
|
List<Attachment> |
getAttachments(Issue issue)
Get a list of all attachments for a certain issue.
|
List<Attachment> |
getAttachments(Issue issue,
Comparator<? super Attachment> comparator)
Get a list of all attachments for a certain issue, sorted according to the specified comparator.
|
boolean |
isScreenshotAppletEnabled()
Determine if screenshot applet has been enabled in JIRA.
|
boolean |
isScreenshotAppletSupportedByOS()
Determine if the screenshot applet is supported by the user's operating system.
|
void |
moveAttachments(Issue oldIssue,
String newIssueKey)
Move Issue attachments to a new directory.
|
Attachment |
setThumbnailable(Attachment attachment,
boolean thumbnailable)
Stores the thumbnailble flag for this attachment
|
Attachment |
setZip(Attachment attachment,
boolean zip)
Stores the zip flag for this attachment
|
<T> T |
streamAttachmentContent(Attachment attachment,
InputStreamConsumer<T> consumer)
Get binary content of the attachment
|
<T> T |
streamTemporaryAttachmentContent(TemporaryAttachmentId attachmentId,
InputStreamConsumer<T> consumer)
Get binary content of temporary attachment
|
AttachmentsBulkOperationResult<ChangeItemBean> |
tryConvertTemporaryAttachments(ApplicationUser user,
Issue issue,
List<Long> selectedAttachments,
TemporaryAttachmentsMonitor temporaryAttachmentsMonitor)
|
io.atlassian.fugue.Either<AttachmentError,ChangeItemBean> |
tryCreateAttachment(CreateAttachmentParamsBean params)
Create an attachment.
|
static final String THUMBS_SUBDIR
Attachment getAttachment(Long id) throws DataAccessException, AttachmentNotFoundException
id
- the Attachment IDDataAccessException
- if there is a problem accessing the database.AttachmentNotFoundException
- thrown if an attachment with the passed id does not exist.List<Attachment> getAttachments(Issue issue) throws DataAccessException
issue
- the IssueAttachment
objectsDataAccessException
- if there is a problem accessing the database.List<Attachment> getAttachments(Issue issue, Comparator<? super Attachment> comparator) throws DataAccessException
issue
- the Issuecomparator
- used for sortingAttachment
objectsDataAccessException
- if there is a problem accessing the database.Attachment createAttachmentCopySourceFile(File file, String filename, String contentType, String attachmentAuthor, Issue issue, Map<String,Object> attachmentProperties, Date createdTime) throws AttachmentException
createAttachment(com.atlassian.jira.issue.attachment.CreateAttachmentParamsBean)
instead. Since v6.0.file
- A file on a locally accessible filesystem, this will be copied, not moved.filename
- The desired filename for this attachment. This may be different to the filename on disk (for example with temp files used in file uploads)contentType
- The desired contentType. Implementations of this interface can choose to override this value as appropriateattachmentAuthor
- The username of the user who created this attachment, this is not validated so it must be a valid usernameissue
- The id of the issue that this attachment is attached toattachmentProperties
- Attachment properties (a Map of String -> Object properties). These are optional,
and are used to populate a PropertySet on the Attachment (Attachment.getProperties()
. Pass null to set no propertiescreatedTime
- when the attachment was createdAttachmentException
- if any errors occur.ChangeItemBean createAttachment(File file, String filename, String contentType, @Nullable ApplicationUser author, Issue issue, Map<String,Object> attachmentProperties, Date createdTime) throws AttachmentException
createAttachment(com.atlassian.jira.issue.attachment.CreateAttachmentParamsBean)
instead. Since v6.0.file
- A file on a locally accessible filesystemfilename
- The desired filename for this attachment. This may be different to the filename on disk (for example with temp files used in file uploads)contentType
- The desired contentType. Implementations of this interface can choose to override this value as appropriateauthor
- The user who created this attachmentissue
- The issue that this file is to be attached toattachmentProperties
- Attachment properties (a Map of String -> Object properties). These are optional,
and are used to populate a PropertySet on the Attachment (Attachment.getProperties()
. Pass null to set no propertiescreatedTime
- the created timeChangeItemBean
with all the changes to the issue.AttachmentException
- if an IO error occurs while attempting to copy the file#createAttachment(java.io.File, String, String, com.atlassian.crowd.embedded.api.User, Issue)
ChangeItemBean createAttachment(File file, String filename, String contentType, @Nullable ApplicationUser author, Issue issue, @Nullable Boolean zip, @Nullable Boolean thumbnailable, Map<String,Object> attachmentProperties, Date createdTime) throws AttachmentException
createAttachment(com.atlassian.jira.issue.attachment.CreateAttachmentParamsBean)
instead. Since v6.0.file
- A file on a locally accessible filesystemfilename
- The desired filename for this attachment. This may be different to the filename on disk (for example with temp files used in file uploads)contentType
- The desired contentType. Implementations of this interface can choose to override this value as appropriateauthor
- The user who created this attachmentissue
- The issue that this file is to be attached tozip
- This file is a zip file. Null indicates that it is not know if this attachment is a zip file or notthumbnailable
- This file is thumbnailable (e.g. a png image). Null indicates that it is not know if this attachment is thumbnailable or notattachmentProperties
- Attachment properties (a Map of String -> Object properties). These are optional,
and are used to populate a PropertySet on the Attachment (Attachment.getProperties()
. Pass null to set no propertiescreatedTime
- the created timeChangeItemBean
with all the changes to the issue.AttachmentException
- if an IO error occurs while attempting to copy the file#createAttachment(java.io.File, String, String, com.atlassian.crowd.embedded.api.User, Issue)
ChangeItemBean createAttachment(File file, String filename, String contentType, @Nullable ApplicationUser author, org.ofbiz.core.entity.GenericValue issue, Map<String,Object> attachmentProperties, Date createdTime) throws AttachmentException
#createAttachment(File, String, String, User, Issue, Map, Date)
instead. Since v5.0.file
- A file on a locally accessible filesystemfilename
- The desired filename for this attachment. This may be different to the filename on disk (for example with temp files used in file uploads)contentType
- The desired contentType. Implementations of this interface can choose to override this value as appropriateauthor
- The user who created this attachmentissue
- The issue that this attachment is attached toattachmentProperties
- Attachment properties (a Map of String -> Object properties). These are optional,
and are used to populate a PropertySet on the Attachment (Attachment.getProperties()
. Pass null to set no propertiescreatedTime
- the created timeChangeItemBean
with all the changes to the issue.AttachmentException
- if an error occurs while attempting to copy the fileChangeItemBean createAttachment(File file, String filename, String contentType, @Nullable ApplicationUser author, org.ofbiz.core.entity.GenericValue issue, Boolean zip, Boolean thumbnailable, Map<String,Object> attachmentProperties, Date createdTime) throws AttachmentException
#createAttachment(File, String, String, User, Issue, Map, Date)
instead. Since v5.0.file
- A file on a locally accessible filesystemfilename
- The desired filename for this attachment. This may be different to the filename on disk (for example with temp files used in file uploads)contentType
- The desired contentType. Implementations of this interface can choose to override this value as appropriateauthor
- The user who created this attachmentissue
- The issue that this attachment is attached tozip
- This file is a zip file. Null indicates that it is not know if this attachment is a zip file or notthumbnailable
- This file is thumbnailable (e.g. a png image). Null indicates that it is not know if this attachment is thumbnailable or notattachmentProperties
- Attachment properties (a Map of String -> Object properties). These are optional,
and are used to populate a PropertySet on the Attachment (Attachment.getProperties()
. Pass null to set no propertiescreatedTime
- the created timeChangeItemBean
with all the changes to the issue.AttachmentException
- if an error occurs while attempting to copy the fileChangeItemBean createAttachment(File file, String filename, String contentType, @Nullable ApplicationUser author, Issue issue) throws AttachmentException
createAttachment(com.atlassian.jira.issue.attachment.CreateAttachmentParamsBean)
instead. Since v6.0.#createAttachment(File, String, String, User, Issue, Map, Date)
method, except it submits no
attachmentProperties and uses now() for the created time.file
- A file on a locally accessible filesystemfilename
- The desired filename for this attachment. This may be different to the filename on disk (for example with temp files used in file uploads)contentType
- The desired contentType. Implementations of this interface can choose to override this value as appropriateauthor
- The user who created this attachmentissue
- The issue that this attachment is attached toChangeItemBean
with all the changes to the issue.AttachmentException
- if an IO error occurs while attempting to copy the file#createAttachment(java.io.File, String, String, com.atlassian.crowd.embedded.api.User, Issue, java.util.Map, java.util.Date)
ChangeItemBean createAttachment(File file, String filename, String contentType, @Nullable ApplicationUser author, org.ofbiz.core.entity.GenericValue issue) throws AttachmentException
#createAttachment(File, String, String, User, Issue)
instead. Since v5.0.#createAttachment(java.io.File, String, String, User, org.ofbiz.core.entity.GenericValue, java.util.Map, java.util.Date)
method, except it
submits no attachmentProperties and uses now() for the created time.file
- A file on a locally accessible filesystemfilename
- The desired filename for this attachment. This may be different to the filename on disk (for example with temp files used in file uploads)contentType
- The desired contentType. Implementations of this interface can choose to override this value as appropriateauthor
- The user who created this attachmentissue
- The issue that this attachment is attached toChangeItemBean
with all the changes to the issue.AttachmentException
- if an error occurs while attempting to copy the fileAttachment createAttachment(org.ofbiz.core.entity.GenericValue issue, @Nullable ApplicationUser author, String mimetype, String filename, Long filesize, Map<String,Object> attachmentProperties, Date createdTime)
#createAttachment(File, String, String, User, Issue, Map, Date)
instead. Since v5.0.issue
- the issue that this attachment is attached toauthor
- The user who created this attachmentmimetype
- mimetypefilename
- The desired filename for this attachment.filesize
- filesizeattachmentProperties
- Attachment properties (a Map of String -> Object properties).createdTime
- when the attachment was createdChangeItemBean createAttachment(CreateAttachmentParamsBean createAttachmentParamsBean) throws AttachmentException
createAttachmentParamsBean
- Parameters which describe created attachmentChangeItemBean
with all the changes to the issue.AttachmentException
- if an IO error occurs while attempting to copy the filefor creating beans
io.atlassian.fugue.Either<AttachmentError,ChangeItemBean> tryCreateAttachment(CreateAttachmentParamsBean params)
params
- Parameters which describe created attachmentChangeItemBean
with all the changes to the issue or the AttachmentError in case of any
errors while attempting to create attachment.for creating params
void deleteAttachment(Attachment attachment) throws RemoveException
attachment
- the AttachmentRemoveException
- if the attachment cannot be removed from the attachment store@Internal void deleteAttachmentDirectory(Issue issue) throws RemoveException
issue
- the issue whose attachment directory we wish to delete.RemoveException
- if the directory can not be removed or is not empty.boolean attachmentsEnabled()
boolean isScreenshotAppletEnabled()
boolean isScreenshotAppletSupportedByOS()
Note. This always returns true now as we support screenshots on all our supported platforms
@Deprecated List<ChangeItemBean> convertTemporaryAttachments(@Nullable ApplicationUser user, Issue issue, List<Long> selectedAttachments, TemporaryAttachmentsMonitor temporaryAttachmentsMonitor) throws AttachmentException
convertTemporaryAttachments(com.atlassian.jira.user.ApplicationUser, Issue, java.util.List, com.atlassian.jira.web.action.issue.TemporaryAttachmentsMonitor)
instead. Since v6.0.user
- The user performing the actionissue
- The issue attachments should be linked toselectedAttachments
- The temporary attachment ids to convert as selected by the usertemporaryAttachmentsMonitor
- TemporaryAttachmentsMonitor containing information about all temporary attachmentsAttachmentException
- If there were problems with the Attachment itself@Deprecated AttachmentsBulkOperationResult<ChangeItemBean> tryConvertTemporaryAttachments(@Nullable ApplicationUser user, Issue issue, List<Long> selectedAttachments, TemporaryAttachmentsMonitor temporaryAttachmentsMonitor)
TemporaryWebAttachmentManager.convertTemporaryAttachments(com.atlassian.jira.user.ApplicationUser, com.atlassian.jira.issue.Issue, java.util.List<java.lang.String>)
instead. Since v6.4.user
- The user performing the actionissue
- The issue attachments should be linked toselectedAttachments
- The temporary attachment ids to convert as selected by the usertemporaryAttachmentsMonitor
- TemporaryAttachmentsMonitor containing information about all temporary attachmentsAttachment setThumbnailable(Attachment attachment, boolean thumbnailable)
attachment
- The attachmentthumbnailable
- True if this attachment is thumnailableAttachment setZip(Attachment attachment, boolean zip)
attachment
- The attachmentzip
- True if this attachment is a zip file<T> T streamAttachmentContent(@Nonnull Attachment attachment, InputStreamConsumer<T> consumer) throws IOException
attachment
- the attachment whose content to stream (required)consumer
- the consumer of the stream (required)NoAttachmentDataException
- if the attachment's contents cannot be found.AttachmentReadException
- if a problem occurs when the consumer processes the attachment's contents.IOException
- here for compatibility, but won't actually be thrownvoid moveAttachments(Issue oldIssue, String newIssueKey)
oldIssue
- the issue attachments will be moved fromnewIssueKey
- the new issue keyio.atlassian.fugue.Either<AttachmentError,Attachment> copyAttachment(Attachment attachment, @Nullable ApplicationUser author, String newIssueKey)
attachment
- the attachment to copy to a new issueauthor
- the user that will own the new attachmentnewIssueKey
- the key of the issue that the attachment will be copied toMap<Long,io.atlassian.fugue.Either<AttachmentError,Attachment>> copyAttachments(Issue issue, @Nullable ApplicationUser author, String newIssueKey)
issue
- the issue attachments will be copied fromauthor
- the user that will own the new attachmentsnewIssueKey
- the key of the issue that the attachment will be copied toMap<Long,io.atlassian.fugue.Either<AttachmentError,Attachment>> copyAttachments(Context context, Issue issue, @Nullable ApplicationUser author, String newIssueKey)
context
- Task context for recording progress.issue
- the issue attachments will be copied fromauthor
- the user that will own the new attachmentsnewIssueKey
- the key of the issue that the attachment will be copied toTemporaryAttachmentId createTemporaryAttachment(InputStream stream, long size)
stream
- Stream with temporary attachment contentsize
- Size of temporary attachmentvoid deleteTemporaryAttachment(TemporaryAttachmentId temporaryAttachmentId)
temporaryAttachmentId
- id of temporary attachmentio.atlassian.fugue.Either<AttachmentError,ChangeItemBean> convertTemporaryAttachment(ConvertTemporaryAttachmentParams params)
params
- Parameters describingChangeItemBean
with all the changes to the issue.@ExperimentalApi <T> T streamTemporaryAttachmentContent(@Nonnull TemporaryAttachmentId attachmentId, InputStreamConsumer<T> consumer) throws AttachmentReadException, NoAttachmentDataException
attachmentId
- id of temporary attachment whose content to stream (required)consumer
- the consumer of the stream (required)NoAttachmentDataException
- if the attachment's contents cannot be found.AttachmentReadException
- if a problem occurs when the consumer processes the attachment's contents.Copyright © 2002-2019 Atlassian. All Rights Reserved.