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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20