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