/[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 588 - (hide annotations) (download)
Mon Feb 8 19:12:15 2010 UTC (14 years, 3 months ago) by torben
File size: 3552 byte(s)
Rewrite to use a DAO class for DB access
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     import javax.servlet.http.HttpServlet;
11     import javax.servlet.http.HttpServletRequest;
12     import javax.servlet.http.HttpServletResponse;
13    
14     /**
15     * Servlet implementation class LocateStations
16     */
17     public class LocateStations extends HttpServlet {
18     private static final long serialVersionUID = 1L;
19    
20 torben 348 Logger logger = Logger.getLogger( LocateStations.class.toString() );
21 torben 431
22 torben 588 StationDAO stationDao = new StationDAO();
23 torben 431
24 torben 588
25 torben 431 protected String transformToIntList(String input) {
26     String strings[] = input.split(",");
27 torben 588
28 torben 431 StringBuffer sb = new StringBuffer();
29     sb.append("(");
30     for (int i = 0; i<strings.length; i++) {
31     if (i>0) {
32     sb.append(",");
33     }
34     sb.append( Integer.parseInt(strings[i])); //by doing the integer conversion we ensure that it really is a integer
35     }
36     sb.append(")");
37     return sb.toString();
38 torben 347 }
39 torben 322
40 torben 431
41 torben 588 protected List<StationBean> getStations(HttpServletRequest req) throws SQLException {
42     List<StationBean> stations = null;
43 torben 431 if (req.getParameter("latitude") != null && req.getParameter("latitude") != null) {
44     double latitude = Double.parseDouble( req.getParameter("latitude") );
45     double longitude = Double.parseDouble( req.getParameter("longitude") );
46 torben 588 stations = stationDao.getByLocation(latitude, longitude);
47    
48 torben 431 } else if (req.getParameter("name") != null) {
49 torben 588 String name = req.getParameter("name").trim();
50     stations = stationDao.getByName(name);
51 torben 431
52     } else if (req.getParameter("list") != null) {
53     String list = transformToIntList( req.getParameter("list"));
54 torben 588 stations = stationDao.getByList(list);
55     }
56     return stations;
57 torben 347 }
58    
59    
60 torben 588 protected String formatStations(List<StationBean> stations) {
61 torben 347
62 torben 292 StringBuffer buff = new StringBuffer();
63 torben 347
64     buff.append("<?xml version=\"1.0\" ?>\n");
65     buff.append("<stations>\n");
66 torben 431
67 torben 347
68 torben 588 for (int i=0; i<stations.size(); i++) {
69     StationBean station = stations.get(i);
70 torben 292
71 torben 588 buff.append("<station>\n");
72 torben 347
73 torben 588 buff.append("<id>").append( station.getId() ).append("</id>\n");
74     buff.append("<name>").append( station.getName() ) .append("</name>\n");
75     buff.append("<latitude>").append( station.getLatitude() ) .append("</latitude>\n");
76     buff.append("<longitude>").append( station.getLongitude() ) .append("</longitude>\n");
77     buff.append("<regional>").append( station.getRegional() != null ) .append("</regional>\n");
78     buff.append("<strain>").append( station.getStrain() != null ) .append("</strain>\n");
79     buff.append("<metro>").append( station.getMetro() != null ).append("</metro>\n");
80     buff.append("<address>").append( station.getAddress() != null ? station.getAddress() : "").append("</address>");
81     buff.append("<calcdist>").append( station.getCalcdist() ) .append("</calcdist>\n");
82    
83     buff.append("</station>\n");
84     }
85 torben 292 buff.append("</stations>\n");
86     return buff.toString();
87     }
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 588 List<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