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

Contents of /android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/CompareStations.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1692 - (show annotations) (download)
Fri Feb 24 14:26:53 2012 UTC (12 years, 2 months ago) by torben
File size: 3396 byte(s)
make CompareStations display whether we actually know this station but it is currently disabled
1 package dk.thoerup.traininfoservice.banedk;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.net.URL;
6 import java.util.Map;
7 import java.util.Set;
8 import java.util.TreeMap;
9 import java.util.TreeSet;
10
11 import javax.servlet.ServletException;
12 import javax.servlet.annotation.WebServlet;
13 import javax.servlet.http.HttpServlet;
14 import javax.servlet.http.HttpServletRequest;
15 import javax.servlet.http.HttpServletResponse;
16
17 import org.jsoup.nodes.Document;
18 import org.jsoup.nodes.Element;
19 import org.jsoup.select.Elements;
20
21 import dk.thoerup.android.traininfo.common.StationBean;
22 import dk.thoerup.android.traininfo.common.StationEntry;
23 import dk.thoerup.circuitbreaker.CircuitBreaker;
24 import dk.thoerup.circuitbreaker.CircuitBreakerManager;
25 import dk.thoerup.traininfoservice.db.StationDAO;
26
27
28 @WebServlet(urlPatterns={"/CompareStations"})
29 public class CompareStations extends HttpServlet {
30 private static final long serialVersionUID = 1L;
31
32
33 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
34 CircuitBreaker cb = CircuitBreakerManager.getManager().getCircuitBreaker("banedk");
35
36 JsoupInvocation jsoup = new JsoupInvocation(new URL("http://trafikinfo.bane.dk/Trafikinformation/Stationsliste"), 5000);
37
38 Map<String,String> banedkStations = new TreeMap<String,String>();
39 Set<String> dbStations = new TreeSet<String>();
40
41 StationDAO dao = new StationDAO();
42
43 try {
44 Document doc = (Document) cb.invoke(jsoup);
45
46 Elements tables = doc.getElementsByClass("Oversigt");
47
48 for(Element e : tables) {
49 if (e.tagName().equals("table") ){
50 Elements links = e.getElementsByTag("a");
51 for (Element link : links) {
52 banedkStations.put( link.text(), link.attr("href") );
53 }
54 }
55 }
56
57 StationBean bean = dao.dumpAll();
58 for (StationEntry station : bean.entries) {
59 if (station.isRegional() || station.isStrain()) {
60 dbStations.add(station.getName());
61 }
62 }
63
64 } catch (Exception e) {
65 throw new ServletException(e);
66 }
67
68
69
70 StringBuilder sb = new StringBuilder();
71
72 sb.append("<h2>stations on website not in db</h2>");
73 sb.append("<ul>");
74 Set<String> tmpDbStations = new TreeSet<String>( dbStations );
75 Set<String> tmpBanedkStations = new TreeSet<String>( banedkStations.keySet()) ;
76 tmpBanedkStations.removeAll(tmpDbStations);
77
78
79
80 for(String s : tmpBanedkStations) {
81 String uri = banedkStations.get(s);
82 String disabled = "";
83 try {
84 boolean tmpdisabled = dao.hasDisabledStation(s);
85 if (tmpdisabled == true)
86 disabled = "disabled";
87 } catch (Exception e) {
88 throw new ServletException(e);
89 }
90
91 sb.append( "<li><a href='http://trafikinfo.bane.dk" + uri + "'>" + s + "</a>&nbsp;&nbsp;" + disabled + "</li>" );
92 }
93 sb.append("</ul>");
94
95
96 sb.append("<h2>stations in db not on website </h2>");
97 sb.append("<ul>");
98 tmpDbStations = new TreeSet<String>( dbStations );
99 tmpBanedkStations = new TreeSet<String>( banedkStations.keySet() ) ;
100 tmpDbStations.removeAll(tmpBanedkStations);
101 for(String s : tmpDbStations) {
102 sb.append( "<li>" + s + "</li>" );
103 }
104 sb.append("</ul>");
105
106
107 PrintWriter out = response.getWriter();
108 out.print(sb.toString());
109
110
111
112 }
113
114
115 }

  ViewVC Help
Powered by ViewVC 1.1.20