package au.com.acpfg.misc.jemboss.io;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.biojava.bio.BioException;
import org.biojava.bio.program.gff.GFFEntrySet;
import org.biojava.bio.program.gff.GFFTools;
import org.biojava.utils.ParserException;
import org.knime.core.node.InvalidSettingsException;
import au.com.acpfg.misc.jemboss.local.AbstractTableMapper;
import au.com.acpfg.misc.jemboss.settings.ProgramSetting;
/**
* Unmarshalls a Generic Feature Format (GFF) annotated file. See
* http://en.wikipedia.org/wiki/GFF for more details.
* Uses biojava to do the actual reading, so it must be compatible with
* the underlying biojava implementation (which is current v1.8 based until bj3 is feature complete).
*
* @author andrew.cassin
*
*/
public class GFFUnmarshaller implements UnmarshallerInterface {
@Override
public void addColumns(AbstractTableMapper atm,
ProgramSetting for_this_setting) {
}
@Override
public void process(ProgramSetting for_this,
InputStream emboss_output_data_stream, AbstractTableMapper atm)
throws IOException, InvalidSettingsException {
BufferedReader br = new BufferedReader(new InputStreamReader(emboss_output_data_stream));
try {
GFFEntrySet es = GFFTools.readGFF(br);
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BioException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}