package com.compomics.util.io.export;
import java.io.Serializable;
import java.util.ArrayList;
/**
* An export factory manages and generates reports.
*
* @author Marc Vaudel
*/
public interface ExportFactory extends Serializable {
/**
* Returns the export scheme indexed by the given name.
*
* @param schemeName the name of the desired export scheme
* @return the desired export scheme
*/
public ExportScheme getExportScheme(String schemeName);
/**
* Removes a user scheme.
*
* @param schemeName the name of the scheme to remove
*/
public void removeExportScheme(String schemeName);
/**
* Adds an export scheme to the map of user schemes.
*
* @param exportScheme the new export scheme, will be accessible via its
* name
*/
public void addExportScheme(ExportScheme exportScheme);
/**
* Returns the implemented sections.
*
* @return the implemented sections
*/
public ArrayList<String> getImplementedSections();
/**
* Returns the export features implemented for the given section.
*
* @param sectionName the name of the section of interest
* @param includeSubFeatures indicates whether sub-features should be included
*
* @return a list of export features
*/
public ArrayList<ExportFeature> getExportFeatures(String sectionName, boolean includeSubFeatures);
}