Replace Map<String, HashSet<Score>> with ScoreManager and ScoreHolder classes to...
[jabaws.git] / datamodel / compbio / data / sequence / ScoreManager.java
1 package compbio.data.sequence;\r
2 \r
3 import java.io.BufferedWriter;\r
4 import java.io.IOException;\r
5 import java.io.OutputStream;\r
6 import java.io.OutputStreamWriter;\r
7 import java.util.HashSet;\r
8 import java.util.List;\r
9 \r
10 public class ScoreManager {\r
11 \r
12         private List<ScoreHolder> seqScores;\r
13 \r
14         private ScoreManager() {\r
15                 // Default JAXB constructor\r
16         }\r
17 \r
18         public int getNumberOfSeq() {\r
19                 return seqScores.size();\r
20         }\r
21 \r
22         public ScoreHolder getFirstSequenceScores() {\r
23                 if (seqScores.isEmpty())\r
24                         return null;\r
25                 return seqScores.get(0);\r
26         }\r
27 \r
28         public ScoreHolder getAnnotationForSequence(String seqId) {\r
29                 for (ScoreHolder sch : seqScores) {\r
30                         if (sch.id.equals(seqId)) {\r
31                                 return sch;\r
32                         }\r
33                 }\r
34                 return null;\r
35         }\r
36 \r
37         public void writeOut(OutputStream outStream) throws IOException {\r
38                 BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(\r
39                                 outStream));\r
40                 for (ScoreHolder oneSeqScores : seqScores) {\r
41                         oneSeqScores.writeOut(outStream);\r
42                 }\r
43                 writer.flush();\r
44         }\r
45 \r
46         public static class ScoreHolder {\r
47 \r
48                 public String id;\r
49                 public HashSet<Score> scores;\r
50 \r
51                 public void writeOut(OutputStream outStream) throws IOException {\r
52                         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(\r
53                                         outStream));\r
54                         writer.write(">" + id + "\n");\r
55                         Score.write(scores, outStream);\r
56                 }\r
57 \r
58                 public Score getFirstScore() {\r
59                         if (scores.isEmpty())\r
60                                 return null;\r
61                         return scores.iterator().next();\r
62                 }\r
63 \r
64                 public Score getScoreByMethod(Enum<?> method) {\r
65                         for (Score sc : scores) {\r
66                                 if (method == sc.getMethod()) {\r
67                                         return sc;\r
68                                 }\r
69                         }\r
70                         return null;\r
71                 }\r
72 \r
73                 public int getNumberOfScores() {\r
74                         return scores.size();\r
75                 }\r
76         }\r
77 }\r