/[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 958 - (hide annotations) (download)
Mon Jul 5 09:48:06 2010 UTC (13 years, 10 months ago) by torben
Original Path: android/TrainInfoService/src/dk/thoerup/traininfoservice/LocateStations.java
File size: 3860 byte(s)
Switch to servlet3.0 annotations
1 torben 292 package dk.thoerup.traininfoservice;
2    
3     import java.io.IOException;
4     import java.sql.SQLException;
5 torben 588 import java.util.List;
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     /**
16     * Servlet implementation class LocateStations
17     */
18 torben 958 @WebServlet(urlPatterns={"/LocateStations"})
19 torben 292 public class LocateStations extends HttpServlet {
20     private static final long serialVersionUID = 1L;
21    
22 torben 348 Logger logger = Logger.getLogger( LocateStations.class.toString() );
23 torben 431
24 torben 588 StationDAO stationDao = new StationDAO();
25 torben 431
26 torben 588
27 torben 431 protected String transformToIntList(String input) {
28     String strings[] = input.split(",");
29 torben 588
30 torben 431 StringBuffer sb = new StringBuffer();
31     sb.append("(");
32     for (int i = 0; i<strings.length; i++) {
33     if (i>0) {
34     sb.append(",");
35     }
36     sb.append( Integer.parseInt(strings[i])); //by doing the integer conversion we ensure that it really is a integer
37     }
38     sb.append(")");
39     return sb.toString();
40 torben 347 }
41 torben 322
42 torben 431
43 torben 588 protected List<StationBean> getStations(HttpServletRequest req) throws SQLException {
44     List<StationBean> stations = null;
45 torben 431 if (req.getParameter("latitude") != null && req.getParameter("latitude") != null) {
46 torben 711
47     Statistics.getInstance().incrementStationLookupsLocation();
48    
49 torben 431 double latitude = Double.parseDouble( req.getParameter("latitude") );
50     double longitude = Double.parseDouble( req.getParameter("longitude") );
51 torben 588 stations = stationDao.getByLocation(latitude, longitude);
52    
53 torben 431 } else if (req.getParameter("name") != null) {
54 torben 711 Statistics.getInstance().incrementStationLookupsName();
55 torben 588 String name = req.getParameter("name").trim();
56     stations = stationDao.getByName(name);
57 torben 431
58     } else if (req.getParameter("list") != null) {
59 torben 711 Statistics.getInstance().incrementStationLookupsFavorites();
60 torben 431 String list = transformToIntList( req.getParameter("list"));
61 torben 588 stations = stationDao.getByList(list);
62     }
63     return stations;
64 torben 347 }
65    
66    
67 torben 588 protected String formatStations(List<StationBean> stations) {
68 torben 347
69 torben 292 StringBuffer buff = new StringBuffer();
70 torben 347
71 torben 859 //buff.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n");
72 torben 347 buff.append("<stations>\n");
73 torben 431
74 torben 347
75 torben 588 for (int i=0; i<stations.size(); i++) {
76     StationBean station = stations.get(i);
77 torben 292
78 torben 588 buff.append("<station>\n");
79 torben 347
80 torben 588 buff.append("<id>").append( station.getId() ).append("</id>\n");
81     buff.append("<name>").append( station.getName() ) .append("</name>\n");
82     buff.append("<latitude>").append( station.getLatitude() ) .append("</latitude>\n");
83     buff.append("<longitude>").append( station.getLongitude() ) .append("</longitude>\n");
84     buff.append("<regional>").append( station.getRegional() != null ) .append("</regional>\n");
85     buff.append("<strain>").append( station.getStrain() != null ) .append("</strain>\n");
86     buff.append("<metro>").append( station.getMetro() != null ).append("</metro>\n");
87     buff.append("<address>").append( station.getAddress() != null ? station.getAddress() : "").append("</address>");
88     buff.append("<calcdist>").append( station.getCalcdist() ) .append("</calcdist>\n");
89    
90     buff.append("</station>\n");
91     }
92 torben 292 buff.append("</stations>\n");
93     return buff.toString();
94     }
95    
96 torben 425 @Override
97 torben 292 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
98 torben 347
99 torben 588
100 torben 431 try {
101 torben 588 List<StationBean> stations = getStations(request);
102 torben 347
103    
104 torben 588 if (stations != null){
105     String xml = formatStations(stations);
106    
107 torben 431 response.setContentType("text/xml");
108     response.getWriter().print(xml);
109     } else {
110     response.sendError(400, "not enough parameters");
111     }
112 torben 347
113    
114 torben 431 } catch (Exception e) {
115     logger.log(Level.SEVERE, "Exception while finding stations", e);
116     response.sendError(500);
117 torben 588 }
118 torben 292 }
119    
120     }

  ViewVC Help
Powered by ViewVC 1.1.20