Convert servlets into Spring controllers
[proteocache.git] / server / compbio / controllers / JobExecutionTimeController.java
1 package compbio.controllers;
2
3 import java.util.Calendar;
4 import java.util.Map;
5
6 import org.springframework.stereotype.Controller;
7 import org.springframework.web.bind.annotation.RequestMapping;
8 import org.springframework.web.bind.annotation.RequestMethod;
9 import org.springframework.web.bind.annotation.RequestParam;
10
11 import compbio.statistic.CassandraRequester;
12 import compbio.statistic.StatisticsProt;
13
14 /**
15  * @author Alexander Sherstnev
16  * @author Natasha Sherstneva
17  */
18 @Controller
19 public class JobExecutionTimeController {
20
21         @RequestMapping(value = "/exectime", method = RequestMethod.GET)
22         public String initFindForm(Map<String, Object> model) {
23                 return "queryTimeExecution";
24         }
25
26         @RequestMapping(value = "/exectime/query", method = RequestMethod.GET)
27         public String findSequence(@RequestParam("data1") String date1, @RequestParam("data2") String date2,
28                         @RequestParam(value="option", required=false) String option, Map<String, Object> model) {
29                 final long startTime = System.currentTimeMillis();
30
31                 CassandraRequester sp = new CassandraRequester();
32                 if (option.equals("AllDates")) {
33                         Calendar cal = Calendar.getInstance();
34                         date1 = StatisticsProt.DateFormatYYMMDD(sp.earliestDate());
35                         date2 = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DAY_OF_MONTH);
36                 }
37                 model.put("data1", date1);
38                 model.put("data2", date2);
39                 model.put("result", sp.extractExecutionTime(date1, date2));
40                 model.put("flag", option);
41                 final long endTime = System.currentTimeMillis();
42                 model.put("timeExecution", (endTime - startTime));
43                 return "/reportTimeExecution";
44         }
45 }