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.io.Writer;\r
import java.util.ArrayList;\r
-import java.util.HashMap;\r
-import java.util.HashSet;\r
import java.util.List;\r
import java.util.Map;\r
import java.util.Set;\r
+import java.util.TreeMap;\r
+import java.util.TreeSet;\r
\r
import javax.xml.bind.annotation.XmlAccessType;\r
import javax.xml.bind.annotation.XmlAccessorType;\r
\r
public static ScoreManager newInstanceSingleScore(\r
Map<String, Score> seqScoresMap) {\r
- Map<String, Set<Score>> multipleScoresMap = new HashMap<String, Set<Score>>();\r
+ Map<String, Set<Score>> multipleScoresMap = new TreeMap<String, Set<Score>>();\r
for (Map.Entry<String, Score> seqScore : seqScoresMap.entrySet()) {\r
- Set<Score> scores = new HashSet<Score>();\r
+ Set<Score> scores = new TreeSet<Score>();\r
scores.add(seqScore.getValue());\r
multipleScoresMap.put(seqScore.getKey(), scores);\r
}\r
}\r
\r
public static ScoreManager newInstanceSingleSequence(Set<Score> data) {\r
- return new ScoreManager(ScoreManager.SINGLE_ENTRY_KEY, data);\r
+ return new ScoreManager(ScoreManager.SINGLE_ENTRY_KEY,\r
+ new TreeSet(data));\r
}\r
\r
- public Map<String, Set<Score>> asMap() {\r
- Map<String, Set<Score>> seqScoresMap = new HashMap<String, Set<Score>>();\r
+ public Map<String, TreeSet<Score>> asMap() {\r
+ Map<String, TreeSet<Score>> seqScoresMap = new TreeMap<String, TreeSet<Score>>();\r
for (ScoreHolder sch : this.seqScores) {\r
- Set<Score> oldValue = seqScoresMap.put(sch.id, sch.scores);\r
+ TreeSet<Score> oldValue = seqScoresMap.put(sch.id, new TreeSet(\r
+ sch.scores));\r
if (oldValue != null) {\r
throw new IllegalStateException(\r
"Cannot represent this ScoreManager instance "\r
return null;\r
}\r
\r
- public void writeOut(OutputStream outStream) throws IOException {\r
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(\r
- outStream));\r
+ public void writeOut(Writer outStream) throws IOException {\r
for (ScoreHolder oneSeqScores : seqScores) {\r
oneSeqScores.writeOut(outStream);\r
}\r
- writer.flush();\r
}\r
\r
@Override\r
public static class ScoreHolder {\r
\r
public String id;\r
- public HashSet<Score> scores;\r
+ public TreeSet<Score> scores;\r
\r
private ScoreHolder() {\r
// JAXB Default constructor should not be used otherwise\r
\r
ScoreHolder(String id, Set<Score> scores) {\r
this.id = id;\r
- this.scores = new HashSet<Score>(scores);\r
+ this.scores = new TreeSet<Score>(scores);\r
}\r
\r
- public void writeOut(OutputStream outStream) throws IOException {\r
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(\r
- outStream));\r
+ public void writeOut(Writer writer) throws IOException {\r
writer.write(">" + id + "\n");\r
- Score.write(scores, outStream);\r
+ Score.write(scores, writer);\r
}\r
\r
public Score getScoreByMethod(Enum<?> method) {\r