@ParametersAreNonnullByDefault public class BackwardCompatibleStoreAdapter extends Object implements StreamAttachmentStore, FileBasedAttachmentStore
StreamAttachmentStore
and
optionally to FileBasedAttachmentStore
.StreamAttachmentStore.Factory
Constructor and Description |
---|
BackwardCompatibleStoreAdapter(StreamAttachmentStore streamAttachmentStore,
com.atlassian.fugue.Option<FileSystemAttachmentStore> fileSystemAttachmentStore) |
Modifier and Type | Method and Description |
---|---|
com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> |
copyAttachment(AttachmentKey sourceAttachmentKey,
AttachmentKey newAttachmentKey)
Copies attachment identified by
oldAttachmentKey to be identified also by newAttachmentKey . |
com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> |
deleteAttachment(AttachmentKey attachmentKey)
Delete the attachment identified by provided attachmentKey.
|
com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> |
deleteAttachmentContainerForIssue(Issue issue)
Delete the container for attachments for a given issue.
|
com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> |
deleteTemporaryAttachment(TemporaryAttachmentId temporaryAttachmentId)
Deletes temporary attachment created previously by
StreamAttachmentStore.putTemporaryAttachment(java.io.InputStream, long) . |
com.atlassian.fugue.Option<ErrorCollection> |
errors()
Health status for this component.
|
com.atlassian.util.concurrent.Promise<Boolean> |
exists(AttachmentKey attachmentKey)
Checks if attachment exists.
|
<A> com.atlassian.util.concurrent.Promise<A> |
getAttachment(AttachmentKey attachmentKey,
com.atlassian.util.concurrent.Function<InputStream,A> inputStreamProcessor)
Retrieve data for a given attachment.
|
<A> com.atlassian.util.concurrent.Promise<A> |
getAttachmentData(AttachmentKey attachmentKey,
com.atlassian.util.concurrent.Function<AttachmentGetData,A> attachmentGetDataProcessor)
Retrieve data for a given attachment.
|
File |
getAttachmentFile(AttachmentKey attachmentKey)
Returns the physical File for the given Attachment.
|
File |
getAttachmentFile(AttachmentStore.AttachmentAdapter attachment,
File attachmentDir)
This is intended for cases where you want more control over where the attachment actually lives and you just want
something to handle the look up logic for the various possible filenames an attachment can have.
|
boolean |
hasFileSystemAvailable() |
com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> |
moveAttachment(AttachmentKey oldAttachmentKey,
AttachmentKey newAttachmentKey)
Move attachment identified by
oldAttachmentKey to be identified by newAttachmentKey and will be not
reachable under oldAttachmentKey anymore. |
com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> |
moveTemporaryToAttachment(TemporaryAttachmentId temporaryAttachmentId,
AttachmentKey destinationKey)
Moving temporary attachment created by
StreamAttachmentStore.putTemporaryAttachment(java.io.InputStream, long) to real attachment. |
com.atlassian.util.concurrent.Promise<StoreAttachmentResult> |
putAttachment(StoreAttachmentBean storeAttachmentBean)
Store attachment data for a given attachment.
|
com.atlassian.util.concurrent.Promise<TemporaryAttachmentId> |
putTemporaryAttachment(InputStream inputStream,
long size)
Creates temporaryAttachment in store which can be later moved to attachment via
StreamAttachmentStore.moveTemporaryToAttachment(TemporaryAttachmentId, AttachmentKey) |
public BackwardCompatibleStoreAdapter(StreamAttachmentStore streamAttachmentStore, com.atlassian.fugue.Option<FileSystemAttachmentStore> fileSystemAttachmentStore)
public File getAttachmentFile(AttachmentKey attachmentKey) throws DataAccessException
FileBasedAttachmentStore
getAttachmentFile
in interface FileBasedAttachmentStore
attachmentKey
- the the key of the attachmentDataAccessException
- on failure getting required attachment info.public File getAttachmentFile(AttachmentStore.AttachmentAdapter attachment, File attachmentDir)
FileBasedAttachmentStore
getAttachmentFile
in interface FileBasedAttachmentStore
attachment
- it's not an attachment but it acts like one for our purposes.attachmentDir
- the directory the attachments live in. This is different that the system-wide attachment
directory. i.e. this would "attachments/MKY/MKY-1" and not just "attachments"public com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> deleteAttachmentContainerForIssue(@Nonnull Issue issue)
FileBasedAttachmentStore
deleteAttachmentContainerForIssue
in interface FileBasedAttachmentStore
issue
- The issue to delete attachments for.public com.atlassian.util.concurrent.Promise<StoreAttachmentResult> putAttachment(StoreAttachmentBean storeAttachmentBean)
StreamAttachmentStore
putAttachment
in interface StreamAttachmentStore
storeAttachmentBean
- attachment metadata, used to determine the logical key under which to store the
attachment dataAttachmentRuntimeException
in case of error.public <A> com.atlassian.util.concurrent.Promise<A> getAttachment(AttachmentKey attachmentKey, com.atlassian.util.concurrent.Function<InputStream,A> inputStreamProcessor)
StreamAttachmentStore
getAttachment
in interface StreamAttachmentStore
A
- The class that the inputStreamProcessor returns when run.attachmentKey
- The key of attachment used to identify attachment datainputStreamProcessor
- Function that processes the attachment data.AttachmentRuntimeException
in case of error.public <A> com.atlassian.util.concurrent.Promise<A> getAttachmentData(AttachmentKey attachmentKey, com.atlassian.util.concurrent.Function<AttachmentGetData,A> attachmentGetDataProcessor)
StreamAttachmentStore
getAttachmentData
in interface StreamAttachmentStore
A
- The class that the attachmentGetDataProcessor returns when run.attachmentKey
- The key of attachment used to identify attachment dataattachmentGetDataProcessor
- Function that processes the attachment data.AttachmentRuntimeException
in case of error.public com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> moveAttachment(AttachmentKey oldAttachmentKey, AttachmentKey newAttachmentKey)
StreamAttachmentStore
oldAttachmentKey
to be identified by newAttachmentKey
and will be not
reachable under oldAttachmentKey
anymore.moveAttachment
in interface StreamAttachmentStore
oldAttachmentKey
- the old AttachmentKeynewAttachmentKey
- the new AttachmentKeypublic com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> copyAttachment(AttachmentKey sourceAttachmentKey, AttachmentKey newAttachmentKey)
StreamAttachmentStore
oldAttachmentKey
to be identified also by newAttachmentKey
.copyAttachment
in interface StreamAttachmentStore
sourceAttachmentKey
- attachmentKey of existing attachment which should be copiednewAttachmentKey
- attachmentKey under which copiedpublic com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> deleteAttachment(AttachmentKey attachmentKey)
StreamAttachmentStore
deleteAttachment
in interface StreamAttachmentStore
public com.atlassian.util.concurrent.Promise<TemporaryAttachmentId> putTemporaryAttachment(InputStream inputStream, long size)
StreamAttachmentStore
StreamAttachmentStore.moveTemporaryToAttachment(TemporaryAttachmentId, AttachmentKey)
putTemporaryAttachment
in interface StreamAttachmentStore
inputStream
- stream to temporary attachment datasize
- the size of provided streampublic com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> moveTemporaryToAttachment(TemporaryAttachmentId temporaryAttachmentId, AttachmentKey destinationKey)
StreamAttachmentStore
StreamAttachmentStore.putTemporaryAttachment(java.io.InputStream, long)
to real attachment.moveTemporaryToAttachment
in interface StreamAttachmentStore
temporaryAttachmentId
- id of temporary attachment, returned by StreamAttachmentStore.putTemporaryAttachment(java.io.InputStream, long)
destinationKey
- destination key of under which attachment will be identifiedpublic com.atlassian.util.concurrent.Promise<com.atlassian.fugue.Unit> deleteTemporaryAttachment(TemporaryAttachmentId temporaryAttachmentId)
StreamAttachmentStore
StreamAttachmentStore.putTemporaryAttachment(java.io.InputStream, long)
.deleteTemporaryAttachment
in interface StreamAttachmentStore
temporaryAttachmentId
- id of temporary attachmentpublic com.atlassian.util.concurrent.Promise<Boolean> exists(AttachmentKey attachmentKey)
StreamAttachmentStore
exists
in interface StreamAttachmentStore
attachmentKey
- key of attachment to check for existencePromise
to boolean result, true if attachment exists and false
otherwise@Nonnull public com.atlassian.fugue.Option<ErrorCollection> errors()
AttachmentHealth
errors
in interface AttachmentHealth
public boolean hasFileSystemAvailable()
Copyright © 2002-2015 Atlassian. All Rights Reserved.