package cz.abclinuxu.datoveschranky.common.interfaces;
import cz.abclinuxu.datoveschranky.common.entities.Attachment;
import cz.abclinuxu.datoveschranky.common.entities.MessageEnvelope;
import java.io.IOException;
import java.io.OutputStream;
/**
* Rozhraní, které určuje, kam se budou přílohy ukládat (do souboru, do paměti, ...)
*
* @author Vaclav Rosecky <xrosecky 'at' gmail 'dot' com>
*/
public interface AttachmentStorer {
/**
* Vráti výstupní proud, do kterého bude uložen obsah přílohy a u třídy
* attachment příslušně nastaví obsah zprávy metodou setContent. O uzavření
* výstupního proudu se postará volající třída.
*
* @param envelope obálka zprávy
* @param attachment příloha zprávy, u které je nastaven popis zprávy, druh
* písemnosti a MIME typ a povinností této třídy je nastavit atribut content
* metodou setContent tak, aby volání metody getContent vrátilo zapsaný obsah.
*
*/
public OutputStream store(MessageEnvelope envelope, Attachment attachment) throws IOException;
}