package compbio.data.sequence; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.util.HashSet; import java.util.List; public class ScoreManager { private List seqScores; private ScoreManager() { // Default JAXB constructor } public int getNumberOfSeq() { return seqScores.size(); } public ScoreHolder getFirstSequenceScores() { if (seqScores.isEmpty()) return null; return seqScores.get(0); } public ScoreHolder getAnnotationForSequence(String seqId) { for (ScoreHolder sch : seqScores) { if (sch.id.equals(seqId)) { return sch; } } return null; } public void writeOut(OutputStream outStream) throws IOException { BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( outStream)); for (ScoreHolder oneSeqScores : seqScores) { oneSeqScores.writeOut(outStream); } writer.flush(); } public static class ScoreHolder { public String id; public HashSet scores; public void writeOut(OutputStream outStream) throws IOException { BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( outStream)); writer.write(">" + id + "\n"); Score.write(scores, outStream); } public Score getFirstScore() { if (scores.isEmpty()) return null; return scores.iterator().next(); } public Score getScoreByMethod(Enum method) { for (Score sc : scores) { if (method == sc.getMethod()) { return sc; } } return null; } public int getNumberOfScores() { return scores.size(); } } }