class LinshareBlobExportMechanism implements BlobExportMechanism {

    @Override
    public ShareeStage blobId(BlobId blobId) {
        return mailAddress -> explanation -> fileCustomPrefix -> fileExtension -> () ->  {
            try {
                exportBlob(blobId, mailAddress, fileCustomPrefix, fileExtension);
            } catch (Exception e) {
                throw new BlobExportException(String.format("Error while exporting blob %s to %s", blobId.asString(),
                    mailAddress.asString()), e);
            }
        };
    }

    @Inject  LinshareBlobExportMechanism(LinshareAPI linshareAPI, BlobStore blobStore);

}