1 package net.jaekl.frank;
3 import java.io.FileInputStream;
4 import java.io.IOException;
5 import java.io.PrintWriter;
6 import java.util.Locale;
8 import javax.servlet.ServletException;
9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
13 import net.jaekl.frank.octranspo.Server;
14 import net.jaekl.frank.octranspo.StopInfo;
15 import net.jaekl.qd.util.ExceptionUtils;
17 public class ViewSchedule extends HttpServlet {
18 private static final long serialVersionUID = 1L;
20 static final String BUNDLE_NAME = "frank";
21 static final String STOP = "stop";
22 static final String ROUTE = "route";
23 static final String LANG = "lang";
25 ErrorHandler m_errorHandler;
27 public ViewSchedule() {
28 m_errorHandler = new ErrorHandler();
31 int getParamInt(HttpServletRequest req, String paramName) {
32 String valueStr = getParamString(req, paramName);
34 return Integer.parseInt(valueStr);
36 catch (NumberFormatException exc) {
42 String getParamString(HttpServletRequest req, String paramName) {
43 String valueStr = req.getParameter(paramName);
44 if (null == valueStr|| valueStr.equals("")) {
51 Locale getLocale(HttpServletRequest req) {
53 String lang = getParamString(req, LANG);
55 result = new Locale(lang);
58 result = Locale.getDefault();
64 public void doGet(HttpServletRequest req, HttpServletResponse res)
65 throws ServletException, IOException
67 res.setContentType("text/html");
68 PrintWriter pw = res.getWriter();
70 Locale locale = getLocale(req);
71 int stop = getParamInt(req, STOP);
72 int route = getParamInt(req, ROUTE);
75 FileInputStream fis = new FileInputStream("apikey.txt");
77 Server server = new Server("192f31d2", fis);
78 StopInfo stopInfo = null;
81 stopInfo = server.getNextTripsForStopAllRoutes(stop);
84 stopInfo = server.getNextTripsForStop(stop, route);
86 Schedule schedule = new Schedule(locale);
88 schedule.writePage(pw, stopInfo);
91 ExceptionUtils.tryClose(fis);
95 m_errorHandler.writeErrorPage(pw, t, locale);