/[projects]/android/TrainInfoService/src/dk/thoerup/traininfoservice/LocateStations.java
ViewVC logotype

Annotation of /android/TrainInfoService/src/dk/thoerup/traininfoservice/LocateStations.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1557 - (hide annotations) (download)
Fri Jul 8 12:47:02 2011 UTC (12 years, 11 months ago) by torben
File size: 3389 byte(s)
add support for dummy lookups - needed for statistics when the stationlist goes clientside
1 torben 292 package dk.thoerup.traininfoservice;
2    
3 torben 1190
4 torben 292 import java.io.IOException;
5 torben 1190 import java.io.StringWriter;
6 torben 292 import java.sql.SQLException;
7 torben 348 import java.util.logging.Level;
8     import java.util.logging.Logger;
9 torben 292
10     import javax.servlet.ServletException;
11 torben 958 import javax.servlet.annotation.WebServlet;
12 torben 292 import javax.servlet.http.HttpServlet;
13     import javax.servlet.http.HttpServletRequest;
14     import javax.servlet.http.HttpServletResponse;
15    
16 torben 1060 import org.simpleframework.xml.Serializer;
17     import org.simpleframework.xml.core.Persister;
18    
19 torben 1061 import dk.thoerup.android.traininfo.common.StationBean;
20 torben 1255 import dk.thoerup.traininfoservice.db.StationDAO;
21 torben 1061
22 torben 292 /**
23     * Servlet implementation class LocateStations
24     */
25 torben 958 @WebServlet(urlPatterns={"/LocateStations"})
26 torben 292 public class LocateStations extends HttpServlet {
27     private static final long serialVersionUID = 1L;
28    
29 torben 348 Logger logger = Logger.getLogger( LocateStations.class.toString() );
30 torben 431
31 torben 588 StationDAO stationDao = new StationDAO();
32 torben 431
33 torben 588
34 torben 431 protected String transformToIntList(String input) {
35     String strings[] = input.split(",");
36 torben 588
37 torben 431 StringBuffer sb = new StringBuffer();
38     sb.append("(");
39     for (int i = 0; i<strings.length; i++) {
40     if (i>0) {
41     sb.append(",");
42     }
43     sb.append( Integer.parseInt(strings[i])); //by doing the integer conversion we ensure that it really is a integer
44     }
45     sb.append(")");
46     return sb.toString();
47 torben 347 }
48 torben 322
49 torben 431
50 torben 1060 protected StationBean getStations(HttpServletRequest req) throws SQLException {
51     StationBean stations = null;
52 torben 1557
53     boolean dummy = req.getParameter("dummy") != null;
54     if (dummy == true)
55     stations = new StationBean();
56    
57 torben 431 if (req.getParameter("latitude") != null && req.getParameter("latitude") != null) {
58 torben 711
59     Statistics.getInstance().incrementStationLookupsLocation();
60    
61 torben 431 double latitude = Double.parseDouble( req.getParameter("latitude") );
62     double longitude = Double.parseDouble( req.getParameter("longitude") );
63 torben 1557 if (dummy == false)
64     stations = stationDao.getByLocation(latitude, longitude);
65 torben 588
66 torben 431 } else if (req.getParameter("name") != null) {
67 torben 711 Statistics.getInstance().incrementStationLookupsName();
68 torben 588 String name = req.getParameter("name").trim();
69 torben 1557 if (dummy == false)
70     stations = stationDao.getByName(name);
71 torben 431
72     } else if (req.getParameter("list") != null) {
73 torben 711 Statistics.getInstance().incrementStationLookupsFavorites();
74 torben 431 String list = transformToIntList( req.getParameter("list"));
75 torben 1557 if (dummy == false)
76     stations = stationDao.getByList(list);
77 torben 1082 } else if (req.getParameter("dump") != null) {
78     stations = stationDao.dumpAll();
79 torben 588 }
80     return stations;
81 torben 347 }
82    
83    
84 torben 1060 protected String formatStations(StationBean stations) throws ServletException {
85 torben 347
86 torben 1060 Serializer serializer = new Persister();
87 torben 347
88 torben 1190 StringWriter out = new StringWriter();
89 torben 431
90 torben 1060 try {
91     serializer.write(stations, out);
92     } catch (Exception e) {
93     throw new ServletException(e);
94     }
95    
96     return out.toString();
97 torben 292 }
98    
99 torben 425 @Override
100 torben 292 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
101 torben 347
102 torben 588
103 torben 431 try {
104 torben 1060 StationBean stations = getStations(request);
105 torben 347
106    
107 torben 588 if (stations != null){
108     String xml = formatStations(stations);
109    
110 torben 431 response.setContentType("text/xml");
111     response.getWriter().print(xml);
112     } else {
113     response.sendError(400, "not enough parameters");
114     }
115 torben 347
116    
117 torben 431 } catch (Exception e) {
118     logger.log(Level.SEVERE, "Exception while finding stations", e);
119     response.sendError(500);
120 torben 588 }
121 torben 292 }
122    
123     }

  ViewVC Help
Powered by ViewVC 1.1.20