com.atlassian.confluence.mail.embed
Interface MimeBodyPartRecorder

All Known Implementing Classes:
ThreadLocalMimeBodyPartRecorder

public interface MimeBodyPartRecorder

Records the usage of images which are meant to be embedded in a MIME email.

Any track(javax.activation.DataSource) call has to be done within the closure given to record(java.util.concurrent.Callable). Nested #record(java.util.concurrent.Callable) should be supported in the way that they start a new, isolated recording whilst remembering the outer tracking calls.

A MimeBodyPartRecorder implementation has to be thread-safe but is not required to share its state amongst threads. That is, even if a recorder instance is shared amongst threads, a track(javax.activation.DataSource) call from a different thread than the one setting up the record(java.util.concurrent.Callable), will not necessarily be tracked.

Since:
5.4

Method Summary
 boolean isRecording()
           
<T> com.atlassian.fugue.Pair<com.atlassian.fugue.Maybe<T>,java.lang.Iterable<MimeBodyPartReference>>
record(java.util.concurrent.Callable<T> callback)
          Activate the recorder so that it can record track(javax.activation.DataSource) calls.
 com.atlassian.fugue.Maybe<MimeBodyPartReference> track(javax.activation.DataSource source)
          Track the given image source.
 

Method Detail

record

<T> com.atlassian.fugue.Pair<com.atlassian.fugue.Maybe<T>,java.lang.Iterable<MimeBodyPartReference>> record(java.util.concurrent.Callable<T> callback)
                                                                                                        throws java.lang.Exception
Activate the recorder so that it can record track(javax.activation.DataSource) calls.

Type Parameters:
T - the return type of the callback
Parameters:
callback - the code eligible for recording
Returns:
a pair of the result of the callback and the recorded references of the embeddable images
Throws:
java.lang.Exception - if the callback escapes

isRecording

boolean isRecording()
Returns:
true if the current thread is being recorded.

track

com.atlassian.fugue.Maybe<MimeBodyPartReference> track(javax.activation.DataSource source)
Track the given image source.

Parameters:
source - a DataSource encapsulating the access to the image data
Returns:
maybe a reference to the given image, will be empty if the recorder is not recording


Copyright © 2003-2014 Atlassian. All Rights Reserved.