/[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 958 - (show annotations) (download)
Mon Jul 5 09:48:06 2010 UTC (13 years, 10 months ago) by torben
File size: 3860 byte(s)
Switch to servlet3.0 annotations
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.annotation.WebServlet;
11 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 @WebServlet(urlPatterns={"/LocateStations"})
19 public class LocateStations extends HttpServlet {
20 private static final long serialVersionUID = 1L;
21
22 Logger logger = Logger.getLogger( LocateStations.class.toString() );
23
24 StationDAO stationDao = new StationDAO();
25
26
27 protected String transformToIntList(String input) {
28 String strings[] = input.split(",");
29
30 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 }
41
42
43 protected List<StationBean> getStations(HttpServletRequest req) throws SQLException {
44 List<StationBean> stations = null;
45 if (req.getParameter("latitude") != null && req.getParameter("latitude") != null) {
46
47 Statistics.getInstance().incrementStationLookupsLocation();
48
49 double latitude = Double.parseDouble( req.getParameter("latitude") );
50 double longitude = Double.parseDouble( req.getParameter("longitude") );
51 stations = stationDao.getByLocation(latitude, longitude);
52
53 } else if (req.getParameter("name") != null) {
54 Statistics.getInstance().incrementStationLookupsName();
55 String name = req.getParameter("name").trim();
56 stations = stationDao.getByName(name);
57
58 } else if (req.getParameter("list") != null) {
59 Statistics.getInstance().incrementStationLookupsFavorites();
60 String list = transformToIntList( req.getParameter("list"));
61 stations = stationDao.getByList(list);
62 }
63 return stations;
64 }
65
66
67 protected String formatStations(List<StationBean> stations) {
68
69 StringBuffer buff = new StringBuffer();
70
71 //buff.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n");
72 buff.append("<stations>\n");
73
74
75 for (int i=0; i<stations.size(); i++) {
76 StationBean station = stations.get(i);
77
78 buff.append("<station>\n");
79
80 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 buff.append("</stations>\n");
93 return buff.toString();
94 }
95
96 @Override
97 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
98
99
100 try {
101 List<StationBean> stations = getStations(request);
102
103
104 if (stations != null){
105 String xml = formatStations(stations);
106
107 response.setContentType("text/xml");
108 response.getWriter().print(xml);
109 } else {
110 response.sendError(400, "not enough parameters");
111 }
112
113
114 } catch (Exception e) {
115 logger.log(Level.SEVERE, "Exception while finding stations", e);
116 response.sendError(500);
117 }
118 }
119
120 }

  ViewVC Help
Powered by ViewVC 1.1.20