package importexport.exporting;
import importexport.util.FileInfo;
import java.io.BufferedWriter;
import java.io.IOException;
import controller.Feature;
import db.Database;
import db.DatabaseAccessException;
/**
* Interface which offers all methods for injecting file headers of arbitrary file formats.
*/
public interface FileInfoInjector {
/**
* Produces a String containing the file informations of a set of data which should be
* exported as an arbitrary file.
*
* @param fInfo
* Object of Header which contains needed information.
* @param bw
* writer which injects header informations into the new file.
* @param features
* array of all features in the database.
*
* @throws IOException
* threw if arbitrary IO error has occured.
* @throws DatabaseAccessException
* threw if any error occurs while trying to get information out of the database.
*
* @see FileInfo
* @see Database
* @see DatabaseAccessException
*/
void injectFileInfo(final BufferedWriter bw, final FileInfo fInfo, final Feature[] features) throws IOException,
DatabaseAccessException;
}