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

  ViewVC Help
Powered by ViewVC 1.1.20