package eu.eudat.file.transformer.interfaces; import eu.eudat.file.transformer.models.description.DescriptionFileTransformerModel; import eu.eudat.file.transformer.models.dmp.DmpFileTransformerModel; import eu.eudat.file.transformer.models.misc.FileEnvelope; import javax.management.InvalidApplicationException; import java.io.IOException; /** * The FileTransformerClient interface represents the mechanism of depositing a dmp to any * repository which mints a persistent digital object identifier (DOI) for each submission, * which makes the stored dmps easily citeable. */ public interface FileTransformerClient { /** * Returns a string representing the persistent digital object identifier (DOI) which * was created. * * @param dmp dmp structure which is to be deposited * @return a string representing the persistent digital object identifier (DOI) * @throws Exception if an error occurs while trying to deposit the dmp */ FileEnvelope exportDmp(DmpFileTransformerModel dmp, String format) throws InvalidApplicationException, IOException; DmpFileTransformerModel importDmp(FileEnvelope file); FileEnvelope exportDescription(DescriptionFileTransformerModel descriptionFileTransformerModel, String format) throws InvalidApplicationException, IOException; DescriptionFileTransformerModel importDescription(FileEnvelope file); FileTransformerConfiguration getConfiguration(); }