/[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 1105 - (hide annotations) (download)
Wed Sep 22 21:09:39 2010 UTC (13 years, 8 months ago) by torben
File size: 2944 byte(s)
Got DAO working, now i'm just missing the last bit of loading station identifiers from app.t-hoerup.dk
1 torben 292 package dk.thoerup.traininfoservice;
2    
3     import java.io.IOException;
4 torben 1105 import java.io.StringWriter;
5 torben 292 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     import javax.servlet.http.HttpServlet;
11     import javax.servlet.http.HttpServletRequest;
12     import javax.servlet.http.HttpServletResponse;
13    
14 torben 1060 import org.simpleframework.xml.Serializer;
15     import org.simpleframework.xml.core.Persister;
16    
17 torben 1061 import dk.thoerup.android.traininfo.common.StationBean;
18    
19 torben 292 /**
20     * Servlet implementation class LocateStations
21     */
22 torben 1080
23 torben 292 public class LocateStations extends HttpServlet {
24     private static final long serialVersionUID = 1L;
25    
26 torben 348 Logger logger = Logger.getLogger( LocateStations.class.toString() );
27 torben 431
28 torben 588 StationDAO stationDao = new StationDAO();
29 torben 431
30 torben 588
31 torben 431 protected String transformToIntList(String input) {
32     String strings[] = input.split(",");
33 torben 588
34 torben 431 StringBuffer sb = new StringBuffer();
35 torben 1105
36 torben 431 for (int i = 0; i<strings.length; i++) {
37     if (i>0) {
38     sb.append(",");
39     }
40     sb.append( Integer.parseInt(strings[i])); //by doing the integer conversion we ensure that it really is a integer
41     }
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 1105 StringWriter out = new StringWriter();
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 431 try {
89 torben 1060 StationBean stations = getStations(request);
90 torben 347
91    
92 torben 588 if (stations != null){
93     String xml = formatStations(stations);
94    
95 torben 431 response.setContentType("text/xml");
96     response.getWriter().print(xml);
97     } else {
98     response.sendError(400, "not enough parameters");
99     }
100 torben 347
101    
102 torben 431 } catch (Exception e) {
103     logger.log(Level.SEVERE, "Exception while finding stations", e);
104     response.sendError(500);
105 torben 588 }
106 torben 292 }
107    
108     }

  ViewVC Help
Powered by ViewVC 1.1.20