package LinGUIne.extensions; import java.io.File; import java.io.IOException; import java.util.Collection; import LinGUIne.model.AnnotationSet; import LinGUIne.model.IProjectData; /** * Interface to which all Annotation export extension classes must conform. * * @author Kyle Mullins */ public interface IAnnotationExporter { /** * Returns a human-readable description of the type of file which the * exporter creates. Ex. 'XML File' */ String getFileType(); /** * Returns a file mask used to filter files for the exporter to export to. * Ex. *.xml */ String getFileMask(); /** * Returns a collection of IProjectData types that this IAnnotationExporter * supports. * Note: The types returned should be as specific as possible. */ Collection<Class<? extends IProjectData>> getSupportedSourceDataTypes(); /** * Converts the given Annotation to this IAnnotationExporter's destination * format and places it into the given destination File. * * @param sourceData The Annotated Data to be exported. * @param annotations The Annotations for the sourceData. * @param destFile The File into which the exported data should be * placed. * * @throws IOException */ void exportAnnotation(IProjectData sourceData, AnnotationSet annotations, File destFile) throws IOException; }