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

  ViewVC Help
Powered by ViewVC 1.1.20