Dummy controller for proteomes
authorSasha Sherstnev <a.sherstnev@dundee.ac.uk>
Fri, 10 Jan 2014 14:59:59 +0000 (14:59 +0000)
committerSasha Sherstnev <a.sherstnev@dundee.ac.uk>
Fri, 10 Jan 2014 14:59:59 +0000 (14:59 +0000)
server/compbio/controllers/ProteomeController.java [new file with mode: 0644]

diff --git a/server/compbio/controllers/ProteomeController.java b/server/compbio/controllers/ProteomeController.java
new file mode 100644 (file)
index 0000000..5974493
--- /dev/null
@@ -0,0 +1,92 @@
+package compbio.controllers;
+
+import java.util.Map;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import compbio.statistic.CassandraRequester;
+
+/**
+ * Spring controller for dealing with proteomes. This version works in the
+ * servlet style.
+ * 
+ * @author Alexander Sherstnev
+ * @author Natasha Sherstneva
+ * 
+ * @since 0.5
+ * @version 1.0 December 2014
+ */
+@Controller
+@RequestMapping("/proteomes")
+public class ProteomeController extends BasicController {
+
+       @RequestMapping(value = "/load", method = RequestMethod.GET)
+       public String loadProteome(Map<String, Object> model) {
+               model.put("username", getPrincipalName());
+               return "support/Notimplemented";
+       }
+
+       @RequestMapping(value = "view", method = RequestMethod.GET)
+       public String viewProteome(Map<String, Object> model) {
+               model.put("username", getPrincipalName());
+               return "support/Notimplemented";
+       }
+
+       @RequestMapping(value = "launch", method = RequestMethod.GET)
+       public String launchjobProteome(Map<String, Object> model) {
+               model.put("username", getPrincipalName());
+               return "support/Notimplemented";
+       }
+
+       @RequestMapping(value = "load/result", method = RequestMethod.GET)
+       public String countSequences(@RequestParam("TypeFeatures") String typeFeature, @RequestParam("Percent") String percent,
+                       Map<String, Object> model) {
+               model.put("username", getPrincipalName());
+               final long startTime = System.currentTimeMillis();
+
+               if (percent.equals("")) {
+                       model.put("error", "The value must not be empty");
+                       model.put("type", typeFeature);
+                       model.put("value", percent);
+                       return "query/SSFeatures";
+               }
+
+               int realpercent;
+               try {
+                       realpercent = Integer.parseInt(percent.trim());
+               } catch (NumberFormatException e) {
+                       model.put("error", "The value must be an integer number");
+                       model.put("value", percent);
+                       return "query/SSFeatures";
+               }
+
+               if (realpercent < 1) {
+                       model.put("error", "The value must be greater than 0");
+                       model.put("value", percent);
+                       return "query/SSFeatures";
+               }
+
+               if (realpercent > 100) {
+                       model.put("error", "The value must be less than 100");
+                       model.put("value", percent);
+                       return "query/SSFeatures";
+               }
+
+               CassandraRequester cr = new CassandraRequester();
+               Map<String, String> r = cr.readProteinsPrediction(typeFeature, realpercent);
+               model.put("results", r);
+               model.put("njobs", 0);
+               if (null != r) {
+                       model.put("njobs", r.size());
+               }
+               final long endTime = System.currentTimeMillis();
+               model.put("timeExecution", (endTime - startTime));
+               model.put("feature", typeFeature);
+               model.put("percent", realpercent);
+               return "reportSSFeatures";
+       }
+
+}