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

Contents of /android/TrainInfoService/src/dk/thoerup/traininfoservice/LocateStations.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 588 - (show 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 package dk.thoerup.traininfoservice;
2
3 import java.io.IOException;
4 import java.sql.SQLException;
5 import java.util.List;
6 import java.util.logging.Level;
7 import java.util.logging.Logger;
8
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 Logger logger = Logger.getLogger( LocateStations.class.toString() );
21
22 StationDAO stationDao = new StationDAO();
23
24
25 protected String transformToIntList(String input) {
26 String strings[] = input.split(",");
27
28 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 }
39
40
41 protected List<StationBean> getStations(HttpServletRequest req) throws SQLException {
42 List<StationBean> stations = null;
43 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 stations = stationDao.getByLocation(latitude, longitude);
47
48 } else if (req.getParameter("name") != null) {
49 String name = req.getParameter("name").trim();
50 stations = stationDao.getByName(name);
51
52 } else if (req.getParameter("list") != null) {
53 String list = transformToIntList( req.getParameter("list"));
54 stations = stationDao.getByList(list);
55 }
56 return stations;
57 }
58
59
60 protected String formatStations(List<StationBean> stations) {
61
62 StringBuffer buff = new StringBuffer();
63
64 buff.append("<?xml version=\"1.0\" ?>\n");
65 buff.append("<stations>\n");
66
67
68 for (int i=0; i<stations.size(); i++) {
69 StationBean station = stations.get(i);
70
71 buff.append("<station>\n");
72
73 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 buff.append("</stations>\n");
86 return buff.toString();
87 }
88
89 @Override
90 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
91
92
93 try {
94 List<StationBean> stations = getStations(request);
95
96
97 if (stations != null){
98 String xml = formatStations(stations);
99
100 response.setContentType("text/xml");
101 response.getWriter().print(xml);
102 } else {
103 response.sendError(400, "not enough parameters");
104 }
105
106
107 } catch (Exception e) {
108 logger.log(Level.SEVERE, "Exception while finding stations", e);
109 response.sendError(500);
110 }
111 }
112
113 }

  ViewVC Help
Powered by ViewVC 1.1.20