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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1093 - (show annotations) (download)
Tue Sep 21 20:10:46 2010 UTC (13 years, 7 months ago) by torben
File size: 4541 byte(s)
Code Sync (use jsr107 / memcache for caching)
1 package dk.thoerup.traininfoservice;
2
3 import java.io.ByteArrayOutputStream;
4 import java.io.IOException;
5 import java.sql.SQLException;
6 import java.util.List;
7 import java.util.logging.Level;
8 import java.util.logging.Logger;
9
10 import javax.jdo.PersistenceManager;
11 import javax.jdo.Query;
12 import javax.servlet.ServletException;
13 import javax.servlet.http.HttpServlet;
14 import javax.servlet.http.HttpServletRequest;
15 import javax.servlet.http.HttpServletResponse;
16
17 import org.simpleframework.xml.Serializer;
18 import org.simpleframework.xml.core.Persister;
19
20 import dk.thoerup.android.traininfo.common.StationBean;
21 import dk.thoerup.traininfoservice.jdo.JdoStationBean;
22 import dk.thoerup.traininfoservice.jdo.PMF;
23
24 /**
25 * Servlet implementation class LocateStations
26 */
27
28 public class LocateStations extends HttpServlet {
29 private static final long serialVersionUID = 1L;
30
31 Logger logger = Logger.getLogger( LocateStations.class.toString() );
32
33 StationDAO stationDao = new StationDAO();
34
35
36 protected String transformToIntList(String input) {
37 String strings[] = input.split(",");
38
39 StringBuffer sb = new StringBuffer();
40 sb.append("(");
41 for (int i = 0; i<strings.length; i++) {
42 if (i>0) {
43 sb.append(",");
44 }
45 sb.append( Integer.parseInt(strings[i])); //by doing the integer conversion we ensure that it really is a integer
46 }
47 sb.append(")");
48 return sb.toString();
49 }
50
51
52 protected StationBean getStations(HttpServletRequest req) throws SQLException {
53 StationBean stations = null;
54 if (req.getParameter("latitude") != null && req.getParameter("latitude") != null) {
55
56 Statistics.getInstance().incrementStationLookupsLocation();
57
58 double latitude = Double.parseDouble( req.getParameter("latitude") );
59 double longitude = Double.parseDouble( req.getParameter("longitude") );
60 stations = stationDao.getByLocation(latitude, longitude);
61
62 } else if (req.getParameter("name") != null) {
63 Statistics.getInstance().incrementStationLookupsName();
64 String name = req.getParameter("name").trim();
65 stations = stationDao.getByName(name);
66
67 } else if (req.getParameter("list") != null) {
68 Statistics.getInstance().incrementStationLookupsFavorites();
69 String list = transformToIntList( req.getParameter("list"));
70 stations = stationDao.getByList(list);
71 }
72 return stations;
73 }
74
75
76 protected String formatStations(StationBean stations) throws ServletException {
77
78 Serializer serializer = new Persister();
79
80 ByteArrayOutputStream out = new ByteArrayOutputStream();
81
82 try {
83 serializer.write(stations, out);
84 } catch (Exception e) {
85 throw new ServletException(e);
86 }
87
88 return out.toString();
89 }
90
91 @SuppressWarnings("unchecked")
92 @Override
93 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
94
95 if (true) {
96 PersistenceManager pm = null;
97 try {
98 pm = PMF.get().getPersistenceManager();
99
100
101
102
103 JdoStationBean b = new JdoStationBean();
104 b.setId(1000);
105 b.setName("TestStation");
106 b.setNameLower( b.getName().toLowerCase() );
107 b.setMetro("12");
108 pm.makePersistent(b);
109
110
111 JdoStationBean b2 = new JdoStationBean();
112 b2.setId(1001);
113 b2.setName("teststation 2");
114 b2.setNameLower( b2.getName().toLowerCase() );
115 b2.setMetro("12");
116 pm.makePersistent(b2);
117
118 JdoStationBean b3 = new JdoStationBean();
119 b3.setId(1002);
120 b3.setName("Horsens");
121 b3.setNameLower( b3.getName().toLowerCase() );
122 b3.setMetro("13");
123 pm.makePersistent(b3);
124
125
126
127
128 //String query = "select from " + JdoStationBean.class.getName();// + " where nameLower.startsWith('test')";
129
130 String query = "select from " + JdoStationBean.class.getName() + " where (id == 1001 || id == 1002) ";
131
132 List<JdoStationBean> stations = (List<JdoStationBean>) pm.newQuery( query ).execute();
133
134 logger.info("size=" + stations.size() );
135 for(JdoStationBean bean : stations) {
136 logger.info("Station: " + bean.getId() + "/" + bean.getName());
137 }
138
139
140
141
142 } finally {
143 if (pm != null)
144 pm.close();
145 }
146
147
148 return;
149 }
150
151 try {
152 StationBean stations = getStations(request);
153
154
155 if (stations != null){
156 String xml = formatStations(stations);
157
158 response.setContentType("text/xml");
159 response.getWriter().print(xml);
160 } else {
161 response.sendError(400, "not enough parameters");
162 }
163
164
165 } catch (Exception e) {
166 logger.log(Level.SEVERE, "Exception while finding stations", e);
167 response.sendError(500);
168 }
169 }
170
171 }

  ViewVC Help
Powered by ViewVC 1.1.20