More work to disorder prediction client & services.
[jabaws.git] / datamodel / compbio / data / sequence / ScoreManager.java
index 7ddf894..4be41d5 100644 (file)
@@ -1,15 +1,13 @@
 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
@@ -47,9 +45,9 @@ public class ScoreManager {
 \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
@@ -57,13 +55,15 @@ public class ScoreManager {
        }\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
@@ -98,13 +98,10 @@ public class ScoreManager {
                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
@@ -137,7 +134,7 @@ public class ScoreManager {
        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
@@ -145,14 +142,12 @@ public class ScoreManager {
 \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