/[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 858 - (hide annotations) (download)
Wed Jun 16 08:11:33 2010 UTC (13 years, 11 months ago) by torben
File size: 3769 byte(s)
Show correct XML preamble
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 torben 711
45     Statistics.getInstance().incrementStationLookupsLocation();
46    
47 torben 431 double latitude = Double.parseDouble( req.getParameter("latitude") );
48     double longitude = Double.parseDouble( req.getParameter("longitude") );
49 torben 588 stations = stationDao.getByLocation(latitude, longitude);
50    
51 torben 431 } else if (req.getParameter("name") != null) {
52 torben 711 Statistics.getInstance().incrementStationLookupsName();
53 torben 588 String name = req.getParameter("name").trim();
54     stations = stationDao.getByName(name);
55 torben 431
56     } else if (req.getParameter("list") != null) {
57 torben 711 Statistics.getInstance().incrementStationLookupsFavorites();
58 torben 431 String list = transformToIntList( req.getParameter("list"));
59 torben 588 stations = stationDao.getByList(list);
60     }
61     return stations;
62 torben 347 }
63    
64    
65 torben 588 protected String formatStations(List<StationBean> stations) {
66 torben 347
67 torben 292 StringBuffer buff = new StringBuffer();
68 torben 347
69 torben 858 buff.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n");
70 torben 347 buff.append("<stations>\n");
71 torben 431
72 torben 347
73 torben 588 for (int i=0; i<stations.size(); i++) {
74     StationBean station = stations.get(i);
75 torben 292
76 torben 588 buff.append("<station>\n");
77 torben 347
78 torben 588 buff.append("<id>").append( station.getId() ).append("</id>\n");
79     buff.append("<name>").append( station.getName() ) .append("</name>\n");
80     buff.append("<latitude>").append( station.getLatitude() ) .append("</latitude>\n");
81     buff.append("<longitude>").append( station.getLongitude() ) .append("</longitude>\n");
82     buff.append("<regional>").append( station.getRegional() != null ) .append("</regional>\n");
83     buff.append("<strain>").append( station.getStrain() != null ) .append("</strain>\n");
84     buff.append("<metro>").append( station.getMetro() != null ).append("</metro>\n");
85     buff.append("<address>").append( station.getAddress() != null ? station.getAddress() : "").append("</address>");
86     buff.append("<calcdist>").append( station.getCalcdist() ) .append("</calcdist>\n");
87    
88     buff.append("</station>\n");
89     }
90 torben 292 buff.append("</stations>\n");
91     return buff.toString();
92     }
93    
94 torben 425 @Override
95 torben 292 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
96 torben 347
97 torben 588
98 torben 431 try {
99 torben 588 List<StationBean> stations = getStations(request);
100 torben 347
101    
102 torben 588 if (stations != null){
103     String xml = formatStations(stations);
104    
105 torben 431 response.setContentType("text/xml");
106     response.getWriter().print(xml);
107     } else {
108     response.sendError(400, "not enough parameters");
109     }
110 torben 347
111    
112 torben 431 } catch (Exception e) {
113     logger.log(Level.SEVERE, "Exception while finding stations", e);
114     response.sendError(500);
115 torben 588 }
116 torben 292 }
117    
118     }

  ViewVC Help
Powered by ViewVC 1.1.20