First working Spring-based version
[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.beans.factory.annotation.Autowired;
7 import org.springframework.stereotype.Controller;
8 import org.springframework.validation.BindingResult;
9 import org.springframework.web.bind.WebDataBinder;
10 import org.springframework.web.bind.annotation.InitBinder;
11 import org.springframework.web.bind.annotation.ModelAttribute;
12 import org.springframework.web.bind.annotation.PathVariable;
13 import org.springframework.web.bind.annotation.RequestMapping;
14 import org.springframework.web.bind.annotation.RequestMethod;
15 import org.springframework.web.bind.annotation.RequestParam;
16
17
18 import compbio.cassandra.DataBase;
19 import compbio.statistic.CassandraRequester;
20 import compbio.statistic.StatisticsProt;
21
22 /**
23  * @author Alexander Sherstnev
24  * @author Natasha Sherstneva
25  */
26 @Controller
27 public class JobExecutionTimeController {
28
29         @RequestMapping(value = "/exectime", method = RequestMethod.GET)
30         public String initFindForm(Map<String, Object> model) {
31                 return "QueryTimeExecution";
32         }
33
34         @RequestMapping(value = "/exectime/query", method = RequestMethod.GET)
35         public String findSequence(@RequestParam("data1") String date1, @RequestParam("data2") String date2,
36                         @RequestParam(value="option", required=false) String option, Map<String, Object> model) {
37                 final long startTime = System.currentTimeMillis();
38
39                 CassandraRequester sp = new CassandraRequester();
40                 if (option.equals("AllDates")) {
41                         Calendar cal = Calendar.getInstance();
42                         date1 = StatisticsProt.DateFormatYYMMDD(sp.earliestDate());
43                         date2 = cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.DAY_OF_MONTH);
44                 }
45                 model.put("data1", date1);
46                 model.put("data2", date2);
47                 model.put("result", sp.extractExecutionTime(date1, date2));
48                 model.put("flag", option);
49                 final long endTime = System.currentTimeMillis();
50                 model.put("timeExecution", (endTime - startTime));
51                 return "/ReportTimeExecution";
52         }
53 }