X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=server%2Fcompbio%2Fcontrollers%2FSequenceController.java;h=4eb5844692b62a622168334bdee5459a0c55fed2;hb=a4e4432c6f5812208d72d9f6bea7aff1aa850817;hp=9e92273ba352fdeaeaa8cc5fae345f7fe56ef413;hpb=04ad9aafdb2d827c8282edf84ab130d5bc0d923e;p=proteocache.git diff --git a/server/compbio/controllers/SequenceController.java b/server/compbio/controllers/SequenceController.java index 9e92273..4eb5844 100644 --- a/server/compbio/controllers/SequenceController.java +++ b/server/compbio/controllers/SequenceController.java @@ -16,8 +16,8 @@ import compbio.cassandra.readers.ReaderByCounter; import compbio.cassandra.readers.SequenceReader; /** - * Spring controller for sequence queries. This version works in the servlet - * style. + * Spring controller for supporting sequence queries. This version works in the + * servlet style. * * @author Alexander Sherstnev * @author Natasha Sherstneva @@ -98,32 +98,33 @@ public class SequenceController extends BasicController { model.put("njobs", 0); model.put("prot", trimmedsequence); model.put("searchtype", searchtype); - String csvline = ""; + StringBuilder csvline = new StringBuilder(""); if (0 < trimmedsequence.length()) { SequenceReader reader = new SequenceReader(); List result = reader.readProteins(trimmedsequence, searchtype); model.put("results", result); if (null != result) { - if (searchtype.equals("whole")) + if (searchtype.equals("whole")) { model.put("njobs", result.get(0).getJobid().size()); - else + } else { model.put("njobs", result.size()); - csvline = "\'Job\',\'Annotation\',\'Sequence\'%0A"; - // form CSV file string + } + csvline.append("\'Job\',\'Annotation\',\'Sequence\'%0A"); for (ProteinBean entry : result) { List jobs = entry.getJobid(); String protein = entry.getSequence(); LinkedHashMap predictions = entry.getPredictions(); + StringBuilder jobline = new StringBuilder(); + for (Map.Entry pr : predictions.entrySet()) { + jobline.append("\'\',\'" + pr.getKey() + "\',\'" + pr.getValue() + "\'%0A"); + } for (String job : jobs) { - csvline += "\'" + job + "\',\'Sequence\',\'" + protein + "\',\'%0A"; - for (Map.Entry pr : predictions.entrySet()) { - csvline += "\'\',\'" + pr.getKey() + "\',\'" + pr.getValue() + "\'%0A"; - } + csvline.append("\'" + job + "\',\'Sequence\',\'" + protein + "\',\'%0A" + jobline.toString()); } } } } - model.put("csvfile", csvline); + model.put("csvfile", csvline.toString()); final long endTime = System.currentTimeMillis(); model.put("timeExecution", (endTime - startTime)); @@ -169,24 +170,23 @@ public class SequenceController extends BasicController { List r = reader.readProteinByCounter(realcounter); model.put("results", r); model.put("njobs", 0); - String csvline = ""; + StringBuilder csvline = new StringBuilder(""); if (null != r) { model.put("njobs", r.size()); - csvline = "\'Job%20 count\', \'Protein%20Sequence\'%0A"; - } - // form line for CSV file - - for (TotalByCounterBean b : r) { - if (b.getName().equals("")) { - csvline += "\'" + b.getTotaljobs() + "\',\'Alignment%20job\'%0A"; - // fix problem with records without protein sequence (alignment - // jobs) - b.setName("Alignment job"); - } else { - csvline += "\'" + b.getTotaljobs() + "\',\'" + b.getName() + "\'%0A"; + // form line for CSV file + csvline.append("\'Job%20 count\', \'Protein%20Sequence\'%0A"); + for (TotalByCounterBean b : r) { + if (b.getName().equals("")) { + // fix problem with records without protein sequence + // (alignment jobs) + csvline.append("\'" + b.getTotaljobs() + "\',\'Alignment%20job\'%0A"); + b.setName("Alignment job"); + } else { + csvline.append("\'" + b.getTotaljobs() + "\',\'" + b.getName() + "\'%0A"); + } } } - model.put("csvfile", csvline); + model.put("csvfile", csvline.toString()); model.put("results", r); final long endTime = System.currentTimeMillis();