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";
24 static final String UTF_8 = "UTF-8";
26 ErrorHandler m_errorHandler;
28 public ViewSchedule() {
29 m_errorHandler = new ErrorHandler();
32 int getParamInt(HttpServletRequest req, String paramName) {
33 String valueStr = getParamString(req, paramName);
35 return Integer.parseInt(valueStr);
37 catch (NumberFormatException exc) {
43 String getParamString(HttpServletRequest req, String paramName) {
44 String valueStr = req.getParameter(paramName);
45 if (null == valueStr|| valueStr.equals("")) {
52 Locale getLocale(HttpServletRequest req) {
54 String lang = getParamString(req, LANG);
56 result = new Locale(lang);
59 result = Locale.getDefault();
65 public void doGet(HttpServletRequest req, HttpServletResponse res)
66 throws ServletException, IOException
68 res.setContentType("text/html");
69 res.setCharacterEncoding("utf8"); // Seems to be necessary when running in Japanese
70 PrintWriter pw = res.getWriter();
72 Locale locale = getLocale(req);
73 int stop = getParamInt(req, STOP);
74 int route = getParamInt(req, ROUTE);
77 FileInputStream fis = new FileInputStream("apikey.txt");
79 Server server = new Server("192f31d2", fis);
80 StopInfo stopInfo = null;
83 stopInfo = server.getNextTripsForStopAllRoutes(stop);
86 stopInfo = server.getNextTripsForStop(stop, route);
88 Schedule schedule = new Schedule(locale);
90 schedule.writePage(pw, stopInfo);
93 ExceptionUtils.tryClose(fis);
97 m_errorHandler.writeErrorPage(pw, t, locale);