package org.genedb.crawl.model;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlTransient;
import uk.ac.sanger.artemis.components.variant.VariantReaderAdapter;
/**
* Represents a VCF or BVF file.
* @author gv1
*
*/
public class Variant extends BioDataFile {
private List<MappedSAMSequence> sequences;
private VariantReaderAdapter reader;
@XmlTransient
public VariantReaderAdapter getReader() throws IOException {
if (reader == null)
reader = VariantReaderAdapter.getReader(file);
return reader;
}
@Override
public List<MappedSAMSequence> getSequences() throws IOException {
return sequences;
}
@Override
public void init() throws IOException {
// we load these at startup, and close them again, to avoid the too many open files problam
sequences = new ArrayList<MappedSAMSequence>();
reader = getReader();
for (String name : reader.getSeqNames()) {
MappedSAMSequence mss = new MappedSAMSequence();
mss.name = name;
sequences.add(mss);
}
reader.close();
reader = null;
}
}