Java tutorial
/* * Copyright 2015 Garret Leotta, Jonathan Lynch, Joseph Mandarino, * Michael Yeung * * This file is part of GG Testing Center Scheduler. * GG Testing Center Scheduler is free software: you can redistribute it * and/or modify it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * GG Testing Center Scheduler is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * You should have received a copy of the GNU General Public License along * with GG Testing Center Scheduler. If not, see http://www.gnu.org/licenses/. */ package com.gigglinggnus.controllers; import com.gigglinggnus.testingcenter.Course; import java.io.File; import java.io.IOException; import java.util.List; import java.util.ArrayList; import java.util.Collections; import java.util.stream.Collectors; import java.time.Duration; import java.time.Instant; import java.time.Clock; import java.time.LocalDate; import javax.persistence.Persistence; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.TypedQuery; import javax.persistence.NoResultException; import javax.servlet.ServletException; import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.JSONObject; import org.json.JSONArray; import com.gigglinggnus.testingcenter.Appointment; import com.gigglinggnus.testingcenter.Term; import com.gigglinggnus.testingcenter.User; import com.gigglinggnus.testingcenter.Exam; public class DisplayUtilizationController extends HttpServlet { public DisplayUtilizationController() { super(); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { EntityManager em = (EntityManager) request.getSession().getAttribute("em"); RequestDispatcher rd = request.getRequestDispatcher("/admin/display-utilization.jsp"); rd.forward(request, response); } /** * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String msg = request.getParameter("msg"); EntityManager em = (EntityManager) request.getSession().getAttribute("em"); Clock clk = (Clock) (request.getSession().getAttribute("clock")); Term term = Term.getTermforInstant(em, Instant.now(clk)); LocalDate start = LocalDate.parse(request.getParameter("start")); LocalDate end = LocalDate.parse(request.getParameter("end")); JSONArray json = new JSONArray(); for (LocalDate i = start; i.isBefore(end); i = i.plusDays(1)) { double utilization = term.utilizationForDay(start, clk); JSONObject elem = new JSONObject(); elem.put("day", i); elem.put("utilization", utilization); json.put(elem); } response.getWriter().write(json.toString()); } }