001package org.nuxeo.template.processors.xdocreport;
002
003import java.io.IOException;
004import java.io.InputStream;
005
006import org.nuxeo.ecm.core.api.Blob;
007
008import fr.opensagres.xdocreport.core.document.ImageFormat;
009import fr.opensagres.xdocreport.document.images.AbstractInputStreamImageProvider;
010
011/**
012 * XDocReport wrapper for a Picture stored in a Nuxeo Blob
013 * 
014 * @author <a href="mailto:tdelprat@nuxeo.com">Tiry</a>
015 */
016public class BlobImageProvider extends AbstractInputStreamImageProvider {
017
018    protected final Blob blob;
019
020    protected final ImageFormat imageFormat;
021
022    public BlobImageProvider(Blob blob) {
023        super(false);
024        this.blob = blob;
025        this.imageFormat = ImageFormat.getFormatByResourceName(blob.getFilename());
026    }
027
028    @Override
029    protected InputStream getInputStream() throws IOException {
030        return blob.getStream();
031    }
032
033    @Override
034    public ImageFormat getImageFormat() {
035        return imageFormat;
036    }
037
038}