e1baf126784ef80fd0d9da4cd49952dc019bcb05
[jabaws.git] / webservices / compbio / stat / servlet / AnnualStat.java
1 package compbio.stat.servlet;\r
2 \r
3 import java.io.IOException;\r
4 import java.io.PrintWriter;\r
5 import java.sql.SQLException;\r
6 import java.util.Date;\r
7 import java.util.Map;\r
8 \r
9 import javax.servlet.RequestDispatcher;\r
10 import javax.servlet.ServletException;\r
11 import javax.servlet.http.HttpServlet;\r
12 import javax.servlet.http.HttpServletRequest;\r
13 import javax.servlet.http.HttpServletResponse;\r
14 \r
15 import compbio.stat.collector.StatDB;\r
16 import compbio.stat.servlet.util.StatCollection;\r
17 import compbio.stat.servlet.util.Totals;\r
18 \r
19 public class AnnualStat extends HttpServlet {\r
20 \r
21         @Override\r
22         protected void doGet(HttpServletRequest req, HttpServletResponse resp)\r
23                         throws ServletException, IOException {\r
24 \r
25                 try {\r
26                         StatDB db = new StatDB();\r
27                         Date earliestRec = db.getEarliestRecord();\r
28                         if (earliestRec == null) {\r
29                                 PrintWriter writer = resp.getWriter();\r
30                                 writer.println("No statistics found in the database. Please allow "\r
31                                                 + "at least one hour after a server start for the statistics "\r
32                                                 + "collector to collect the data. ");\r
33                                 writer.close();\r
34                                 return;\r
35                         }\r
36                         Map<Date, Totals> monthlyTotals = StatCollection\r
37                                         .getStats(earliestRec);\r
38                         req.setAttribute("stat", monthlyTotals);\r
39                         req.setAttribute("total", Totals.sumOfTotals(monthlyTotals));\r
40 \r
41                         RequestDispatcher dispatcher = req\r
42                                         .getRequestDispatcher("statpages/MonthlySummary.jsp");\r
43 \r
44                         req.setAttribute("isAdmin", isAdmin(req));\r
45                         dispatcher.forward(req, resp);\r
46 \r
47                 } catch (SQLException e) {\r
48                         e.printStackTrace();\r
49                         throw new ServletException(e);\r
50                 }\r
51         }\r
52 \r
53         static boolean isAdmin(final HttpServletRequest request) {\r
54                 return request.isUserInRole("admin");\r
55         }\r
56 \r
57 }\r