com.atlassian.jira.issue.attachment
Class BlobStoreAttachmentStore

java.lang.Object
  extended by com.atlassian.jira.issue.attachment.BlobStoreAttachmentStore
All Implemented Interfaces:
AttachmentHealth, RemoteAttachmentStore, SimpleAttachmentStore

public class BlobStoreAttachmentStore
extends Object
implements RemoteAttachmentStore

Implementation of an attachment store that communicates with the Blobstore

Since:
v6.3

Constructor Summary
BlobStoreAttachmentStore()
           
 
Method Summary
 com.atlassian.util.concurrent.Promise<io.atlassian.blobstore.client.api.Unit> delete(Attachment attachment)
          Delete the specified attachment.
 com.atlassian.fugue.Option<ErrorCollection> errors()
          Health status for this component.
 com.atlassian.util.concurrent.Promise<Boolean> exists(Attachment metaData)
          Returns true if the attachment exists in the store.
<A> com.atlassian.util.concurrent.Promise<A>
get(Attachment metaData, com.google.common.base.Function<InputStream,A> inputStreamProcessor)
          Retrieve data for a given attachment.
 com.atlassian.util.concurrent.Promise<io.atlassian.blobstore.client.api.Unit> move(Attachment metaData, String newIssueKey)
          Moves an attachment from its current issue under a new one
 com.atlassian.util.concurrent.Promise<Attachment> put(Attachment metadata, File source)
          Store attachment data for a given attachment.
 com.atlassian.util.concurrent.Promise<Attachment> put(Attachment metadata, InputStream source)
          Store attachment data for a given attachment.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlobStoreAttachmentStore

public BlobStoreAttachmentStore()
Method Detail

get

public <A> com.atlassian.util.concurrent.Promise<A> get(Attachment metaData,
                                                        com.google.common.base.Function<InputStream,A> inputStreamProcessor)
Description copied from interface: SimpleAttachmentStore
Retrieve data for a given attachment.

Specified by:
get in interface SimpleAttachmentStore
Type Parameters:
A - The class that the inputStreamProcessor returns when run.
Parameters:
metaData - attachment metadata, used to determine the logical key under which to store the attachment data
inputStreamProcessor - Function that processes the attachment data. This function MUST clean up upon failure of reading from the input stream, and must support being re-executed. e.g. If the function writes out to a temp file, the temp file should be created by the function.
Returns:
A promise of an object that represented the processed attachment data (i.e. from running the inputStreamProcessor over the attachment data). The promise will contain an AttachmentRuntimeException in case of error.

put

public com.atlassian.util.concurrent.Promise<Attachment> put(Attachment metadata,
                                                             InputStream source)
Description copied from interface: SimpleAttachmentStore
Store attachment data for a given attachment.

Specified by:
put in interface SimpleAttachmentStore
Parameters:
metadata - attachment metadata, used to determine the logical key under which to store the attachment data
source - source data. The attachment store will close this stream when it has completed. The stream will be closed once the operation is complete.
Returns:
A promise of an attachment that performs the 'put' operation once the promise is claimed. The promise will contain an AttachmentRuntimeException in case of error.

put

public com.atlassian.util.concurrent.Promise<Attachment> put(Attachment metadata,
                                                             File source)
Description copied from interface: SimpleAttachmentStore
Store attachment data for a given attachment.

Specified by:
put in interface SimpleAttachmentStore
Parameters:
metadata - attachment metadata, used to determine the logical key under which to store the attachment data
source - source data. It is assumed that the file will exist during the attachment process (i.e. relatively long lived).
Returns:
A promise of an attachment that performs the 'put' operation once the promise is claimed.

exists

public com.atlassian.util.concurrent.Promise<Boolean> exists(Attachment metaData)
Description copied from interface: SimpleAttachmentStore
Returns true if the attachment exists in the store.

Specified by:
exists in interface SimpleAttachmentStore
Parameters:
metaData - attachment metadata, used to determine the logical key under which to store the attachment data
Returns:
a promise that when claimed will return true if the attachment exists in the store. The promise will contain an AttachmentRuntimeException in case of error.

move

public com.atlassian.util.concurrent.Promise<io.atlassian.blobstore.client.api.Unit> move(Attachment metaData,
                                                                                          String newIssueKey)
Description copied from interface: SimpleAttachmentStore
Moves an attachment from its current issue under a new one

Specified by:
move in interface SimpleAttachmentStore
Parameters:
metaData - attachment metadata, used to determine the logical key of the attachment to be moved.
newIssueKey - the key of the new issue under which the attachment will reside.
Returns:
a promise that will be completed when the operation is complete. It will contain an AttachmentRuntimeException in case of error.

delete

public com.atlassian.util.concurrent.Promise<io.atlassian.blobstore.client.api.Unit> delete(Attachment attachment)
Description copied from interface: SimpleAttachmentStore
Delete the specified attachment.

Specified by:
delete in interface SimpleAttachmentStore
Parameters:
attachment - The attachment to delete.
Returns:
a promise that contains an AttachmentCleanupException in case of error.

errors

public com.atlassian.fugue.Option<ErrorCollection> errors()
Description copied from interface: AttachmentHealth
Health status for this component. Specifically the errors that cause the attachment subsystem to fail.

Specified by:
errors in interface AttachmentHealth
Returns:
An option of an error collection that contains error messages if there are any issues. The option will be none if there are no errors.


Copyright © 2002-2014 Atlassian. All Rights Reserved.