Improve call of earliest and current dates (through protected methods)
[proteocache.git] / server / compbio / controllers / DailyStatisticsController.java
index a9b51f1..1453523 100644 (file)
@@ -11,27 +11,34 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import compbio.engine.JobStatus;
-import compbio.cassandra.CassandraReader;
-import compbio.cassandra.DateBean;
+import compbio.beans.DateBean;
+import compbio.beans.TotalJobsStatisticBean;
 import compbio.cassandra.DateFormatter;
-import compbio.cassandra.Total;
-import compbio.cassandra.TotalJobsStatisticBean;
-import compbio.statistic.CassandraRequester;
+
+import compbio.beans.Total;
+import compbio.cassandra.readers.CassandraReader;
+import compbio.cassandra.readers.DailyStatisticsReader;
 
 /**
+ * MVC controller for collecting and showing job statistics
+ * 
  * @author Alexander Sherstnev
  * @author Natasha Sherstneva
- * @version 1.0 Dec 2013
+ * 
+ * @version 1.0
+ * @since Dec 2013
  */
 @Controller
 public class DailyStatisticsController extends BasicController {
 
        /**
-        * form a query page for daily job statistics. The servlet should be
-        * available for users and admins only. By defaults the report time range is
-        * from the earliest day with jobs to today ("Query for all dates" is
-        * ticked). If the user removes the tick the time range is from today - 3
-        * days to today. Currently, the input model is empty.
+        * form a query page for daily job statistics.
+        * 
+        * The servlet should be available for users and admins only. By defaults
+        * the report time range is from the earliest day with jobs to current date
+        * ("Query for all dates" is ticked). If the user removes the tick the time
+        * range is from today - 3 days to today. Currently, the input model is
+        * empty.
         * 
         * @param model
         *            MVC model
@@ -71,10 +78,10 @@ public class DailyStatisticsController extends BasicController {
                model.put("username", getPrincipalName());
                Calendar loccal = Calendar.getInstance();
                final long startTime = System.currentTimeMillis();
-               CassandraRequester cr = new CassandraRequester();
+               DailyStatisticsReader reader = new DailyStatisticsReader();
                if (option.equals("AllDates,off")) {
-                       date1 = theEaerlistDate;
-                       date2 = theCurrentDate;
+                       date1 = getEarliestDate();
+                       date2 = getCurrentDate();
                }
 
                // dates in string format
@@ -83,7 +90,7 @@ public class DailyStatisticsController extends BasicController {
                // dates in long format
                long longDate1 = DateFormatter.DateParsing(date1, formaterYYMMDD);
                long longDate2 = DateFormatter.DateParsing(date2, formaterYYMMDD);
-               String error = DateChecking(trimmeddate1, trimmeddate2, longDate1, longDate2);
+               String error = checkDates(trimmeddate1, trimmeddate2, longDate1, longDate2);
                if (error != null) {
                        model.put("error", error);
                        model.put("date1", date1);
@@ -100,7 +107,7 @@ public class DailyStatisticsController extends BasicController {
                date2 = DateFormatter.DateLongToString(longDate2, formaterYYMMDD);
                model.put("date1", date1);
                model.put("date2", date2);
-               TotalJobsStatisticBean res = cr.countJobs(date1, date2);
+               TotalJobsStatisticBean res = reader.query(longDate1, longDate2);
                model.put("result", res);
                Map<String, Total> results = res.getDateTotal();
                String csvline = "\'Date\',\'Total\',\'OK\',\'Stopped\',\'Error\',\'Timeout\'%0A";
@@ -114,7 +121,7 @@ public class DailyStatisticsController extends BasicController {
                final long endTime = System.currentTimeMillis();
                model.put("timeExecution", (endTime - startTime));
                model.put("option", option);
-               return "/reportJobStatistics";
+               return "reports/JobStatistics";
        }
 
        /**
@@ -135,8 +142,9 @@ public class DailyStatisticsController extends BasicController {
                final long startTime = System.currentTimeMillis();
 
                String realdate;
+               long thetime = 0;
                try {
-                       long thetime = formaterYYMMDD.parse(date).getTime();
+                       thetime = formaterYYMMDD.parse(date).getTime();
                        if (thetime < 0) {
                                realdate = date;
                        } else {
@@ -144,15 +152,15 @@ public class DailyStatisticsController extends BasicController {
                        }
                } catch (ParseException e) {
                        realdate = date;
+                       thetime = formaterDDMMYY.parse(realdate).getTime();
                }
 
-               if (null == JobStatus.getJobStatus(status)) {
+               if (null == JobStatus.getJobStatus(status))
                        return "support/Notimplemented";
-               }
 
-               CassandraRequester cr = new CassandraRequester();
+               DailyStatisticsReader reader = new DailyStatisticsReader();
                // IMPORTANT: input should be suppied in the format: DD/MM/YYYY
-               DateBean r = cr.readJobByDay(realdate, JobStatus.getJobStatus(status));
+               DateBean r = reader.readJobByDay(thetime, realdate, JobStatus.getJobStatus(status));
                model.put("results", r);
                if (r != null)
                        model.put("njobs", r.getJobidAndSeq().size());
@@ -160,6 +168,6 @@ public class DailyStatisticsController extends BasicController {
                model.put("status", status);
                final long endTime = System.currentTimeMillis();
                model.put("timeExecution", (endTime - startTime));
-               return "/reportJobStatisticsOneDay";
+               return "reports/JobStatisticsOneDay";
        }
 }