package au.com.acpfg.misc.jemboss.io;
import java.io.File;
import java.io.IOException;
import org.knime.core.data.DataColumnSpec;
import org.knime.core.node.BufferedDataContainer;
import org.knime.core.node.InvalidSettingsException;
import au.com.acpfg.misc.jemboss.settings.ProgramSetting;
/**
* Interface for adding rows to the formatted output port of this node
* @author andrew.cassin
*
*/
public interface FormattedUnmarshallerInterface {
/**
* Returns the columns which the unmarshaller requires during <code>process()</code>
*
* @return
*/
public DataColumnSpec[] add_columns();
/**
* Responsible for processing data stored into the <code>out_file</code> and the
* specified program setting into (some of) the columns permitted by <code>c</code>.
* The routine may add no rows if it wishes or throw an exception if processing fails.
*
* @param ps the program setting which has some information about the out_file and its contents
* @param out_file the output file produced by EMBOSS
* @param c the container to save results to
* @param rid the input Row ID (KNIME) which produced the specified file via EMBOSS
* @throws IOException
*/
public void process(ProgramSetting ps, File out_file, BufferedDataContainer c, String rid)
throws IOException,InvalidSettingsException;
}